aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-06 18:42:22 -0400
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-06 18:42:22 -0400
commit09b1255f11ee17828da706f682e33f50316887fe (patch)
treef3783961c521b73201a9d079be78feb26e8a285c
parentMerge remote-tracking branch 'origin/master' into kris (diff)
downloadVIATRA-Generator-09b1255f11ee17828da706f682e33f50316887fe.tar.gz
VIATRA-Generator-09b1255f11ee17828da706f682e33f50316887fe.tar.zst
VIATRA-Generator-09b1255f11ee17828da706f682e33f50316887fe.zip
Trying to implement spacecraft case study
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF9
-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/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.java2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java27
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java342
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java14
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java12
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat3UImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java39
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java97
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java51
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java76
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java108
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java242
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java83
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java69
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java69
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java77
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java49
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java18
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatelliteFactory.java105
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java1223
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java67
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java242
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java242
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java226
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommunicatingElementImpl.java237
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/ConstellationMissionImpl.java237
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat3UImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java227
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/GroundStationNetworkImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java166
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryPayloadImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/PayloadImpl.java39
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatelliteFactoryImpl.java294
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java690
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java212
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java328
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java374
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird173
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore14
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated1265
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem1108
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel81
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml282
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.pngbin230457 -> 230838 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi12
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.gml1983
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.pngbin211085 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.xmi31
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.gml1926
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.pngbin206387 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.xmi30
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.gml1983
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.pngbin209322 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.xmi31
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.gml1926
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.pngbin204074 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.xmi30
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/statistics.csv2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml11
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java (renamed from Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CoverageMetric.java)279
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java19
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java50
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java (renamed from Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CostMetric.java)237
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java754
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java103
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java544
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore5
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java173
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/BasePrice.java216
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java (renamed from Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SmallSat.java)39
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java (renamed from Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IncomingData.java)59
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/InterferometryPayloadCost.java175
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java185
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java179
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java183
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java183
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java183
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java67
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java179
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftCost.java215
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.java140
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java171
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java146
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java277
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java200
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql64
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.SatelliteGeneratorMain.xtendbinbin0 -> 2931 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java15
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java2
109 files changed, 10320 insertions, 12363 deletions
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 39b038d2..21769598 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
@@ -8,11 +8,14 @@ Bundle-Vendor: %providerName
8Bundle-Localization: plugin 8Bundle-Localization: plugin
9Export-Package: hu.bme.mit.inf.dslreasoner.domains.satellite, 9Export-Package: hu.bme.mit.inf.dslreasoner.domains.satellite,
10 hu.bme.mit.inf.dslreasoner.domains.satellite.impl, 10 hu.bme.mit.inf.dslreasoner.domains.satellite.impl,
11 hu.bme.mit.inf.dslreasoner.domains.satellite.metrics,
12 hu.bme.mit.inf.dslreasoner.domains.satellite.queries, 11 hu.bme.mit.inf.dslreasoner.domains.satellite.queries,
13 hu.bme.mit.inf.dslreasoner.domains.satellite.runner, 12 hu.bme.mit.inf.dslreasoner.domains.satellite.runner,
14 hu.bme.mit.inf.dslreasoner.domains.satellite.util 13 hu.bme.mit.inf.dslreasoner.domains.satellite.util,
15Require-Bundle: org.eclipse.viatra.query.runtime, 14 satellite,
15 satellite.impl,
16 satellite.util
17Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime,
18 org.eclipse.viatra.query.runtime,
16 org.eclipse.viatra.query.runtime.rete, 19 org.eclipse.viatra.query.runtime.rete,
17 org.eclipse.viatra.query.runtime.localsearch, 20 org.eclipse.viatra.query.runtime.localsearch,
18 org.eclipse.xtext.xbase.lib, 21 org.eclipse.xtext.xbase.lib,
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 f042826e..1942980c 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
@@ -7,7 +7,7 @@ generate {
7 partial-model = { "inputs/SatelliteInstance.xmi"} 7 partial-model = { "inputs/SatelliteInstance.xmi"}
8 solver = ViatraSolver 8 solver = ViatraSolver
9 scope = { 9 scope = {
10 #node += 5..10 10 #node += 16..32
11 } 11 }
12 12
13 config = { 13 config = {
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat.java
new file mode 100644
index 00000000..ef66dce5
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat.java
@@ -0,0 +1,16 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Cube Sat</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getCubeSat()
12 * @model abstract="true"
13 * @generated
14 */
15public interface CubeSat extends Spacecraft {
16} // CubeSat
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java
index 39b2c2be..98dea285 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java
@@ -12,5 +12,5 @@ package hu.bme.mit.inf.dslreasoner.domains.satellite;
12 * @model 12 * @model
13 * @generated 13 * @generated
14 */ 14 */
15public interface CubeSat3U extends Spacecraft { 15public interface CubeSat3U extends CubeSat {
16} // CubeSat3U 16} // CubeSat3U
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.java
index 50b81a6b..eb64fe33 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.java
@@ -12,5 +12,5 @@ package hu.bme.mit.inf.dslreasoner.domains.satellite;
12 * @model 12 * @model
13 * @generated 13 * @generated
14 */ 14 */
15public interface CubeSat6U extends Spacecraft { 15public interface CubeSat6U extends CubeSat {
16} // CubeSat6U 16} // CubeSat6U
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java
index 958bbc08..3b2bc48a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java
@@ -67,6 +67,33 @@ public interface SatelliteFactory extends EFactory {
67 InterferometryPayload createInterferometryPayload(); 67 InterferometryPayload createInterferometryPayload();
68 68
69 /** 69 /**
70 * Returns a new object of class '<em>Cube Sat3 U</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Cube Sat3 U</em>'.
74 * @generated
75 */
76 CubeSat3U createCubeSat3U();
77
78 /**
79 * Returns a new object of class '<em>Cube Sat6 U</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Cube Sat6 U</em>'.
83 * @generated
84 */
85 CubeSat6U createCubeSat6U();
86
87 /**
88 * Returns a new object of class '<em>Small Sat</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Small Sat</em>'.
92 * @generated
93 */
94 SmallSat createSmallSat();
95
96 /**
70 * Returns the package supported by this factory. 97 * Returns the package supported by this factory.
71 * <!-- begin-user-doc --> 98 * <!-- begin-user-doc -->
72 * <!-- end-user-doc --> 99 * <!-- end-user-doc -->
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java
index 61da12a0..1e129422 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java
@@ -463,6 +463,262 @@ public interface SatellitePackage extends EPackage {
463 int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0; 463 int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0;
464 464
465 /** 465 /**
466 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl <em>Cube Sat</em>}' class.
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl
470 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat()
471 * @generated
472 */
473 int CUBE_SAT = 12;
474
475 /**
476 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
477 * <!-- begin-user-doc -->
478 * <!-- end-user-doc -->
479 * @generated
480 * @ordered
481 */
482 int CUBE_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
483
484 /**
485 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
486 * <!-- begin-user-doc -->
487 * <!-- end-user-doc -->
488 * @generated
489 * @ordered
490 */
491 int CUBE_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
492
493 /**
494 * The feature id for the '<em><b>Payload</b></em>' containment reference.
495 * <!-- begin-user-doc -->
496 * <!-- end-user-doc -->
497 * @generated
498 * @ordered
499 */
500 int CUBE_SAT__PAYLOAD = SPACECRAFT__PAYLOAD;
501
502 /**
503 * The feature id for the '<em><b>Kind</b></em>' attribute.
504 * <!-- begin-user-doc -->
505 * <!-- end-user-doc -->
506 * @generated
507 * @ordered
508 */
509 int CUBE_SAT__KIND = SPACECRAFT__KIND;
510
511 /**
512 * The number of structural features of the '<em>Cube Sat</em>' class.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @generated
516 * @ordered
517 */
518 int CUBE_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
519
520 /**
521 * The number of operations of the '<em>Cube Sat</em>' class.
522 * <!-- begin-user-doc -->
523 * <!-- end-user-doc -->
524 * @generated
525 * @ordered
526 */
527 int CUBE_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
528
529 /**
530 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
531 * <!-- begin-user-doc -->
532 * <!-- end-user-doc -->
533 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl
534 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat3U()
535 * @generated
536 */
537 int CUBE_SAT3_U = 9;
538
539 /**
540 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
541 * <!-- begin-user-doc -->
542 * <!-- end-user-doc -->
543 * @generated
544 * @ordered
545 */
546 int CUBE_SAT3_U__COMM_SUBSYSTEM = CUBE_SAT__COMM_SUBSYSTEM;
547
548 /**
549 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
550 * <!-- begin-user-doc -->
551 * <!-- end-user-doc -->
552 * @generated
553 * @ordered
554 */
555 int CUBE_SAT3_U__COMMUNICATION_LINK = CUBE_SAT__COMMUNICATION_LINK;
556
557 /**
558 * The feature id for the '<em><b>Payload</b></em>' containment reference.
559 * <!-- begin-user-doc -->
560 * <!-- end-user-doc -->
561 * @generated
562 * @ordered
563 */
564 int CUBE_SAT3_U__PAYLOAD = CUBE_SAT__PAYLOAD;
565
566 /**
567 * The feature id for the '<em><b>Kind</b></em>' attribute.
568 * <!-- begin-user-doc -->
569 * <!-- end-user-doc -->
570 * @generated
571 * @ordered
572 */
573 int CUBE_SAT3_U__KIND = CUBE_SAT__KIND;
574
575 /**
576 * The number of structural features of the '<em>Cube Sat3 U</em>' class.
577 * <!-- begin-user-doc -->
578 * <!-- end-user-doc -->
579 * @generated
580 * @ordered
581 */
582 int CUBE_SAT3_U_FEATURE_COUNT = CUBE_SAT_FEATURE_COUNT + 0;
583
584 /**
585 * The number of operations of the '<em>Cube Sat3 U</em>' class.
586 * <!-- begin-user-doc -->
587 * <!-- end-user-doc -->
588 * @generated
589 * @ordered
590 */
591 int CUBE_SAT3_U_OPERATION_COUNT = CUBE_SAT_OPERATION_COUNT + 0;
592
593 /**
594 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
595 * <!-- begin-user-doc -->
596 * <!-- end-user-doc -->
597 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl
598 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat6U()
599 * @generated
600 */
601 int CUBE_SAT6_U = 10;
602
603 /**
604 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @generated
608 * @ordered
609 */
610 int CUBE_SAT6_U__COMM_SUBSYSTEM = CUBE_SAT__COMM_SUBSYSTEM;
611
612 /**
613 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 * @ordered
618 */
619 int CUBE_SAT6_U__COMMUNICATION_LINK = CUBE_SAT__COMMUNICATION_LINK;
620
621 /**
622 * The feature id for the '<em><b>Payload</b></em>' containment reference.
623 * <!-- begin-user-doc -->
624 * <!-- end-user-doc -->
625 * @generated
626 * @ordered
627 */
628 int CUBE_SAT6_U__PAYLOAD = CUBE_SAT__PAYLOAD;
629
630 /**
631 * The feature id for the '<em><b>Kind</b></em>' attribute.
632 * <!-- begin-user-doc -->
633 * <!-- end-user-doc -->
634 * @generated
635 * @ordered
636 */
637 int CUBE_SAT6_U__KIND = CUBE_SAT__KIND;
638
639 /**
640 * The number of structural features of the '<em>Cube Sat6 U</em>' class.
641 * <!-- begin-user-doc -->
642 * <!-- end-user-doc -->
643 * @generated
644 * @ordered
645 */
646 int CUBE_SAT6_U_FEATURE_COUNT = CUBE_SAT_FEATURE_COUNT + 0;
647
648 /**
649 * The number of operations of the '<em>Cube Sat6 U</em>' class.
650 * <!-- begin-user-doc -->
651 * <!-- end-user-doc -->
652 * @generated
653 * @ordered
654 */
655 int CUBE_SAT6_U_OPERATION_COUNT = CUBE_SAT_OPERATION_COUNT + 0;
656
657 /**
658 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
659 * <!-- begin-user-doc -->
660 * <!-- end-user-doc -->
661 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl
662 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSmallSat()
663 * @generated
664 */
665 int SMALL_SAT = 11;
666
667 /**
668 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
669 * <!-- begin-user-doc -->
670 * <!-- end-user-doc -->
671 * @generated
672 * @ordered
673 */
674 int SMALL_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
675
676 /**
677 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
678 * <!-- begin-user-doc -->
679 * <!-- end-user-doc -->
680 * @generated
681 * @ordered
682 */
683 int SMALL_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
684
685 /**
686 * The feature id for the '<em><b>Payload</b></em>' containment reference.
687 * <!-- begin-user-doc -->
688 * <!-- end-user-doc -->
689 * @generated
690 * @ordered
691 */
692 int SMALL_SAT__PAYLOAD = SPACECRAFT__PAYLOAD;
693
694 /**
695 * The feature id for the '<em><b>Kind</b></em>' attribute.
696 * <!-- begin-user-doc -->
697 * <!-- end-user-doc -->
698 * @generated
699 * @ordered
700 */
701 int SMALL_SAT__KIND = SPACECRAFT__KIND;
702
703 /**
704 * The number of structural features of the '<em>Small Sat</em>' class.
705 * <!-- begin-user-doc -->
706 * <!-- end-user-doc -->
707 * @generated
708 * @ordered
709 */
710 int SMALL_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
711
712 /**
713 * The number of operations of the '<em>Small Sat</em>' class.
714 * <!-- begin-user-doc -->
715 * <!-- end-user-doc -->
716 * @generated
717 * @ordered
718 */
719 int SMALL_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
720
721 /**
466 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum. 722 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum.
467 * <!-- begin-user-doc --> 723 * <!-- begin-user-doc -->
468 * <!-- end-user-doc --> 724 * <!-- end-user-doc -->
@@ -470,7 +726,7 @@ public interface SatellitePackage extends EPackage {
470 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand() 726 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand()
471 * @generated 727 * @generated
472 */ 728 */
473 int TRANSCEIVER_BAND = 9; 729 int TRANSCEIVER_BAND = 13;
474 730
475 /** 731 /**
476 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum. 732 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum.
@@ -480,7 +736,7 @@ public interface SatellitePackage extends EPackage {
480 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain() 736 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain()
481 * @generated 737 * @generated
482 */ 738 */
483 int ANTENNA_GAIN = 10; 739 int ANTENNA_GAIN = 14;
484 740
485 /** 741 /**
486 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. 742 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum.
@@ -490,7 +746,7 @@ public interface SatellitePackage extends EPackage {
490 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraftKind() 746 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraftKind()
491 * @generated 747 * @generated
492 */ 748 */
493 int SPACECRAFT_KIND = 11; 749 int SPACECRAFT_KIND = 15;
494 750
495 /** 751 /**
496 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'. 752 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'.
@@ -704,6 +960,46 @@ public interface SatellitePackage extends EPackage {
704 EClass getInterferometryPayload(); 960 EClass getInterferometryPayload();
705 961
706 /** 962 /**
963 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
964 * <!-- begin-user-doc -->
965 * <!-- end-user-doc -->
966 * @return the meta object for class '<em>Cube Sat3 U</em>'.
967 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U
968 * @generated
969 */
970 EClass getCubeSat3U();
971
972 /**
973 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
974 * <!-- begin-user-doc -->
975 * <!-- end-user-doc -->
976 * @return the meta object for class '<em>Cube Sat6 U</em>'.
977 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U
978 * @generated
979 */
980 EClass getCubeSat6U();
981
982 /**
983 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat <em>Small Sat</em>}'.
984 * <!-- begin-user-doc -->
985 * <!-- end-user-doc -->
986 * @return the meta object for class '<em>Small Sat</em>'.
987 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat
988 * @generated
989 */
990 EClass getSmallSat();
991
992 /**
993 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat <em>Cube Sat</em>}'.
994 * <!-- begin-user-doc -->
995 * <!-- end-user-doc -->
996 * @return the meta object for class '<em>Cube Sat</em>'.
997 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat
998 * @generated
999 */
1000 EClass getCubeSat();
1001
1002 /**
707 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}'. 1003 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}'.
708 * <!-- begin-user-doc --> 1004 * <!-- begin-user-doc -->
709 * <!-- end-user-doc --> 1005 * <!-- end-user-doc -->
@@ -936,6 +1232,46 @@ public interface SatellitePackage extends EPackage {
936 EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload(); 1232 EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload();
937 1233
938 /** 1234 /**
1235 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
1236 * <!-- begin-user-doc -->
1237 * <!-- end-user-doc -->
1238 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl
1239 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat3U()
1240 * @generated
1241 */
1242 EClass CUBE_SAT3_U = eINSTANCE.getCubeSat3U();
1243
1244 /**
1245 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
1246 * <!-- begin-user-doc -->
1247 * <!-- end-user-doc -->
1248 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl
1249 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat6U()
1250 * @generated
1251 */
1252 EClass CUBE_SAT6_U = eINSTANCE.getCubeSat6U();
1253
1254 /**
1255 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
1256 * <!-- begin-user-doc -->
1257 * <!-- end-user-doc -->
1258 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl
1259 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSmallSat()
1260 * @generated
1261 */
1262 EClass SMALL_SAT = eINSTANCE.getSmallSat();
1263
1264 /**
1265 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl <em>Cube Sat</em>}' class.
1266 * <!-- begin-user-doc -->
1267 * <!-- end-user-doc -->
1268 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl
1269 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat()
1270 * @generated
1271 */
1272 EClass CUBE_SAT = eINSTANCE.getCubeSat();
1273
1274 /**
939 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum. 1275 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum.
940 * <!-- begin-user-doc --> 1276 * <!-- begin-user-doc -->
941 * <!-- end-user-doc --> 1277 * <!-- end-user-doc -->
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java
index cc4b85a1..34f9750a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java
@@ -57,22 +57,10 @@ public interface Spacecraft extends CommunicatingElement {
57 * <!-- end-user-doc --> 57 * <!-- end-user-doc -->
58 * @return the value of the '<em>Kind</em>' attribute. 58 * @return the value of the '<em>Kind</em>' attribute.
59 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind 59 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind
60 * @see #setKind(SpacecraftKind)
61 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft_Kind() 60 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft_Kind()
62 * @model required="true" 61 * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
63 * @generated 62 * @generated
64 */ 63 */
65 SpacecraftKind getKind(); 64 SpacecraftKind getKind();
66 65
67 /**
68 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind <em>Kind</em>}' attribute.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @param value the new value of the '<em>Kind</em>' attribute.
72 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind
73 * @see #getKind()
74 * @generated
75 */
76 void setKind(SpacecraftKind value);
77
78} // Spacecraft 66} // Spacecraft
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java
index 8be6abc1..b0b6aede 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java
@@ -38,13 +38,13 @@ public enum SpacecraftKind implements Enumerator {
38 */ 38 */
39 CUBE_SAT6_U(1, "CubeSat6U", "CubeSat6U"), 39 CUBE_SAT6_U(1, "CubeSat6U", "CubeSat6U"),
40 /** 40 /**
41 * The '<em><b>Small Sat</b></em>' literal object. 41 * The '<em><b>Small Sat</b></em>' literal object.
42 * <!-- begin-user-doc --> 42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc --> 43 * <!-- end-user-doc -->
44 * @see #SMALL_SAT_VALUE 44 * @see #SMALL_SAT_VALUE
45 * @generated 45 * @generated
46 * @ordered 46 * @ordered
47 */ 47 */
48 SMALL_SAT(2, "SmallSat", "SmallSat"); 48 SMALL_SAT(2, "SmallSat", "SmallSat");
49 49
50 /** 50 /**
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat3UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat3UImpl.java
new file mode 100644
index 00000000..3e0d6f2c
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat3UImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat3 U</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CubeSat3UImpl extends CubeSatImpl implements CubeSat3U {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSat3UImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT3_U;
35 }
36
37} //CubeSat3UImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java
new file mode 100644
index 00000000..7ad2bc87
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat6 U</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CubeSat6UImpl extends CubeSatImpl implements CubeSat6U {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSat6UImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT6_U;
35 }
36
37} //CubeSat6UImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java
new file mode 100644
index 00000000..b8e364a3
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class CubeSatImpl extends SpacecraftImpl implements CubeSat {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSatImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT;
35 }
36
37} //CubeSatImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java
index 0cb07cfa..028ba662 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java
@@ -67,6 +67,12 @@ public class SatelliteFactoryImpl extends EFactoryImpl implements SatelliteFacto
67 return createDirectedCommunicationLink(); 67 return createDirectedCommunicationLink();
68 case SatellitePackage.INTERFEROMETRY_PAYLOAD: 68 case SatellitePackage.INTERFEROMETRY_PAYLOAD:
69 return createInterferometryPayload(); 69 return createInterferometryPayload();
70 case SatellitePackage.CUBE_SAT3_U:
71 return createCubeSat3U();
72 case SatellitePackage.CUBE_SAT6_U:
73 return createCubeSat6U();
74 case SatellitePackage.SMALL_SAT:
75 return createSmallSat();
70 default: 76 default:
71 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); 77 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
72 } 78 }
@@ -170,6 +176,39 @@ public class SatelliteFactoryImpl extends EFactoryImpl implements SatelliteFacto
170 * <!-- end-user-doc --> 176 * <!-- end-user-doc -->
171 * @generated 177 * @generated
172 */ 178 */
179 @Override
180 public CubeSat3U createCubeSat3U() {
181 CubeSat3UImpl cubeSat3U = new CubeSat3UImpl();
182 return cubeSat3U;
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public CubeSat6U createCubeSat6U() {
192 CubeSat6UImpl cubeSat6U = new CubeSat6UImpl();
193 return cubeSat6U;
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 @Override
202 public SmallSat createSmallSat() {
203 SmallSatImpl smallSat = new SmallSatImpl();
204 return smallSat;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
173 public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) { 212 public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) {
174 TransceiverBand result = TransceiverBand.get(initialValue); 213 TransceiverBand result = TransceiverBand.get(initialValue);
175 if (result == null) 214 if (result == null)
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java
index 48ba32b8..bbe77e4d 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java
@@ -6,6 +6,9 @@ import hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement; 7import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission; 8import hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; 12import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork; 13import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission; 14import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission;
@@ -13,6 +16,7 @@ import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload; 16import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.SatelliteFactory; 17import hu.bme.mit.inf.dslreasoner.domains.satellite.SatelliteFactory;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; 18import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
19import hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; 20import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
17import hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind; 21import hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind;
18import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand; 22import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand;
@@ -100,6 +104,34 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
100 * <!-- end-user-doc --> 104 * <!-- end-user-doc -->
101 * @generated 105 * @generated
102 */ 106 */
107 private EClass cubeSat3UEClass = null;
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 private EClass cubeSat6UEClass = null;
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 private EClass smallSatEClass = null;
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 private EClass cubeSatEClass = null;
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
103 private EEnum transceiverBandEEnum = null; 135 private EEnum transceiverBandEEnum = null;
104 136
105 /** 137 /**
@@ -386,6 +418,46 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
386 * @generated 418 * @generated
387 */ 419 */
388 @Override 420 @Override
421 public EClass getCubeSat3U() {
422 return cubeSat3UEClass;
423 }
424
425 /**
426 * <!-- begin-user-doc -->
427 * <!-- end-user-doc -->
428 * @generated
429 */
430 @Override
431 public EClass getCubeSat6U() {
432 return cubeSat6UEClass;
433 }
434
435 /**
436 * <!-- begin-user-doc -->
437 * <!-- end-user-doc -->
438 * @generated
439 */
440 @Override
441 public EClass getSmallSat() {
442 return smallSatEClass;
443 }
444
445 /**
446 * <!-- begin-user-doc -->
447 * <!-- end-user-doc -->
448 * @generated
449 */
450 @Override
451 public EClass getCubeSat() {
452 return cubeSatEClass;
453 }
454
455 /**
456 * <!-- begin-user-doc -->
457 * <!-- end-user-doc -->
458 * @generated
459 */
460 @Override
389 public EEnum getTransceiverBand() { 461 public EEnum getTransceiverBand() {
390 return transceiverBandEEnum; 462 return transceiverBandEEnum;
391 } 463 }
@@ -469,6 +541,14 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
469 541
470 interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD); 542 interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD);
471 543
544 cubeSat3UEClass = createEClass(CUBE_SAT3_U);
545
546 cubeSat6UEClass = createEClass(CUBE_SAT6_U);
547
548 smallSatEClass = createEClass(SMALL_SAT);
549
550 cubeSatEClass = createEClass(CUBE_SAT);
551
472 // Create enums 552 // Create enums
473 transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND); 553 transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND);
474 antennaGainEEnum = createEEnum(ANTENNA_GAIN); 554 antennaGainEEnum = createEEnum(ANTENNA_GAIN);
@@ -508,6 +588,10 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
508 groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement()); 588 groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement());
509 spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement()); 589 spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement());
510 interferometryPayloadEClass.getESuperTypes().add(this.getPayload()); 590 interferometryPayloadEClass.getESuperTypes().add(this.getPayload());
591 cubeSat3UEClass.getESuperTypes().add(this.getCubeSat());
592 cubeSat6UEClass.getESuperTypes().add(this.getCubeSat());
593 smallSatEClass.getESuperTypes().add(this.getSpacecraft());
594 cubeSatEClass.getESuperTypes().add(this.getSpacecraft());
511 595
512 // Initialize classes, features, and operations; add parameters 596 // Initialize classes, features, and operations; add parameters
513 initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT, 597 initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT,
@@ -543,7 +627,7 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
543 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, 627 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
544 IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 628 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
545 initEAttribute(getSpacecraft_Kind(), this.getSpacecraftKind(), "kind", null, 1, 1, Spacecraft.class, 629 initEAttribute(getSpacecraft_Kind(), this.getSpacecraftKind(), "kind", null, 1, 1, Spacecraft.class,
546 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 630 IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
547 631
548 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, 632 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE,
549 IS_GENERATED_INSTANCE_CLASS); 633 IS_GENERATED_INSTANCE_CLASS);
@@ -566,6 +650,17 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
566 initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT, 650 initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT,
567 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 651 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
568 652
653 initEClass(cubeSat3UEClass, CubeSat3U.class, "CubeSat3U", !IS_ABSTRACT, !IS_INTERFACE,
654 IS_GENERATED_INSTANCE_CLASS);
655
656 initEClass(cubeSat6UEClass, CubeSat6U.class, "CubeSat6U", !IS_ABSTRACT, !IS_INTERFACE,
657 IS_GENERATED_INSTANCE_CLASS);
658
659 initEClass(smallSatEClass, SmallSat.class, "SmallSat", !IS_ABSTRACT, !IS_INTERFACE,
660 IS_GENERATED_INSTANCE_CLASS);
661
662 initEClass(cubeSatEClass, CubeSat.class, "CubeSat", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
663
569 // Initialize enums and add enum literals 664 // Initialize enums and add enum literals
570 initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand"); 665 initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand");
571 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF); 666 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF);
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java
new file mode 100644
index 00000000..522991ad
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Small Sat</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class SmallSatImpl extends SpacecraftImpl implements SmallSat {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected SmallSatImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.SMALL_SAT;
35 }
36
37} //SmallSatImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java
index 2135af2c..9d74270a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java
@@ -49,15 +49,6 @@ public abstract class SpacecraftImpl extends CommunicatingElementImpl implements
49 * @ordered 49 * @ordered
50 */ 50 */
51 protected static final SpacecraftKind KIND_EDEFAULT = SpacecraftKind.CUBE_SAT3_U; 51 protected static final SpacecraftKind KIND_EDEFAULT = SpacecraftKind.CUBE_SAT3_U;
52 /**
53 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #getKind()
57 * @generated
58 * @ordered
59 */
60 protected SpacecraftKind kind = KIND_EDEFAULT;
61 52
62 /** 53 /**
63 * <!-- begin-user-doc --> 54 * <!-- begin-user-doc -->
@@ -137,20 +128,9 @@ public abstract class SpacecraftImpl extends CommunicatingElementImpl implements
137 */ 128 */
138 @Override 129 @Override
139 public SpacecraftKind getKind() { 130 public SpacecraftKind getKind() {
140 return kind; 131 // TODO: implement this method to return the 'Kind' attribute
141 } 132 // Ensure that you remove @generated or mark it @generated NOT
142 133 throw new UnsupportedOperationException();
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @Override
149 public void setKind(SpacecraftKind newKind) {
150 SpacecraftKind oldKind = kind;
151 kind = newKind == null ? KIND_EDEFAULT : newKind;
152 if (eNotificationRequired())
153 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__KIND, oldKind, kind));
154 } 134 }
155 135
156 /** 136 /**
@@ -194,9 +174,6 @@ public abstract class SpacecraftImpl extends CommunicatingElementImpl implements
194 case SatellitePackage.SPACECRAFT__PAYLOAD: 174 case SatellitePackage.SPACECRAFT__PAYLOAD:
195 setPayload((Payload) newValue); 175 setPayload((Payload) newValue);
196 return; 176 return;
197 case SatellitePackage.SPACECRAFT__KIND:
198 setKind((SpacecraftKind) newValue);
199 return;
200 } 177 }
201 super.eSet(featureID, newValue); 178 super.eSet(featureID, newValue);
202 } 179 }
@@ -212,9 +189,6 @@ public abstract class SpacecraftImpl extends CommunicatingElementImpl implements
212 case SatellitePackage.SPACECRAFT__PAYLOAD: 189 case SatellitePackage.SPACECRAFT__PAYLOAD:
213 setPayload((Payload) null); 190 setPayload((Payload) null);
214 return; 191 return;
215 case SatellitePackage.SPACECRAFT__KIND:
216 setKind(KIND_EDEFAULT);
217 return;
218 } 192 }
219 super.eUnset(featureID); 193 super.eUnset(featureID);
220 } 194 }
@@ -230,26 +204,9 @@ public abstract class SpacecraftImpl extends CommunicatingElementImpl implements
230 case SatellitePackage.SPACECRAFT__PAYLOAD: 204 case SatellitePackage.SPACECRAFT__PAYLOAD:
231 return payload != null; 205 return payload != null;
232 case SatellitePackage.SPACECRAFT__KIND: 206 case SatellitePackage.SPACECRAFT__KIND:
233 return kind != KIND_EDEFAULT; 207 return getKind() != KIND_EDEFAULT;
234 } 208 }
235 return super.eIsSet(featureID); 209 return super.eIsSet(featureID);
236 } 210 }
237 211
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 @Override
244 public String toString() {
245 if (eIsProxy())
246 return super.toString();
247
248 StringBuilder result = new StringBuilder(super.toString());
249 result.append(" (kind: ");
250 result.append(kind);
251 result.append(')');
252 return result.toString();
253 }
254
255} //SpacecraftImpl 212} //SpacecraftImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java
index 639a40b7..fd948334 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java
@@ -112,6 +112,26 @@ public class SatelliteAdapterFactory extends AdapterFactoryImpl {
112 } 112 }
113 113
114 @Override 114 @Override
115 public Adapter caseCubeSat3U(CubeSat3U object) {
116 return createCubeSat3UAdapter();
117 }
118
119 @Override
120 public Adapter caseCubeSat6U(CubeSat6U object) {
121 return createCubeSat6UAdapter();
122 }
123
124 @Override
125 public Adapter caseSmallSat(SmallSat object) {
126 return createSmallSatAdapter();
127 }
128
129 @Override
130 public Adapter caseCubeSat(CubeSat object) {
131 return createCubeSatAdapter();
132 }
133
134 @Override
115 public Adapter defaultCase(EObject object) { 135 public Adapter defaultCase(EObject object) {
116 return createEObjectAdapter(); 136 return createEObjectAdapter();
117 } 137 }
@@ -257,6 +277,62 @@ public class SatelliteAdapterFactory extends AdapterFactoryImpl {
257 } 277 }
258 278
259 /** 279 /**
280 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
281 * <!-- begin-user-doc -->
282 * This default implementation returns null so that we can easily ignore cases;
283 * it's useful to ignore a case when inheritance will catch all the cases anyway.
284 * <!-- end-user-doc -->
285 * @return the new adapter.
286 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U
287 * @generated
288 */
289 public Adapter createCubeSat3UAdapter() {
290 return null;
291 }
292
293 /**
294 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
295 * <!-- begin-user-doc -->
296 * This default implementation returns null so that we can easily ignore cases;
297 * it's useful to ignore a case when inheritance will catch all the cases anyway.
298 * <!-- end-user-doc -->
299 * @return the new adapter.
300 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U
301 * @generated
302 */
303 public Adapter createCubeSat6UAdapter() {
304 return null;
305 }
306
307 /**
308 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat <em>Small Sat</em>}'.
309 * <!-- begin-user-doc -->
310 * This default implementation returns null so that we can easily ignore cases;
311 * it's useful to ignore a case when inheritance will catch all the cases anyway.
312 * <!-- end-user-doc -->
313 * @return the new adapter.
314 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat
315 * @generated
316 */
317 public Adapter createSmallSatAdapter() {
318 return null;
319 }
320
321 /**
322 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat <em>Cube Sat</em>}'.
323 * <!-- begin-user-doc -->
324 * This default implementation returns null so that we can easily ignore cases;
325 * it's useful to ignore a case when inheritance will catch all the cases anyway.
326 * <!-- end-user-doc -->
327 * @return the new adapter.
328 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat
329 * @generated
330 */
331 public Adapter createCubeSatAdapter() {
332 return null;
333 }
334
335 /**
260 * Creates a new adapter for the default case. 336 * Creates a new adapter for the default case.
261 * <!-- begin-user-doc --> 337 * <!-- begin-user-doc -->
262 * This default implementation returns null. 338 * This default implementation returns null.
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java
index e78a1cd2..08180b64 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java
@@ -137,6 +137,54 @@ public class SatelliteSwitch<T> extends Switch<T> {
137 result = defaultCase(theEObject); 137 result = defaultCase(theEObject);
138 return result; 138 return result;
139 } 139 }
140 case SatellitePackage.CUBE_SAT3_U: {
141 CubeSat3U cubeSat3U = (CubeSat3U) theEObject;
142 T result = caseCubeSat3U(cubeSat3U);
143 if (result == null)
144 result = caseCubeSat(cubeSat3U);
145 if (result == null)
146 result = caseSpacecraft(cubeSat3U);
147 if (result == null)
148 result = caseCommunicatingElement(cubeSat3U);
149 if (result == null)
150 result = defaultCase(theEObject);
151 return result;
152 }
153 case SatellitePackage.CUBE_SAT6_U: {
154 CubeSat6U cubeSat6U = (CubeSat6U) theEObject;
155 T result = caseCubeSat6U(cubeSat6U);
156 if (result == null)
157 result = caseCubeSat(cubeSat6U);
158 if (result == null)
159 result = caseSpacecraft(cubeSat6U);
160 if (result == null)
161 result = caseCommunicatingElement(cubeSat6U);
162 if (result == null)
163 result = defaultCase(theEObject);
164 return result;
165 }
166 case SatellitePackage.SMALL_SAT: {
167 SmallSat smallSat = (SmallSat) theEObject;
168 T result = caseSmallSat(smallSat);
169 if (result == null)
170 result = caseSpacecraft(smallSat);
171 if (result == null)
172 result = caseCommunicatingElement(smallSat);
173 if (result == null)
174 result = defaultCase(theEObject);
175 return result;
176 }
177 case SatellitePackage.CUBE_SAT: {
178 CubeSat cubeSat = (CubeSat) theEObject;
179 T result = caseCubeSat(cubeSat);
180 if (result == null)
181 result = caseSpacecraft(cubeSat);
182 if (result == null)
183 result = caseCommunicatingElement(cubeSat);
184 if (result == null)
185 result = defaultCase(theEObject);
186 return result;
187 }
140 default: 188 default:
141 return defaultCase(theEObject); 189 return defaultCase(theEObject);
142 } 190 }
@@ -278,6 +326,66 @@ public class SatelliteSwitch<T> extends Switch<T> {
278 } 326 }
279 327
280 /** 328 /**
329 * Returns the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'.
330 * <!-- begin-user-doc -->
331 * This implementation returns null;
332 * returning a non-null result will terminate the switch.
333 * <!-- end-user-doc -->
334 * @param object the target of the switch.
335 * @return the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'.
336 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
337 * @generated
338 */
339 public T caseCubeSat3U(CubeSat3U object) {
340 return null;
341 }
342
343 /**
344 * Returns the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'.
345 * <!-- begin-user-doc -->
346 * This implementation returns null;
347 * returning a non-null result will terminate the switch.
348 * <!-- end-user-doc -->
349 * @param object the target of the switch.
350 * @return the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'.
351 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
352 * @generated
353 */
354 public T caseCubeSat6U(CubeSat6U object) {
355 return null;
356 }
357
358 /**
359 * Returns the result of interpreting the object as an instance of '<em>Small Sat</em>'.
360 * <!-- begin-user-doc -->
361 * This implementation returns null;
362 * returning a non-null result will terminate the switch.
363 * <!-- end-user-doc -->
364 * @param object the target of the switch.
365 * @return the result of interpreting the object as an instance of '<em>Small Sat</em>'.
366 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
367 * @generated
368 */
369 public T caseSmallSat(SmallSat object) {
370 return null;
371 }
372
373 /**
374 * Returns the result of interpreting the object as an instance of '<em>Cube Sat</em>'.
375 * <!-- begin-user-doc -->
376 * This implementation returns null;
377 * returning a non-null result will terminate the switch.
378 * <!-- end-user-doc -->
379 * @param object the target of the switch.
380 * @return the result of interpreting the object as an instance of '<em>Cube Sat</em>'.
381 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
382 * @generated
383 */
384 public T caseCubeSat(CubeSat object) {
385 return null;
386 }
387
388 /**
281 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. 389 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
282 * <!-- begin-user-doc --> 390 * <!-- begin-user-doc -->
283 * This implementation returns null; 391 * This implementation returns null;
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java
new file mode 100644
index 00000000..75bc548d
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java
@@ -0,0 +1,242 @@
1/**
2 */
3package satellite;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Antenna Gain</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see satellite.SatellitePackage#getAntennaGain()
17 * @model
18 * @generated
19 */
20public enum AntennaGain implements Enumerator {
21 /**
22 * The '<em><b>LOW</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #LOW_VALUE
26 * @generated
27 * @ordered
28 */
29 LOW(0, "LOW", "LOW"),
30
31 /**
32 * The '<em><b>MEDIUM</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #MEDIUM_VALUE
36 * @generated
37 * @ordered
38 */
39 MEDIUM(1, "MEDIUM", "MEDIUM"),
40
41 /**
42 * The '<em><b>HIGH</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #HIGH_VALUE
46 * @generated
47 * @ordered
48 */
49 HIGH(2, "HIGH", "HIGH");
50
51 /**
52 * The '<em><b>LOW</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of '<em><b>LOW</b></em>' literal object isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @see #LOW
60 * @model
61 * @generated
62 * @ordered
63 */
64 public static final int LOW_VALUE = 0;
65
66 /**
67 * The '<em><b>MEDIUM</b></em>' literal value.
68 * <!-- begin-user-doc -->
69 * <p>
70 * If the meaning of '<em><b>MEDIUM</b></em>' literal object isn't clear,
71 * there really should be more of a description here...
72 * </p>
73 * <!-- end-user-doc -->
74 * @see #MEDIUM
75 * @model
76 * @generated
77 * @ordered
78 */
79 public static final int MEDIUM_VALUE = 1;
80
81 /**
82 * The '<em><b>HIGH</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <p>
85 * If the meaning of '<em><b>HIGH</b></em>' literal object isn't clear,
86 * there really should be more of a description here...
87 * </p>
88 * <!-- end-user-doc -->
89 * @see #HIGH
90 * @model
91 * @generated
92 * @ordered
93 */
94 public static final int HIGH_VALUE = 2;
95
96 /**
97 * An array of all the '<em><b>Antenna Gain</b></em>' enumerators.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 private static final AntennaGain[] VALUES_ARRAY = new AntennaGain[] { LOW, MEDIUM, HIGH, };
103
104 /**
105 * A public read-only list of all the '<em><b>Antenna Gain</b></em>' enumerators.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 public static final List<AntennaGain> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
111
112 /**
113 * Returns the '<em><b>Antenna Gain</b></em>' literal with the specified literal value.
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @param literal the literal.
117 * @return the matching enumerator or <code>null</code>.
118 * @generated
119 */
120 public static AntennaGain get(String literal) {
121 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
122 AntennaGain result = VALUES_ARRAY[i];
123 if (result.toString().equals(literal)) {
124 return result;
125 }
126 }
127 return null;
128 }
129
130 /**
131 * Returns the '<em><b>Antenna Gain</b></em>' literal with the specified name.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param name the name.
135 * @return the matching enumerator or <code>null</code>.
136 * @generated
137 */
138 public static AntennaGain getByName(String name) {
139 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
140 AntennaGain result = VALUES_ARRAY[i];
141 if (result.getName().equals(name)) {
142 return result;
143 }
144 }
145 return null;
146 }
147
148 /**
149 * Returns the '<em><b>Antenna Gain</b></em>' literal with the specified integer value.
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @param value the integer value.
153 * @return the matching enumerator or <code>null</code>.
154 * @generated
155 */
156 public static AntennaGain get(int value) {
157 switch (value) {
158 case LOW_VALUE:
159 return LOW;
160 case MEDIUM_VALUE:
161 return MEDIUM;
162 case HIGH_VALUE:
163 return HIGH;
164 }
165 return null;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private final int value;
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 private final String name;
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 private final String literal;
188
189 /**
190 * Only this class can construct instances.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 private AntennaGain(int value, String name, String literal) {
196 this.value = value;
197 this.name = name;
198 this.literal = literal;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public int getValue() {
208 return value;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getName() {
218 return name;
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public String getLiteral() {
228 return literal;
229 }
230
231 /**
232 * Returns the literal value of the enumerator, which is its string representation.
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public String toString() {
239 return literal;
240 }
241
242} //AntennaGain
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
new file mode 100644
index 00000000..072a9705
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
@@ -0,0 +1,83 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Comm Subsystem</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link satellite.CommSubsystem#getBand <em>Band</em>}</li>
17 * <li>{@link satellite.CommSubsystem#getGain <em>Gain</em>}</li>
18 * </ul>
19 *
20 * @see satellite.SatellitePackage#getCommSubsystem()
21 * @model
22 * @generated
23 */
24public interface CommSubsystem extends EObject {
25 /**
26 * Returns the value of the '<em><b>Band</b></em>' attribute.
27 * The literals are from the enumeration {@link satellite.TransceiverBand}.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Band</em>' attribute isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Band</em>' attribute.
35 * @see satellite.TransceiverBand
36 * @see #setBand(TransceiverBand)
37 * @see satellite.SatellitePackage#getCommSubsystem_Band()
38 * @model required="true"
39 * @generated
40 */
41 TransceiverBand getBand();
42
43 /**
44 * Sets the value of the '{@link satellite.CommSubsystem#getBand <em>Band</em>}' attribute.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Band</em>' attribute.
48 * @see satellite.TransceiverBand
49 * @see #getBand()
50 * @generated
51 */
52 void setBand(TransceiverBand value);
53
54 /**
55 * Returns the value of the '<em><b>Gain</b></em>' attribute.
56 * The literals are from the enumeration {@link satellite.AntennaGain}.
57 * <!-- begin-user-doc -->
58 * <p>
59 * If the meaning of the '<em>Gain</em>' attribute isn't clear,
60 * there really should be more of a description here...
61 * </p>
62 * <!-- end-user-doc -->
63 * @return the value of the '<em>Gain</em>' attribute.
64 * @see satellite.AntennaGain
65 * @see #setGain(AntennaGain)
66 * @see satellite.SatellitePackage#getCommSubsystem_Gain()
67 * @model required="true"
68 * @generated
69 */
70 AntennaGain getGain();
71
72 /**
73 * Sets the value of the '{@link satellite.CommSubsystem#getGain <em>Gain</em>}' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @param value the new value of the '<em>Gain</em>' attribute.
77 * @see satellite.AntennaGain
78 * @see #getGain()
79 * @generated
80 */
81 void setGain(AntennaGain value);
82
83} // CommSubsystem
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java
new file mode 100644
index 00000000..b96b281f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java
@@ -0,0 +1,69 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Communicating Element</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}</li>
19 * <li>{@link satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}</li>
20 * </ul>
21 *
22 * @see satellite.SatellitePackage#getCommunicatingElement()
23 * @model abstract="true"
24 * @generated
25 */
26public interface CommunicatingElement extends EObject {
27 /**
28 * Returns the value of the '<em><b>Comm Subsystem</b></em>' containment reference list.
29 * The list contents are of type {@link satellite.CommSubsystem}.
30 * <!-- begin-user-doc -->
31 * <p>
32 * If the meaning of the '<em>Comm Subsystem</em>' containment reference list isn't clear,
33 * there really should be more of a description here...
34 * </p>
35 * <!-- end-user-doc -->
36 * @return the value of the '<em>Comm Subsystem</em>' containment reference list.
37 * @see satellite.SatellitePackage#getCommunicatingElement_CommSubsystem()
38 * @model containment="true" required="true" upper="2"
39 * @generated
40 */
41 EList<CommSubsystem> getCommSubsystem();
42
43 /**
44 * Returns the value of the '<em><b>Communication Link</b></em>' containment reference.
45 * <!-- begin-user-doc -->
46 * <p>
47 * If the meaning of the '<em>Communication Link</em>' containment reference isn't clear,
48 * there really should be more of a description here...
49 * </p>
50 * <!-- end-user-doc -->
51 * @return the value of the '<em>Communication Link</em>' containment reference.
52 * @see #setCommunicationLink(DirectedCommunicationLink)
53 * @see satellite.SatellitePackage#getCommunicatingElement_CommunicationLink()
54 * @model containment="true"
55 * @generated
56 */
57 DirectedCommunicationLink getCommunicationLink();
58
59 /**
60 * Sets the value of the '{@link satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}' containment reference.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @param value the new value of the '<em>Communication Link</em>' containment reference.
64 * @see #getCommunicationLink()
65 * @generated
66 */
67 void setCommunicationLink(DirectedCommunicationLink value);
68
69} // CommunicatingElement
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
new file mode 100644
index 00000000..9402232d
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java
@@ -0,0 +1,69 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Constellation Mission</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}</li>
19 * <li>{@link satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}</li>
20 * </ul>
21 *
22 * @see satellite.SatellitePackage#getConstellationMission()
23 * @model abstract="true"
24 * @generated
25 */
26public interface ConstellationMission extends EObject {
27 /**
28 * Returns the value of the '<em><b>Ground Station Network</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Ground Station Network</em>' containment reference isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Ground Station Network</em>' containment reference.
36 * @see #setGroundStationNetwork(GroundStationNetwork)
37 * @see satellite.SatellitePackage#getConstellationMission_GroundStationNetwork()
38 * @model containment="true" required="true"
39 * @generated
40 */
41 GroundStationNetwork getGroundStationNetwork();
42
43 /**
44 * Sets the value of the '{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}' containment reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Ground Station Network</em>' containment reference.
48 * @see #getGroundStationNetwork()
49 * @generated
50 */
51 void setGroundStationNetwork(GroundStationNetwork value);
52
53 /**
54 * Returns the value of the '<em><b>Spacecraft</b></em>' containment reference list.
55 * The list contents are of type {@link satellite.Spacecraft}.
56 * <!-- begin-user-doc -->
57 * <p>
58 * If the meaning of the '<em>Spacecraft</em>' containment reference list isn't clear,
59 * there really should be more of a description here...
60 * </p>
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>Spacecraft</em>' containment reference list.
63 * @see satellite.SatellitePackage#getConstellationMission_Spacecraft()
64 * @model containment="true" lower="2" upper="50"
65 * @generated
66 */
67 EList<Spacecraft> getSpacecraft();
68
69} // ConstellationMission
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java
new file mode 100644
index 00000000..5758e165
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java
@@ -0,0 +1,16 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Cube Sat3 U</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see satellite.SatellitePackage#getCubeSat3U()
12 * @model
13 * @generated
14 */
15public interface CubeSat3U extends Spacecraft {
16} // CubeSat3U
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java
new file mode 100644
index 00000000..a8d8830f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java
@@ -0,0 +1,16 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Cube Sat6 U</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see satellite.SatellitePackage#getCubeSat6U()
12 * @model
13 * @generated
14 */
15public interface CubeSat6U extends Spacecraft {
16} // CubeSat6U
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java
new file mode 100644
index 00000000..67c8fcc8
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java
@@ -0,0 +1,77 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Directed Communication Link</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link satellite.DirectedCommunicationLink#getSource <em>Source</em>}</li>
17 * <li>{@link satellite.DirectedCommunicationLink#getTarget <em>Target</em>}</li>
18 * </ul>
19 *
20 * @see satellite.SatellitePackage#getDirectedCommunicationLink()
21 * @model
22 * @generated
23 */
24public interface DirectedCommunicationLink extends EObject {
25 /**
26 * Returns the value of the '<em><b>Source</b></em>' reference.
27 * <!-- begin-user-doc -->
28 * <p>
29 * If the meaning of the '<em>Source</em>' reference isn't clear,
30 * there really should be more of a description here...
31 * </p>
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Source</em>' reference.
34 * @see #setSource(CommSubsystem)
35 * @see satellite.SatellitePackage#getDirectedCommunicationLink_Source()
36 * @model required="true"
37 * @generated
38 */
39 CommSubsystem getSource();
40
41 /**
42 * Sets the value of the '{@link satellite.DirectedCommunicationLink#getSource <em>Source</em>}' reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Source</em>' reference.
46 * @see #getSource()
47 * @generated
48 */
49 void setSource(CommSubsystem value);
50
51 /**
52 * Returns the value of the '<em><b>Target</b></em>' reference.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of the '<em>Target</em>' reference isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @return the value of the '<em>Target</em>' reference.
60 * @see #setTarget(CommSubsystem)
61 * @see satellite.SatellitePackage#getDirectedCommunicationLink_Target()
62 * @model required="true"
63 * @generated
64 */
65 CommSubsystem getTarget();
66
67 /**
68 * Sets the value of the '{@link satellite.DirectedCommunicationLink#getTarget <em>Target</em>}' reference.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @param value the new value of the '<em>Target</em>' reference.
72 * @see #getTarget()
73 * @generated
74 */
75 void setTarget(CommSubsystem value);
76
77} // DirectedCommunicationLink
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java
new file mode 100644
index 00000000..8df20913
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java
@@ -0,0 +1,16 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Ground Station Network</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see satellite.SatellitePackage#getGroundStationNetwork()
12 * @model
13 * @generated
14 */
15public interface GroundStationNetwork extends CommunicatingElement {
16} // GroundStationNetwork
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
new file mode 100644
index 00000000..967923d4
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java
@@ -0,0 +1,49 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Interferometry Mission</b></em>'.
8 * <!-- end-user-doc -->
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 *
17 * @see satellite.SatellitePackage#getInterferometryMission()
18 * @model
19 * @generated
20 */
21public 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 * <p>
27 * If the meaning of the '<em>Observation Time</em>' attribute isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Observation Time</em>' attribute.
32 * @see #setObservationTime(float)
33 * @see satellite.SatellitePackage#getInterferometryMission_ObservationTime()
34 * @model default="2.0" required="true"
35 * @generated
36 */
37 float getObservationTime();
38
39 /**
40 * Sets the value of the '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Observation Time</em>' attribute.
44 * @see #getObservationTime()
45 * @generated
46 */
47 void setObservationTime(float value);
48
49} // InterferometryMission
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java
new file mode 100644
index 00000000..67156bdb
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java
@@ -0,0 +1,16 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Interferometry Payload</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see satellite.SatellitePackage#getInterferometryPayload()
12 * @model
13 * @generated
14 */
15public interface InterferometryPayload extends Payload {
16} // InterferometryPayload
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java
new file mode 100644
index 00000000..3222fd3b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java
@@ -0,0 +1,18 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Payload</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see satellite.SatellitePackage#getPayload()
14 * @model abstract="true"
15 * @generated
16 */
17public interface Payload extends EObject {
18} // Payload
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatelliteFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatelliteFactory.java
new file mode 100644
index 00000000..04cb80ce
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatelliteFactory.java
@@ -0,0 +1,105 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see satellite.SatellitePackage
13 * @generated
14 */
15public interface SatelliteFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 SatelliteFactory eINSTANCE = satellite.impl.SatelliteFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Interferometry Mission</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Interferometry Mission</em>'.
29 * @generated
30 */
31 InterferometryMission createInterferometryMission();
32
33 /**
34 * Returns a new object of class '<em>Ground Station Network</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Ground Station Network</em>'.
38 * @generated
39 */
40 GroundStationNetwork createGroundStationNetwork();
41
42 /**
43 * Returns a new object of class '<em>Comm Subsystem</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Comm Subsystem</em>'.
47 * @generated
48 */
49 CommSubsystem createCommSubsystem();
50
51 /**
52 * Returns a new object of class '<em>Directed Communication Link</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Directed Communication Link</em>'.
56 * @generated
57 */
58 DirectedCommunicationLink createDirectedCommunicationLink();
59
60 /**
61 * Returns a new object of class '<em>Interferometry Payload</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Interferometry Payload</em>'.
65 * @generated
66 */
67 InterferometryPayload createInterferometryPayload();
68
69 /**
70 * Returns a new object of class '<em>Cube Sat3 U</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Cube Sat3 U</em>'.
74 * @generated
75 */
76 CubeSat3U createCubeSat3U();
77
78 /**
79 * Returns a new object of class '<em>Cube Sat6 U</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Cube Sat6 U</em>'.
83 * @generated
84 */
85 CubeSat6U createCubeSat6U();
86
87 /**
88 * Returns a new object of class '<em>Small Sat</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Small Sat</em>'.
92 * @generated
93 */
94 SmallSat createSmallSat();
95
96 /**
97 * Returns the package supported by this factory.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return the package supported by this factory.
101 * @generated
102 */
103 SatellitePackage getSatellitePackage();
104
105} //SatelliteFactory
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
new file mode 100644
index 00000000..f0d80ac2
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
@@ -0,0 +1,1223 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11/**
12 * <!-- begin-user-doc -->
13 * The <b>Package</b> for the model.
14 * It contains accessors for the meta objects to represent
15 * <ul>
16 * <li>each class,</li>
17 * <li>each feature of each class,</li>
18 * <li>each operation of each class,</li>
19 * <li>each enum,</li>
20 * <li>and each data type</li>
21 * </ul>
22 * <!-- end-user-doc -->
23 * @see satellite.SatelliteFactory
24 * @model kind="package"
25 * annotation="http://www.eclipse.org/emf/2002/Ecore settingDelegates='org.eclipse.viatra.query.querybasedfeature'"
26 * @generated
27 */
28public interface SatellitePackage extends EPackage {
29 /**
30 * The package name.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 String eNAME = "satellite";
36
37 /**
38 * The package namespace URI.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @generated
42 */
43 String eNS_URI = "http://www.example.org/satellite";
44
45 /**
46 * The package namespace name.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 String eNS_PREFIX = "satellite";
52
53 /**
54 * The singleton instance of the package.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 SatellitePackage eINSTANCE = satellite.impl.SatellitePackageImpl.init();
60
61 /**
62 * The meta object id for the '{@link satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see satellite.impl.ConstellationMissionImpl
66 * @see satellite.impl.SatellitePackageImpl#getConstellationMission()
67 * @generated
68 */
69 int CONSTELLATION_MISSION = 0;
70
71 /**
72 * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 * @ordered
77 */
78 int CONSTELLATION_MISSION__GROUND_STATION_NETWORK = 0;
79
80 /**
81 * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 * @ordered
86 */
87 int CONSTELLATION_MISSION__SPACECRAFT = 1;
88
89 /**
90 * The number of structural features of the '<em>Constellation Mission</em>' class.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 * @ordered
95 */
96 int CONSTELLATION_MISSION_FEATURE_COUNT = 2;
97
98 /**
99 * The number of operations of the '<em>Constellation Mission</em>' class.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 * @ordered
104 */
105 int CONSTELLATION_MISSION_OPERATION_COUNT = 0;
106
107 /**
108 * The meta object id for the '{@link satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @see satellite.impl.InterferometryMissionImpl
112 * @see satellite.impl.SatellitePackageImpl#getInterferometryMission()
113 * @generated
114 */
115 int INTERFEROMETRY_MISSION = 1;
116
117 /**
118 * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference.
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 * @ordered
123 */
124 int INTERFEROMETRY_MISSION__GROUND_STATION_NETWORK = CONSTELLATION_MISSION__GROUND_STATION_NETWORK;
125
126 /**
127 * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 * @ordered
132 */
133 int INTERFEROMETRY_MISSION__SPACECRAFT = CONSTELLATION_MISSION__SPACECRAFT;
134
135 /**
136 * The feature id for the '<em><b>Observation Time</b></em>' attribute.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 * @ordered
141 */
142 int INTERFEROMETRY_MISSION__OBSERVATION_TIME = CONSTELLATION_MISSION_FEATURE_COUNT + 0;
143
144 /**
145 * The number of structural features of the '<em>Interferometry Mission</em>' class.
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 * @ordered
150 */
151 int INTERFEROMETRY_MISSION_FEATURE_COUNT = CONSTELLATION_MISSION_FEATURE_COUNT + 1;
152
153 /**
154 * The number of operations of the '<em>Interferometry Mission</em>' class.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 * @ordered
159 */
160 int INTERFEROMETRY_MISSION_OPERATION_COUNT = CONSTELLATION_MISSION_OPERATION_COUNT + 0;
161
162 /**
163 * The meta object id for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @see satellite.impl.CommunicatingElementImpl
167 * @see satellite.impl.SatellitePackageImpl#getCommunicatingElement()
168 * @generated
169 */
170 int COMMUNICATING_ELEMENT = 2;
171
172 /**
173 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 * @ordered
178 */
179 int COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = 0;
180
181 /**
182 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 * @ordered
187 */
188 int COMMUNICATING_ELEMENT__COMMUNICATION_LINK = 1;
189
190 /**
191 * The number of structural features of the '<em>Communicating Element</em>' class.
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 * @ordered
196 */
197 int COMMUNICATING_ELEMENT_FEATURE_COUNT = 2;
198
199 /**
200 * The number of operations of the '<em>Communicating Element</em>' class.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 * @ordered
205 */
206 int COMMUNICATING_ELEMENT_OPERATION_COUNT = 0;
207
208 /**
209 * The meta object id for the '{@link satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class.
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @see satellite.impl.GroundStationNetworkImpl
213 * @see satellite.impl.SatellitePackageImpl#getGroundStationNetwork()
214 * @generated
215 */
216 int GROUND_STATION_NETWORK = 3;
217
218 /**
219 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 * @ordered
224 */
225 int GROUND_STATION_NETWORK__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM;
226
227 /**
228 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 * @ordered
233 */
234 int GROUND_STATION_NETWORK__COMMUNICATION_LINK = COMMUNICATING_ELEMENT__COMMUNICATION_LINK;
235
236 /**
237 * The number of structural features of the '<em>Ground Station Network</em>' class.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 * @ordered
242 */
243 int GROUND_STATION_NETWORK_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0;
244
245 /**
246 * The number of operations of the '<em>Ground Station Network</em>' class.
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 * @ordered
251 */
252 int GROUND_STATION_NETWORK_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0;
253
254 /**
255 * The meta object id for the '{@link satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class.
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @see satellite.impl.SpacecraftImpl
259 * @see satellite.impl.SatellitePackageImpl#getSpacecraft()
260 * @generated
261 */
262 int SPACECRAFT = 4;
263
264 /**
265 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
266 * <!-- begin-user-doc -->
267 * <!-- end-user-doc -->
268 * @generated
269 * @ordered
270 */
271 int SPACECRAFT__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM;
272
273 /**
274 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
275 * <!-- begin-user-doc -->
276 * <!-- end-user-doc -->
277 * @generated
278 * @ordered
279 */
280 int SPACECRAFT__COMMUNICATION_LINK = COMMUNICATING_ELEMENT__COMMUNICATION_LINK;
281
282 /**
283 * The feature id for the '<em><b>Payload</b></em>' containment reference.
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 * @ordered
288 */
289 int SPACECRAFT__PAYLOAD = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0;
290
291 /**
292 * The feature id for the '<em><b>Kind</b></em>' attribute.
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @generated
296 * @ordered
297 */
298 int SPACECRAFT__KIND = COMMUNICATING_ELEMENT_FEATURE_COUNT + 1;
299
300 /**
301 * The number of structural features of the '<em>Spacecraft</em>' class.
302 * <!-- begin-user-doc -->
303 * <!-- end-user-doc -->
304 * @generated
305 * @ordered
306 */
307 int SPACECRAFT_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 2;
308
309 /**
310 * The number of operations of the '<em>Spacecraft</em>' class.
311 * <!-- begin-user-doc -->
312 * <!-- end-user-doc -->
313 * @generated
314 * @ordered
315 */
316 int SPACECRAFT_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0;
317
318 /**
319 * The meta object id for the '{@link satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class.
320 * <!-- begin-user-doc -->
321 * <!-- end-user-doc -->
322 * @see satellite.impl.CommSubsystemImpl
323 * @see satellite.impl.SatellitePackageImpl#getCommSubsystem()
324 * @generated
325 */
326 int COMM_SUBSYSTEM = 5;
327
328 /**
329 * The feature id for the '<em><b>Band</b></em>' attribute.
330 * <!-- begin-user-doc -->
331 * <!-- end-user-doc -->
332 * @generated
333 * @ordered
334 */
335 int COMM_SUBSYSTEM__BAND = 0;
336
337 /**
338 * The feature id for the '<em><b>Gain</b></em>' attribute.
339 * <!-- begin-user-doc -->
340 * <!-- end-user-doc -->
341 * @generated
342 * @ordered
343 */
344 int COMM_SUBSYSTEM__GAIN = 1;
345
346 /**
347 * The number of structural features of the '<em>Comm Subsystem</em>' class.
348 * <!-- begin-user-doc -->
349 * <!-- end-user-doc -->
350 * @generated
351 * @ordered
352 */
353 int COMM_SUBSYSTEM_FEATURE_COUNT = 2;
354
355 /**
356 * The number of operations of the '<em>Comm Subsystem</em>' class.
357 * <!-- begin-user-doc -->
358 * <!-- end-user-doc -->
359 * @generated
360 * @ordered
361 */
362 int COMM_SUBSYSTEM_OPERATION_COUNT = 0;
363
364 /**
365 * The meta object id for the '{@link satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class.
366 * <!-- begin-user-doc -->
367 * <!-- end-user-doc -->
368 * @see satellite.impl.DirectedCommunicationLinkImpl
369 * @see satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink()
370 * @generated
371 */
372 int DIRECTED_COMMUNICATION_LINK = 6;
373
374 /**
375 * The feature id for the '<em><b>Source</b></em>' reference.
376 * <!-- begin-user-doc -->
377 * <!-- end-user-doc -->
378 * @generated
379 * @ordered
380 */
381 int DIRECTED_COMMUNICATION_LINK__SOURCE = 0;
382
383 /**
384 * The feature id for the '<em><b>Target</b></em>' reference.
385 * <!-- begin-user-doc -->
386 * <!-- end-user-doc -->
387 * @generated
388 * @ordered
389 */
390 int DIRECTED_COMMUNICATION_LINK__TARGET = 1;
391
392 /**
393 * The number of structural features of the '<em>Directed Communication Link</em>' class.
394 * <!-- begin-user-doc -->
395 * <!-- end-user-doc -->
396 * @generated
397 * @ordered
398 */
399 int DIRECTED_COMMUNICATION_LINK_FEATURE_COUNT = 2;
400
401 /**
402 * The number of operations of the '<em>Directed Communication Link</em>' class.
403 * <!-- begin-user-doc -->
404 * <!-- end-user-doc -->
405 * @generated
406 * @ordered
407 */
408 int DIRECTED_COMMUNICATION_LINK_OPERATION_COUNT = 0;
409
410 /**
411 * The meta object id for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class.
412 * <!-- begin-user-doc -->
413 * <!-- end-user-doc -->
414 * @see satellite.impl.PayloadImpl
415 * @see satellite.impl.SatellitePackageImpl#getPayload()
416 * @generated
417 */
418 int PAYLOAD = 7;
419
420 /**
421 * The number of structural features of the '<em>Payload</em>' class.
422 * <!-- begin-user-doc -->
423 * <!-- end-user-doc -->
424 * @generated
425 * @ordered
426 */
427 int PAYLOAD_FEATURE_COUNT = 0;
428
429 /**
430 * The number of operations of the '<em>Payload</em>' class.
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @generated
434 * @ordered
435 */
436 int PAYLOAD_OPERATION_COUNT = 0;
437
438 /**
439 * The meta object id for the '{@link satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class.
440 * <!-- begin-user-doc -->
441 * <!-- end-user-doc -->
442 * @see satellite.impl.InterferometryPayloadImpl
443 * @see satellite.impl.SatellitePackageImpl#getInterferometryPayload()
444 * @generated
445 */
446 int INTERFEROMETRY_PAYLOAD = 8;
447
448 /**
449 * The number of structural features of the '<em>Interferometry Payload</em>' class.
450 * <!-- begin-user-doc -->
451 * <!-- end-user-doc -->
452 * @generated
453 * @ordered
454 */
455 int INTERFEROMETRY_PAYLOAD_FEATURE_COUNT = PAYLOAD_FEATURE_COUNT + 0;
456
457 /**
458 * The number of operations of the '<em>Interferometry Payload</em>' class.
459 * <!-- begin-user-doc -->
460 * <!-- end-user-doc -->
461 * @generated
462 * @ordered
463 */
464 int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0;
465
466 /**
467 * The meta object id for the '{@link satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
468 * <!-- begin-user-doc -->
469 * <!-- end-user-doc -->
470 * @see satellite.impl.CubeSat3UImpl
471 * @see satellite.impl.SatellitePackageImpl#getCubeSat3U()
472 * @generated
473 */
474 int CUBE_SAT3_U = 9;
475
476 /**
477 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
478 * <!-- begin-user-doc -->
479 * <!-- end-user-doc -->
480 * @generated
481 * @ordered
482 */
483 int CUBE_SAT3_U__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
484
485 /**
486 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
487 * <!-- begin-user-doc -->
488 * <!-- end-user-doc -->
489 * @generated
490 * @ordered
491 */
492 int CUBE_SAT3_U__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
493
494 /**
495 * The feature id for the '<em><b>Payload</b></em>' containment reference.
496 * <!-- begin-user-doc -->
497 * <!-- end-user-doc -->
498 * @generated
499 * @ordered
500 */
501 int CUBE_SAT3_U__PAYLOAD = SPACECRAFT__PAYLOAD;
502
503 /**
504 * The feature id for the '<em><b>Kind</b></em>' attribute.
505 * <!-- begin-user-doc -->
506 * <!-- end-user-doc -->
507 * @generated
508 * @ordered
509 */
510 int CUBE_SAT3_U__KIND = SPACECRAFT__KIND;
511
512 /**
513 * The number of structural features of the '<em>Cube Sat3 U</em>' class.
514 * <!-- begin-user-doc -->
515 * <!-- end-user-doc -->
516 * @generated
517 * @ordered
518 */
519 int CUBE_SAT3_U_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
520
521 /**
522 * The number of operations of the '<em>Cube Sat3 U</em>' class.
523 * <!-- begin-user-doc -->
524 * <!-- end-user-doc -->
525 * @generated
526 * @ordered
527 */
528 int CUBE_SAT3_U_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
529
530 /**
531 * The meta object id for the '{@link satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
532 * <!-- begin-user-doc -->
533 * <!-- end-user-doc -->
534 * @see satellite.impl.CubeSat6UImpl
535 * @see satellite.impl.SatellitePackageImpl#getCubeSat6U()
536 * @generated
537 */
538 int CUBE_SAT6_U = 10;
539
540 /**
541 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
542 * <!-- begin-user-doc -->
543 * <!-- end-user-doc -->
544 * @generated
545 * @ordered
546 */
547 int CUBE_SAT6_U__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
548
549 /**
550 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
551 * <!-- begin-user-doc -->
552 * <!-- end-user-doc -->
553 * @generated
554 * @ordered
555 */
556 int CUBE_SAT6_U__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
557
558 /**
559 * The feature id for the '<em><b>Payload</b></em>' containment reference.
560 * <!-- begin-user-doc -->
561 * <!-- end-user-doc -->
562 * @generated
563 * @ordered
564 */
565 int CUBE_SAT6_U__PAYLOAD = SPACECRAFT__PAYLOAD;
566
567 /**
568 * The feature id for the '<em><b>Kind</b></em>' attribute.
569 * <!-- begin-user-doc -->
570 * <!-- end-user-doc -->
571 * @generated
572 * @ordered
573 */
574 int CUBE_SAT6_U__KIND = SPACECRAFT__KIND;
575
576 /**
577 * The number of structural features of the '<em>Cube Sat6 U</em>' class.
578 * <!-- begin-user-doc -->
579 * <!-- end-user-doc -->
580 * @generated
581 * @ordered
582 */
583 int CUBE_SAT6_U_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
584
585 /**
586 * The number of operations of the '<em>Cube Sat6 U</em>' class.
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 * @ordered
591 */
592 int CUBE_SAT6_U_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
593
594 /**
595 * The meta object id for the '{@link satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @see satellite.impl.SmallSatImpl
599 * @see satellite.impl.SatellitePackageImpl#getSmallSat()
600 * @generated
601 */
602 int SMALL_SAT = 11;
603
604 /**
605 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
606 * <!-- begin-user-doc -->
607 * <!-- end-user-doc -->
608 * @generated
609 * @ordered
610 */
611 int SMALL_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
612
613 /**
614 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
615 * <!-- begin-user-doc -->
616 * <!-- end-user-doc -->
617 * @generated
618 * @ordered
619 */
620 int SMALL_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
621
622 /**
623 * The feature id for the '<em><b>Payload</b></em>' containment reference.
624 * <!-- begin-user-doc -->
625 * <!-- end-user-doc -->
626 * @generated
627 * @ordered
628 */
629 int SMALL_SAT__PAYLOAD = SPACECRAFT__PAYLOAD;
630
631 /**
632 * The feature id for the '<em><b>Kind</b></em>' attribute.
633 * <!-- begin-user-doc -->
634 * <!-- end-user-doc -->
635 * @generated
636 * @ordered
637 */
638 int SMALL_SAT__KIND = SPACECRAFT__KIND;
639
640 /**
641 * The number of structural features of the '<em>Small Sat</em>' class.
642 * <!-- begin-user-doc -->
643 * <!-- end-user-doc -->
644 * @generated
645 * @ordered
646 */
647 int SMALL_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
648
649 /**
650 * The number of operations of the '<em>Small Sat</em>' class.
651 * <!-- begin-user-doc -->
652 * <!-- end-user-doc -->
653 * @generated
654 * @ordered
655 */
656 int SMALL_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
657
658 /**
659 * The meta object id for the '{@link satellite.TransceiverBand <em>Transceiver Band</em>}' enum.
660 * <!-- begin-user-doc -->
661 * <!-- end-user-doc -->
662 * @see satellite.TransceiverBand
663 * @see satellite.impl.SatellitePackageImpl#getTransceiverBand()
664 * @generated
665 */
666 int TRANSCEIVER_BAND = 12;
667
668 /**
669 * The meta object id for the '{@link satellite.AntennaGain <em>Antenna Gain</em>}' enum.
670 * <!-- begin-user-doc -->
671 * <!-- end-user-doc -->
672 * @see satellite.AntennaGain
673 * @see satellite.impl.SatellitePackageImpl#getAntennaGain()
674 * @generated
675 */
676 int ANTENNA_GAIN = 13;
677
678 /**
679 * The meta object id for the '{@link satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum.
680 * <!-- begin-user-doc -->
681 * <!-- end-user-doc -->
682 * @see satellite.SpacecraftKind
683 * @see satellite.impl.SatellitePackageImpl#getSpacecraftKind()
684 * @generated
685 */
686 int SPACECRAFT_KIND = 14;
687
688 /**
689 * Returns the meta object for class '{@link satellite.ConstellationMission <em>Constellation Mission</em>}'.
690 * <!-- begin-user-doc -->
691 * <!-- end-user-doc -->
692 * @return the meta object for class '<em>Constellation Mission</em>'.
693 * @see satellite.ConstellationMission
694 * @generated
695 */
696 EClass getConstellationMission();
697
698 /**
699 * Returns the meta object for the containment reference '{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}'.
700 * <!-- begin-user-doc -->
701 * <!-- end-user-doc -->
702 * @return the meta object for the containment reference '<em>Ground Station Network</em>'.
703 * @see satellite.ConstellationMission#getGroundStationNetwork()
704 * @see #getConstellationMission()
705 * @generated
706 */
707 EReference getConstellationMission_GroundStationNetwork();
708
709 /**
710 * Returns the meta object for the containment reference list '{@link satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}'.
711 * <!-- begin-user-doc -->
712 * <!-- end-user-doc -->
713 * @return the meta object for the containment reference list '<em>Spacecraft</em>'.
714 * @see satellite.ConstellationMission#getSpacecraft()
715 * @see #getConstellationMission()
716 * @generated
717 */
718 EReference getConstellationMission_Spacecraft();
719
720 /**
721 * Returns the meta object for class '{@link satellite.InterferometryMission <em>Interferometry Mission</em>}'.
722 * <!-- begin-user-doc -->
723 * <!-- end-user-doc -->
724 * @return the meta object for class '<em>Interferometry Mission</em>'.
725 * @see satellite.InterferometryMission
726 * @generated
727 */
728 EClass getInterferometryMission();
729
730 /**
731 * Returns the meta object for the attribute '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'.
732 * <!-- begin-user-doc -->
733 * <!-- end-user-doc -->
734 * @return the meta object for the attribute '<em>Observation Time</em>'.
735 * @see satellite.InterferometryMission#getObservationTime()
736 * @see #getInterferometryMission()
737 * @generated
738 */
739 EAttribute getInterferometryMission_ObservationTime();
740
741 /**
742 * Returns the meta object for class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'.
743 * <!-- begin-user-doc -->
744 * <!-- end-user-doc -->
745 * @return the meta object for class '<em>Communicating Element</em>'.
746 * @see satellite.CommunicatingElement
747 * @generated
748 */
749 EClass getCommunicatingElement();
750
751 /**
752 * Returns the meta object for the containment reference list '{@link satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}'.
753 * <!-- begin-user-doc -->
754 * <!-- end-user-doc -->
755 * @return the meta object for the containment reference list '<em>Comm Subsystem</em>'.
756 * @see satellite.CommunicatingElement#getCommSubsystem()
757 * @see #getCommunicatingElement()
758 * @generated
759 */
760 EReference getCommunicatingElement_CommSubsystem();
761
762 /**
763 * Returns the meta object for the containment reference '{@link satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}'.
764 * <!-- begin-user-doc -->
765 * <!-- end-user-doc -->
766 * @return the meta object for the containment reference '<em>Communication Link</em>'.
767 * @see satellite.CommunicatingElement#getCommunicationLink()
768 * @see #getCommunicatingElement()
769 * @generated
770 */
771 EReference getCommunicatingElement_CommunicationLink();
772
773 /**
774 * Returns the meta object for class '{@link satellite.GroundStationNetwork <em>Ground Station Network</em>}'.
775 * <!-- begin-user-doc -->
776 * <!-- end-user-doc -->
777 * @return the meta object for class '<em>Ground Station Network</em>'.
778 * @see satellite.GroundStationNetwork
779 * @generated
780 */
781 EClass getGroundStationNetwork();
782
783 /**
784 * Returns the meta object for class '{@link satellite.Spacecraft <em>Spacecraft</em>}'.
785 * <!-- begin-user-doc -->
786 * <!-- end-user-doc -->
787 * @return the meta object for class '<em>Spacecraft</em>'.
788 * @see satellite.Spacecraft
789 * @generated
790 */
791 EClass getSpacecraft();
792
793 /**
794 * Returns the meta object for the containment reference '{@link satellite.Spacecraft#getPayload <em>Payload</em>}'.
795 * <!-- begin-user-doc -->
796 * <!-- end-user-doc -->
797 * @return the meta object for the containment reference '<em>Payload</em>'.
798 * @see satellite.Spacecraft#getPayload()
799 * @see #getSpacecraft()
800 * @generated
801 */
802 EReference getSpacecraft_Payload();
803
804 /**
805 * Returns the meta object for the attribute '{@link satellite.Spacecraft#getKind <em>Kind</em>}'.
806 * <!-- begin-user-doc -->
807 * <!-- end-user-doc -->
808 * @return the meta object for the attribute '<em>Kind</em>'.
809 * @see satellite.Spacecraft#getKind()
810 * @see #getSpacecraft()
811 * @generated
812 */
813 EAttribute getSpacecraft_Kind();
814
815 /**
816 * Returns the meta object for class '{@link satellite.CommSubsystem <em>Comm Subsystem</em>}'.
817 * <!-- begin-user-doc -->
818 * <!-- end-user-doc -->
819 * @return the meta object for class '<em>Comm Subsystem</em>'.
820 * @see satellite.CommSubsystem
821 * @generated
822 */
823 EClass getCommSubsystem();
824
825 /**
826 * Returns the meta object for the attribute '{@link satellite.CommSubsystem#getBand <em>Band</em>}'.
827 * <!-- begin-user-doc -->
828 * <!-- end-user-doc -->
829 * @return the meta object for the attribute '<em>Band</em>'.
830 * @see satellite.CommSubsystem#getBand()
831 * @see #getCommSubsystem()
832 * @generated
833 */
834 EAttribute getCommSubsystem_Band();
835
836 /**
837 * Returns the meta object for the attribute '{@link satellite.CommSubsystem#getGain <em>Gain</em>}'.
838 * <!-- begin-user-doc -->
839 * <!-- end-user-doc -->
840 * @return the meta object for the attribute '<em>Gain</em>'.
841 * @see satellite.CommSubsystem#getGain()
842 * @see #getCommSubsystem()
843 * @generated
844 */
845 EAttribute getCommSubsystem_Gain();
846
847 /**
848 * Returns the meta object for class '{@link satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'.
849 * <!-- begin-user-doc -->
850 * <!-- end-user-doc -->
851 * @return the meta object for class '<em>Directed Communication Link</em>'.
852 * @see satellite.DirectedCommunicationLink
853 * @generated
854 */
855 EClass getDirectedCommunicationLink();
856
857 /**
858 * Returns the meta object for the reference '{@link satellite.DirectedCommunicationLink#getSource <em>Source</em>}'.
859 * <!-- begin-user-doc -->
860 * <!-- end-user-doc -->
861 * @return the meta object for the reference '<em>Source</em>'.
862 * @see satellite.DirectedCommunicationLink#getSource()
863 * @see #getDirectedCommunicationLink()
864 * @generated
865 */
866 EReference getDirectedCommunicationLink_Source();
867
868 /**
869 * Returns the meta object for the reference '{@link satellite.DirectedCommunicationLink#getTarget <em>Target</em>}'.
870 * <!-- begin-user-doc -->
871 * <!-- end-user-doc -->
872 * @return the meta object for the reference '<em>Target</em>'.
873 * @see satellite.DirectedCommunicationLink#getTarget()
874 * @see #getDirectedCommunicationLink()
875 * @generated
876 */
877 EReference getDirectedCommunicationLink_Target();
878
879 /**
880 * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'.
881 * <!-- begin-user-doc -->
882 * <!-- end-user-doc -->
883 * @return the meta object for class '<em>Payload</em>'.
884 * @see satellite.Payload
885 * @generated
886 */
887 EClass getPayload();
888
889 /**
890 * Returns the meta object for class '{@link satellite.InterferometryPayload <em>Interferometry Payload</em>}'.
891 * <!-- begin-user-doc -->
892 * <!-- end-user-doc -->
893 * @return the meta object for class '<em>Interferometry Payload</em>'.
894 * @see satellite.InterferometryPayload
895 * @generated
896 */
897 EClass getInterferometryPayload();
898
899 /**
900 * Returns the meta object for class '{@link satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
901 * <!-- begin-user-doc -->
902 * <!-- end-user-doc -->
903 * @return the meta object for class '<em>Cube Sat3 U</em>'.
904 * @see satellite.CubeSat3U
905 * @generated
906 */
907 EClass getCubeSat3U();
908
909 /**
910 * Returns the meta object for class '{@link satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
911 * <!-- begin-user-doc -->
912 * <!-- end-user-doc -->
913 * @return the meta object for class '<em>Cube Sat6 U</em>'.
914 * @see satellite.CubeSat6U
915 * @generated
916 */
917 EClass getCubeSat6U();
918
919 /**
920 * Returns the meta object for class '{@link satellite.SmallSat <em>Small Sat</em>}'.
921 * <!-- begin-user-doc -->
922 * <!-- end-user-doc -->
923 * @return the meta object for class '<em>Small Sat</em>'.
924 * @see satellite.SmallSat
925 * @generated
926 */
927 EClass getSmallSat();
928
929 /**
930 * Returns the meta object for enum '{@link satellite.TransceiverBand <em>Transceiver Band</em>}'.
931 * <!-- begin-user-doc -->
932 * <!-- end-user-doc -->
933 * @return the meta object for enum '<em>Transceiver Band</em>'.
934 * @see satellite.TransceiverBand
935 * @generated
936 */
937 EEnum getTransceiverBand();
938
939 /**
940 * Returns the meta object for enum '{@link satellite.AntennaGain <em>Antenna Gain</em>}'.
941 * <!-- begin-user-doc -->
942 * <!-- end-user-doc -->
943 * @return the meta object for enum '<em>Antenna Gain</em>'.
944 * @see satellite.AntennaGain
945 * @generated
946 */
947 EEnum getAntennaGain();
948
949 /**
950 * Returns the meta object for enum '{@link satellite.SpacecraftKind <em>Spacecraft Kind</em>}'.
951 * <!-- begin-user-doc -->
952 * <!-- end-user-doc -->
953 * @return the meta object for enum '<em>Spacecraft Kind</em>'.
954 * @see satellite.SpacecraftKind
955 * @generated
956 */
957 EEnum getSpacecraftKind();
958
959 /**
960 * Returns the factory that creates the instances of the model.
961 * <!-- begin-user-doc -->
962 * <!-- end-user-doc -->
963 * @return the factory that creates the instances of the model.
964 * @generated
965 */
966 SatelliteFactory getSatelliteFactory();
967
968 /**
969 * <!-- begin-user-doc -->
970 * Defines literals for the meta objects that represent
971 * <ul>
972 * <li>each class,</li>
973 * <li>each feature of each class,</li>
974 * <li>each operation of each class,</li>
975 * <li>each enum,</li>
976 * <li>and each data type</li>
977 * </ul>
978 * <!-- end-user-doc -->
979 * @generated
980 */
981 interface Literals {
982 /**
983 * The meta object literal for the '{@link satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class.
984 * <!-- begin-user-doc -->
985 * <!-- end-user-doc -->
986 * @see satellite.impl.ConstellationMissionImpl
987 * @see satellite.impl.SatellitePackageImpl#getConstellationMission()
988 * @generated
989 */
990 EClass CONSTELLATION_MISSION = eINSTANCE.getConstellationMission();
991
992 /**
993 * The meta object literal for the '<em><b>Ground Station Network</b></em>' containment reference feature.
994 * <!-- begin-user-doc -->
995 * <!-- end-user-doc -->
996 * @generated
997 */
998 EReference CONSTELLATION_MISSION__GROUND_STATION_NETWORK = eINSTANCE
999 .getConstellationMission_GroundStationNetwork();
1000
1001 /**
1002 * The meta object literal for the '<em><b>Spacecraft</b></em>' containment reference list feature.
1003 * <!-- begin-user-doc -->
1004 * <!-- end-user-doc -->
1005 * @generated
1006 */
1007 EReference CONSTELLATION_MISSION__SPACECRAFT = eINSTANCE.getConstellationMission_Spacecraft();
1008
1009 /**
1010 * The meta object literal for the '{@link satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class.
1011 * <!-- begin-user-doc -->
1012 * <!-- end-user-doc -->
1013 * @see satellite.impl.InterferometryMissionImpl
1014 * @see satellite.impl.SatellitePackageImpl#getInterferometryMission()
1015 * @generated
1016 */
1017 EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission();
1018
1019 /**
1020 * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature.
1021 * <!-- begin-user-doc -->
1022 * <!-- end-user-doc -->
1023 * @generated
1024 */
1025 EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime();
1026
1027 /**
1028 * The meta object literal for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
1029 * <!-- begin-user-doc -->
1030 * <!-- end-user-doc -->
1031 * @see satellite.impl.CommunicatingElementImpl
1032 * @see satellite.impl.SatellitePackageImpl#getCommunicatingElement()
1033 * @generated
1034 */
1035 EClass COMMUNICATING_ELEMENT = eINSTANCE.getCommunicatingElement();
1036
1037 /**
1038 * The meta object literal for the '<em><b>Comm Subsystem</b></em>' containment reference list feature.
1039 * <!-- begin-user-doc -->
1040 * <!-- end-user-doc -->
1041 * @generated
1042 */
1043 EReference COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = eINSTANCE.getCommunicatingElement_CommSubsystem();
1044
1045 /**
1046 * The meta object literal for the '<em><b>Communication Link</b></em>' containment reference feature.
1047 * <!-- begin-user-doc -->
1048 * <!-- end-user-doc -->
1049 * @generated
1050 */
1051 EReference COMMUNICATING_ELEMENT__COMMUNICATION_LINK = eINSTANCE.getCommunicatingElement_CommunicationLink();
1052
1053 /**
1054 * The meta object literal for the '{@link satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class.
1055 * <!-- begin-user-doc -->
1056 * <!-- end-user-doc -->
1057 * @see satellite.impl.GroundStationNetworkImpl
1058 * @see satellite.impl.SatellitePackageImpl#getGroundStationNetwork()
1059 * @generated
1060 */
1061 EClass GROUND_STATION_NETWORK = eINSTANCE.getGroundStationNetwork();
1062
1063 /**
1064 * The meta object literal for the '{@link satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class.
1065 * <!-- begin-user-doc -->
1066 * <!-- end-user-doc -->
1067 * @see satellite.impl.SpacecraftImpl
1068 * @see satellite.impl.SatellitePackageImpl#getSpacecraft()
1069 * @generated
1070 */
1071 EClass SPACECRAFT = eINSTANCE.getSpacecraft();
1072
1073 /**
1074 * The meta object literal for the '<em><b>Payload</b></em>' containment reference feature.
1075 * <!-- begin-user-doc -->
1076 * <!-- end-user-doc -->
1077 * @generated
1078 */
1079 EReference SPACECRAFT__PAYLOAD = eINSTANCE.getSpacecraft_Payload();
1080
1081 /**
1082 * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
1083 * <!-- begin-user-doc -->
1084 * <!-- end-user-doc -->
1085 * @generated
1086 */
1087 EAttribute SPACECRAFT__KIND = eINSTANCE.getSpacecraft_Kind();
1088
1089 /**
1090 * The meta object literal for the '{@link satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class.
1091 * <!-- begin-user-doc -->
1092 * <!-- end-user-doc -->
1093 * @see satellite.impl.CommSubsystemImpl
1094 * @see satellite.impl.SatellitePackageImpl#getCommSubsystem()
1095 * @generated
1096 */
1097 EClass COMM_SUBSYSTEM = eINSTANCE.getCommSubsystem();
1098
1099 /**
1100 * The meta object literal for the '<em><b>Band</b></em>' attribute feature.
1101 * <!-- begin-user-doc -->
1102 * <!-- end-user-doc -->
1103 * @generated
1104 */
1105 EAttribute COMM_SUBSYSTEM__BAND = eINSTANCE.getCommSubsystem_Band();
1106
1107 /**
1108 * The meta object literal for the '<em><b>Gain</b></em>' attribute feature.
1109 * <!-- begin-user-doc -->
1110 * <!-- end-user-doc -->
1111 * @generated
1112 */
1113 EAttribute COMM_SUBSYSTEM__GAIN = eINSTANCE.getCommSubsystem_Gain();
1114
1115 /**
1116 * The meta object literal for the '{@link satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class.
1117 * <!-- begin-user-doc -->
1118 * <!-- end-user-doc -->
1119 * @see satellite.impl.DirectedCommunicationLinkImpl
1120 * @see satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink()
1121 * @generated
1122 */
1123 EClass DIRECTED_COMMUNICATION_LINK = eINSTANCE.getDirectedCommunicationLink();
1124
1125 /**
1126 * The meta object literal for the '<em><b>Source</b></em>' reference feature.
1127 * <!-- begin-user-doc -->
1128 * <!-- end-user-doc -->
1129 * @generated
1130 */
1131 EReference DIRECTED_COMMUNICATION_LINK__SOURCE = eINSTANCE.getDirectedCommunicationLink_Source();
1132
1133 /**
1134 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
1135 * <!-- begin-user-doc -->
1136 * <!-- end-user-doc -->
1137 * @generated
1138 */
1139 EReference DIRECTED_COMMUNICATION_LINK__TARGET = eINSTANCE.getDirectedCommunicationLink_Target();
1140
1141 /**
1142 * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class.
1143 * <!-- begin-user-doc -->
1144 * <!-- end-user-doc -->
1145 * @see satellite.impl.PayloadImpl
1146 * @see satellite.impl.SatellitePackageImpl#getPayload()
1147 * @generated
1148 */
1149 EClass PAYLOAD = eINSTANCE.getPayload();
1150
1151 /**
1152 * The meta object literal for the '{@link satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class.
1153 * <!-- begin-user-doc -->
1154 * <!-- end-user-doc -->
1155 * @see satellite.impl.InterferometryPayloadImpl
1156 * @see satellite.impl.SatellitePackageImpl#getInterferometryPayload()
1157 * @generated
1158 */
1159 EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload();
1160
1161 /**
1162 * The meta object literal for the '{@link satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
1163 * <!-- begin-user-doc -->
1164 * <!-- end-user-doc -->
1165 * @see satellite.impl.CubeSat3UImpl
1166 * @see satellite.impl.SatellitePackageImpl#getCubeSat3U()
1167 * @generated
1168 */
1169 EClass CUBE_SAT3_U = eINSTANCE.getCubeSat3U();
1170
1171 /**
1172 * The meta object literal for the '{@link satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
1173 * <!-- begin-user-doc -->
1174 * <!-- end-user-doc -->
1175 * @see satellite.impl.CubeSat6UImpl
1176 * @see satellite.impl.SatellitePackageImpl#getCubeSat6U()
1177 * @generated
1178 */
1179 EClass CUBE_SAT6_U = eINSTANCE.getCubeSat6U();
1180
1181 /**
1182 * The meta object literal for the '{@link satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
1183 * <!-- begin-user-doc -->
1184 * <!-- end-user-doc -->
1185 * @see satellite.impl.SmallSatImpl
1186 * @see satellite.impl.SatellitePackageImpl#getSmallSat()
1187 * @generated
1188 */
1189 EClass SMALL_SAT = eINSTANCE.getSmallSat();
1190
1191 /**
1192 * The meta object literal for the '{@link satellite.TransceiverBand <em>Transceiver Band</em>}' enum.
1193 * <!-- begin-user-doc -->
1194 * <!-- end-user-doc -->
1195 * @see satellite.TransceiverBand
1196 * @see satellite.impl.SatellitePackageImpl#getTransceiverBand()
1197 * @generated
1198 */
1199 EEnum TRANSCEIVER_BAND = eINSTANCE.getTransceiverBand();
1200
1201 /**
1202 * The meta object literal for the '{@link satellite.AntennaGain <em>Antenna Gain</em>}' enum.
1203 * <!-- begin-user-doc -->
1204 * <!-- end-user-doc -->
1205 * @see satellite.AntennaGain
1206 * @see satellite.impl.SatellitePackageImpl#getAntennaGain()
1207 * @generated
1208 */
1209 EEnum ANTENNA_GAIN = eINSTANCE.getAntennaGain();
1210
1211 /**
1212 * The meta object literal for the '{@link satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum.
1213 * <!-- begin-user-doc -->
1214 * <!-- end-user-doc -->
1215 * @see satellite.SpacecraftKind
1216 * @see satellite.impl.SatellitePackageImpl#getSpacecraftKind()
1217 * @generated
1218 */
1219 EEnum SPACECRAFT_KIND = eINSTANCE.getSpacecraftKind();
1220
1221 }
1222
1223} //SatellitePackage
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java
new file mode 100644
index 00000000..230958f6
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java
@@ -0,0 +1,16 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Small Sat</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see satellite.SatellitePackage#getSmallSat()
12 * @model
13 * @generated
14 */
15public interface SmallSat extends Spacecraft {
16} // SmallSat
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java
new file mode 100644
index 00000000..d8775572
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java
@@ -0,0 +1,67 @@
1/**
2 */
3package satellite;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Spacecraft</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link satellite.Spacecraft#getPayload <em>Payload</em>}</li>
15 * <li>{@link satellite.Spacecraft#getKind <em>Kind</em>}</li>
16 * </ul>
17 *
18 * @see satellite.SatellitePackage#getSpacecraft()
19 * @model abstract="true"
20 * @generated
21 */
22public interface Spacecraft extends CommunicatingElement {
23 /**
24 * Returns the value of the '<em><b>Payload</b></em>' containment reference.
25 * <!-- begin-user-doc -->
26 * <p>
27 * If the meaning of the '<em>Payload</em>' containment reference isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Payload</em>' containment reference.
32 * @see #setPayload(Payload)
33 * @see satellite.SatellitePackage#getSpacecraft_Payload()
34 * @model containment="true"
35 * @generated
36 */
37 Payload getPayload();
38
39 /**
40 * Sets the value of the '{@link satellite.Spacecraft#getPayload <em>Payload</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Payload</em>' containment reference.
44 * @see #getPayload()
45 * @generated
46 */
47 void setPayload(Payload value);
48
49 /**
50 * Returns the value of the '<em><b>Kind</b></em>' attribute.
51 * The literals are from the enumeration {@link satellite.SpacecraftKind}.
52 * <!-- begin-user-doc -->
53 * <p>
54 * If the meaning of the '<em>Kind</em>' attribute isn't clear,
55 * there really should be more of a description here...
56 * </p>
57 * <!-- end-user-doc -->
58 * @return the value of the '<em>Kind</em>' attribute.
59 * @see satellite.SpacecraftKind
60 * @see satellite.SatellitePackage#getSpacecraft_Kind()
61 * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
62 * annotation="org.eclipse.viatra.query.querybasedfeature patternFQN='hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind'"
63 * @generated
64 */
65 SpacecraftKind getKind();
66
67} // Spacecraft
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java
new file mode 100644
index 00000000..40bb432d
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java
@@ -0,0 +1,242 @@
1/**
2 */
3package satellite;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Spacecraft Kind</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see satellite.SatellitePackage#getSpacecraftKind()
17 * @model
18 * @generated
19 */
20public enum SpacecraftKind implements Enumerator {
21 /**
22 * The '<em><b>Cube Sat3 U</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #CUBE_SAT3_U_VALUE
26 * @generated
27 * @ordered
28 */
29 CUBE_SAT3_U(0, "CubeSat3U", "CubeSat3U"),
30
31 /**
32 * The '<em><b>Cube Sat6 U</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #CUBE_SAT6_U_VALUE
36 * @generated
37 * @ordered
38 */
39 CUBE_SAT6_U(1, "CubeSat6U", "CubeSat6U"),
40
41 /**
42 * The '<em><b>Small Sat</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #SMALL_SAT_VALUE
46 * @generated
47 * @ordered
48 */
49 SMALL_SAT(2, "SmallSat", "SmallSat");
50
51 /**
52 * The '<em><b>Cube Sat3 U</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of '<em><b>Cube Sat3 U</b></em>' literal object isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @see #CUBE_SAT3_U
60 * @model name="CubeSat3U"
61 * @generated
62 * @ordered
63 */
64 public static final int CUBE_SAT3_U_VALUE = 0;
65
66 /**
67 * The '<em><b>Cube Sat6 U</b></em>' literal value.
68 * <!-- begin-user-doc -->
69 * <p>
70 * If the meaning of '<em><b>Cube Sat6 U</b></em>' literal object isn't clear,
71 * there really should be more of a description here...
72 * </p>
73 * <!-- end-user-doc -->
74 * @see #CUBE_SAT6_U
75 * @model name="CubeSat6U"
76 * @generated
77 * @ordered
78 */
79 public static final int CUBE_SAT6_U_VALUE = 1;
80
81 /**
82 * The '<em><b>Small Sat</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <p>
85 * If the meaning of '<em><b>Small Sat</b></em>' literal object isn't clear,
86 * there really should be more of a description here...
87 * </p>
88 * <!-- end-user-doc -->
89 * @see #SMALL_SAT
90 * @model name="SmallSat"
91 * @generated
92 * @ordered
93 */
94 public static final int SMALL_SAT_VALUE = 2;
95
96 /**
97 * An array of all the '<em><b>Spacecraft Kind</b></em>' enumerators.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 private static final SpacecraftKind[] VALUES_ARRAY = new SpacecraftKind[] { CUBE_SAT3_U, CUBE_SAT6_U, SMALL_SAT, };
103
104 /**
105 * A public read-only list of all the '<em><b>Spacecraft Kind</b></em>' enumerators.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 public static final List<SpacecraftKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
111
112 /**
113 * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified literal value.
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @param literal the literal.
117 * @return the matching enumerator or <code>null</code>.
118 * @generated
119 */
120 public static SpacecraftKind get(String literal) {
121 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
122 SpacecraftKind result = VALUES_ARRAY[i];
123 if (result.toString().equals(literal)) {
124 return result;
125 }
126 }
127 return null;
128 }
129
130 /**
131 * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified name.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param name the name.
135 * @return the matching enumerator or <code>null</code>.
136 * @generated
137 */
138 public static SpacecraftKind getByName(String name) {
139 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
140 SpacecraftKind result = VALUES_ARRAY[i];
141 if (result.getName().equals(name)) {
142 return result;
143 }
144 }
145 return null;
146 }
147
148 /**
149 * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified integer value.
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @param value the integer value.
153 * @return the matching enumerator or <code>null</code>.
154 * @generated
155 */
156 public static SpacecraftKind get(int value) {
157 switch (value) {
158 case CUBE_SAT3_U_VALUE:
159 return CUBE_SAT3_U;
160 case CUBE_SAT6_U_VALUE:
161 return CUBE_SAT6_U;
162 case SMALL_SAT_VALUE:
163 return SMALL_SAT;
164 }
165 return null;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private final int value;
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 private final String name;
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 private final String literal;
188
189 /**
190 * Only this class can construct instances.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 private SpacecraftKind(int value, String name, String literal) {
196 this.value = value;
197 this.name = name;
198 this.literal = literal;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public int getValue() {
208 return value;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getName() {
218 return name;
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public String getLiteral() {
228 return literal;
229 }
230
231 /**
232 * Returns the literal value of the enumerator, which is its string representation.
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public String toString() {
239 return literal;
240 }
241
242} //SpacecraftKind
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java
new file mode 100644
index 00000000..b6be75bf
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java
@@ -0,0 +1,242 @@
1/**
2 */
3package satellite;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Transceiver Band</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see satellite.SatellitePackage#getTransceiverBand()
17 * @model
18 * @generated
19 */
20public enum TransceiverBand implements Enumerator {
21 /**
22 * The '<em><b>UHF</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #UHF_VALUE
26 * @generated
27 * @ordered
28 */
29 UHF(0, "UHF", "UHF"),
30
31 /**
32 * The '<em><b>X</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #X_VALUE
36 * @generated
37 * @ordered
38 */
39 X(1, "X", "X"),
40
41 /**
42 * The '<em><b>Ka</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #KA_VALUE
46 * @generated
47 * @ordered
48 */
49 KA(2, "Ka", "Ka");
50
51 /**
52 * The '<em><b>UHF</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of '<em><b>UHF</b></em>' literal object isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @see #UHF
60 * @model
61 * @generated
62 * @ordered
63 */
64 public static final int UHF_VALUE = 0;
65
66 /**
67 * The '<em><b>X</b></em>' literal value.
68 * <!-- begin-user-doc -->
69 * <p>
70 * If the meaning of '<em><b>X</b></em>' literal object isn't clear,
71 * there really should be more of a description here...
72 * </p>
73 * <!-- end-user-doc -->
74 * @see #X
75 * @model
76 * @generated
77 * @ordered
78 */
79 public static final int X_VALUE = 1;
80
81 /**
82 * The '<em><b>Ka</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <p>
85 * If the meaning of '<em><b>Ka</b></em>' literal object isn't clear,
86 * there really should be more of a description here...
87 * </p>
88 * <!-- end-user-doc -->
89 * @see #KA
90 * @model name="Ka"
91 * @generated
92 * @ordered
93 */
94 public static final int KA_VALUE = 2;
95
96 /**
97 * An array of all the '<em><b>Transceiver Band</b></em>' enumerators.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 private static final TransceiverBand[] VALUES_ARRAY = new TransceiverBand[] { UHF, X, KA, };
103
104 /**
105 * A public read-only list of all the '<em><b>Transceiver Band</b></em>' enumerators.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 public static final List<TransceiverBand> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
111
112 /**
113 * Returns the '<em><b>Transceiver Band</b></em>' literal with the specified literal value.
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @param literal the literal.
117 * @return the matching enumerator or <code>null</code>.
118 * @generated
119 */
120 public static TransceiverBand get(String literal) {
121 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
122 TransceiverBand result = VALUES_ARRAY[i];
123 if (result.toString().equals(literal)) {
124 return result;
125 }
126 }
127 return null;
128 }
129
130 /**
131 * Returns the '<em><b>Transceiver Band</b></em>' literal with the specified name.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param name the name.
135 * @return the matching enumerator or <code>null</code>.
136 * @generated
137 */
138 public static TransceiverBand getByName(String name) {
139 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
140 TransceiverBand result = VALUES_ARRAY[i];
141 if (result.getName().equals(name)) {
142 return result;
143 }
144 }
145 return null;
146 }
147
148 /**
149 * Returns the '<em><b>Transceiver Band</b></em>' literal with the specified integer value.
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @param value the integer value.
153 * @return the matching enumerator or <code>null</code>.
154 * @generated
155 */
156 public static TransceiverBand get(int value) {
157 switch (value) {
158 case UHF_VALUE:
159 return UHF;
160 case X_VALUE:
161 return X;
162 case KA_VALUE:
163 return KA;
164 }
165 return null;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private final int value;
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 private final String name;
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 private final String literal;
188
189 /**
190 * Only this class can construct instances.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 private TransceiverBand(int value, String name, String literal) {
196 this.value = value;
197 this.name = name;
198 this.literal = literal;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public int getValue() {
208 return value;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getName() {
218 return name;
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public String getLiteral() {
228 return literal;
229 }
230
231 /**
232 * Returns the literal value of the enumerator, which is its string representation.
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public String toString() {
239 return literal;
240 }
241
242} //TransceiverBand
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
new file mode 100644
index 00000000..cf8f1fe8
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
@@ -0,0 +1,226 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
11
12import satellite.AntennaGain;
13import satellite.CommSubsystem;
14import satellite.SatellitePackage;
15import satellite.TransceiverBand;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Comm Subsystem</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link satellite.impl.CommSubsystemImpl#getBand <em>Band</em>}</li>
26 * <li>{@link satellite.impl.CommSubsystemImpl#getGain <em>Gain</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public class CommSubsystemImpl extends MinimalEObjectImpl.Container implements CommSubsystem {
32 /**
33 * The default value of the '{@link #getBand() <em>Band</em>}' attribute.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getBand()
37 * @generated
38 * @ordered
39 */
40 protected static final TransceiverBand BAND_EDEFAULT = TransceiverBand.UHF;
41
42 /**
43 * The cached value of the '{@link #getBand() <em>Band</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getBand()
47 * @generated
48 * @ordered
49 */
50 protected TransceiverBand band = BAND_EDEFAULT;
51
52 /**
53 * The default value of the '{@link #getGain() <em>Gain</em>}' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #getGain()
57 * @generated
58 * @ordered
59 */
60 protected static final AntennaGain GAIN_EDEFAULT = AntennaGain.LOW;
61
62 /**
63 * The cached value of the '{@link #getGain() <em>Gain</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #getGain()
67 * @generated
68 * @ordered
69 */
70 protected AntennaGain gain = GAIN_EDEFAULT;
71
72 /**
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 */
77 protected CommSubsystemImpl() {
78 super();
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 @Override
87 protected EClass eStaticClass() {
88 return SatellitePackage.Literals.COMM_SUBSYSTEM;
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 public TransceiverBand getBand() {
98 return band;
99 }
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 @Override
107 public void setBand(TransceiverBand newBand) {
108 TransceiverBand oldBand = band;
109 band = newBand == null ? BAND_EDEFAULT : newBand;
110 if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__BAND, oldBand,
112 band));
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @Override
121 public AntennaGain getGain() {
122 return gain;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void setGain(AntennaGain newGain) {
132 AntennaGain oldGain = gain;
133 gain = newGain == null ? GAIN_EDEFAULT : newGain;
134 if (eNotificationRequired())
135 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__GAIN, oldGain,
136 gain));
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public Object eGet(int featureID, boolean resolve, boolean coreType) {
146 switch (featureID) {
147 case SatellitePackage.COMM_SUBSYSTEM__BAND:
148 return getBand();
149 case SatellitePackage.COMM_SUBSYSTEM__GAIN:
150 return getGain();
151 }
152 return super.eGet(featureID, resolve, coreType);
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public void eSet(int featureID, Object newValue) {
162 switch (featureID) {
163 case SatellitePackage.COMM_SUBSYSTEM__BAND:
164 setBand((TransceiverBand) newValue);
165 return;
166 case SatellitePackage.COMM_SUBSYSTEM__GAIN:
167 setGain((AntennaGain) newValue);
168 return;
169 }
170 super.eSet(featureID, newValue);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public void eUnset(int featureID) {
180 switch (featureID) {
181 case SatellitePackage.COMM_SUBSYSTEM__BAND:
182 setBand(BAND_EDEFAULT);
183 return;
184 case SatellitePackage.COMM_SUBSYSTEM__GAIN:
185 setGain(GAIN_EDEFAULT);
186 return;
187 }
188 super.eUnset(featureID);
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public boolean eIsSet(int featureID) {
198 switch (featureID) {
199 case SatellitePackage.COMM_SUBSYSTEM__BAND:
200 return band != BAND_EDEFAULT;
201 case SatellitePackage.COMM_SUBSYSTEM__GAIN:
202 return gain != GAIN_EDEFAULT;
203 }
204 return super.eIsSet(featureID);
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 @Override
213 public String toString() {
214 if (eIsProxy())
215 return super.toString();
216
217 StringBuilder result = new StringBuilder(super.toString());
218 result.append(" (band: ");
219 result.append(band);
220 result.append(", gain: ");
221 result.append(gain);
222 result.append(')');
223 return result.toString();
224 }
225
226} //CommSubsystemImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommunicatingElementImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommunicatingElementImpl.java
new file mode 100644
index 00000000..1f79da3b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommunicatingElementImpl.java
@@ -0,0 +1,237 @@
1/**
2 */
3package satellite.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import satellite.CommSubsystem;
22import satellite.CommunicatingElement;
23import satellite.DirectedCommunicationLink;
24import satellite.SatellitePackage;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Communicating Element</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link satellite.impl.CommunicatingElementImpl#getCommSubsystem <em>Comm Subsystem</em>}</li>
35 * <li>{@link satellite.impl.CommunicatingElementImpl#getCommunicationLink <em>Communication Link</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public abstract class CommunicatingElementImpl extends MinimalEObjectImpl.Container implements CommunicatingElement {
41 /**
42 * The cached value of the '{@link #getCommSubsystem() <em>Comm Subsystem</em>}' containment reference list.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getCommSubsystem()
46 * @generated
47 * @ordered
48 */
49 protected EList<CommSubsystem> commSubsystem;
50
51 /**
52 * The cached value of the '{@link #getCommunicationLink() <em>Communication Link</em>}' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getCommunicationLink()
56 * @generated
57 * @ordered
58 */
59 protected DirectedCommunicationLink communicationLink;
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 protected CommunicatingElementImpl() {
67 super();
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 @Override
76 protected EClass eStaticClass() {
77 return SatellitePackage.Literals.COMMUNICATING_ELEMENT;
78 }
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 @Override
86 public EList<CommSubsystem> getCommSubsystem() {
87 if (commSubsystem == null) {
88 commSubsystem = new EObjectContainmentEList<CommSubsystem>(CommSubsystem.class, this,
89 SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM);
90 }
91 return commSubsystem;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 public DirectedCommunicationLink getCommunicationLink() {
101 return communicationLink;
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 public NotificationChain basicSetCommunicationLink(DirectedCommunicationLink newCommunicationLink,
110 NotificationChain msgs) {
111 DirectedCommunicationLink oldCommunicationLink = communicationLink;
112 communicationLink = newCommunicationLink;
113 if (eNotificationRequired()) {
114 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
115 SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK, oldCommunicationLink,
116 newCommunicationLink);
117 if (msgs == null)
118 msgs = notification;
119 else
120 msgs.add(notification);
121 }
122 return msgs;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void setCommunicationLink(DirectedCommunicationLink newCommunicationLink) {
132 if (newCommunicationLink != communicationLink) {
133 NotificationChain msgs = null;
134 if (communicationLink != null)
135 msgs = ((InternalEObject) communicationLink).eInverseRemove(this,
136 EOPPOSITE_FEATURE_BASE - SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK, null,
137 msgs);
138 if (newCommunicationLink != null)
139 msgs = ((InternalEObject) newCommunicationLink).eInverseAdd(this,
140 EOPPOSITE_FEATURE_BASE - SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK, null,
141 msgs);
142 msgs = basicSetCommunicationLink(newCommunicationLink, msgs);
143 if (msgs != null)
144 msgs.dispatch();
145 } else if (eNotificationRequired())
146 eNotify(new ENotificationImpl(this, Notification.SET,
147 SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK, newCommunicationLink,
148 newCommunicationLink));
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
158 switch (featureID) {
159 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
160 return ((InternalEList<?>) getCommSubsystem()).basicRemove(otherEnd, msgs);
161 case SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK:
162 return basicSetCommunicationLink(null, msgs);
163 }
164 return super.eInverseRemove(otherEnd, featureID, msgs);
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 @Override
173 public Object eGet(int featureID, boolean resolve, boolean coreType) {
174 switch (featureID) {
175 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
176 return getCommSubsystem();
177 case SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK:
178 return getCommunicationLink();
179 }
180 return super.eGet(featureID, resolve, coreType);
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 @SuppressWarnings("unchecked")
189 @Override
190 public void eSet(int featureID, Object newValue) {
191 switch (featureID) {
192 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
193 getCommSubsystem().clear();
194 getCommSubsystem().addAll((Collection<? extends CommSubsystem>) newValue);
195 return;
196 case SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK:
197 setCommunicationLink((DirectedCommunicationLink) newValue);
198 return;
199 }
200 super.eSet(featureID, newValue);
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 @Override
209 public void eUnset(int featureID) {
210 switch (featureID) {
211 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
212 getCommSubsystem().clear();
213 return;
214 case SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK:
215 setCommunicationLink((DirectedCommunicationLink) null);
216 return;
217 }
218 super.eUnset(featureID);
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public boolean eIsSet(int featureID) {
228 switch (featureID) {
229 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
230 return commSubsystem != null && !commSubsystem.isEmpty();
231 case SatellitePackage.COMMUNICATING_ELEMENT__COMMUNICATION_LINK:
232 return communicationLink != null;
233 }
234 return super.eIsSet(featureID);
235 }
236
237} //CommunicatingElementImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/ConstellationMissionImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/ConstellationMissionImpl.java
new file mode 100644
index 00000000..7635d7cd
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/ConstellationMissionImpl.java
@@ -0,0 +1,237 @@
1/**
2 */
3package satellite.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import satellite.ConstellationMission;
22import satellite.GroundStationNetwork;
23import satellite.SatellitePackage;
24import satellite.Spacecraft;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Constellation Mission</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link satellite.impl.ConstellationMissionImpl#getGroundStationNetwork <em>Ground Station Network</em>}</li>
35 * <li>{@link satellite.impl.ConstellationMissionImpl#getSpacecraft <em>Spacecraft</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public abstract class ConstellationMissionImpl extends MinimalEObjectImpl.Container implements ConstellationMission {
41 /**
42 * The cached value of the '{@link #getGroundStationNetwork() <em>Ground Station Network</em>}' containment reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getGroundStationNetwork()
46 * @generated
47 * @ordered
48 */
49 protected GroundStationNetwork groundStationNetwork;
50
51 /**
52 * The cached value of the '{@link #getSpacecraft() <em>Spacecraft</em>}' containment reference list.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getSpacecraft()
56 * @generated
57 * @ordered
58 */
59 protected EList<Spacecraft> spacecraft;
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 protected ConstellationMissionImpl() {
67 super();
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 @Override
76 protected EClass eStaticClass() {
77 return SatellitePackage.Literals.CONSTELLATION_MISSION;
78 }
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 @Override
86 public GroundStationNetwork getGroundStationNetwork() {
87 return groundStationNetwork;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public NotificationChain basicSetGroundStationNetwork(GroundStationNetwork newGroundStationNetwork,
96 NotificationChain msgs) {
97 GroundStationNetwork oldGroundStationNetwork = groundStationNetwork;
98 groundStationNetwork = newGroundStationNetwork;
99 if (eNotificationRequired()) {
100 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
101 SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, oldGroundStationNetwork,
102 newGroundStationNetwork);
103 if (msgs == null)
104 msgs = notification;
105 else
106 msgs.add(notification);
107 }
108 return msgs;
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public void setGroundStationNetwork(GroundStationNetwork newGroundStationNetwork) {
118 if (newGroundStationNetwork != groundStationNetwork) {
119 NotificationChain msgs = null;
120 if (groundStationNetwork != null)
121 msgs = ((InternalEObject) groundStationNetwork).eInverseRemove(this,
122 EOPPOSITE_FEATURE_BASE - SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, null,
123 msgs);
124 if (newGroundStationNetwork != null)
125 msgs = ((InternalEObject) newGroundStationNetwork).eInverseAdd(this,
126 EOPPOSITE_FEATURE_BASE - SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, null,
127 msgs);
128 msgs = basicSetGroundStationNetwork(newGroundStationNetwork, msgs);
129 if (msgs != null)
130 msgs.dispatch();
131 } else if (eNotificationRequired())
132 eNotify(new ENotificationImpl(this, Notification.SET,
133 SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, newGroundStationNetwork,
134 newGroundStationNetwork));
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 @Override
143 public EList<Spacecraft> getSpacecraft() {
144 if (spacecraft == null) {
145 spacecraft = new EObjectContainmentEList<Spacecraft>(Spacecraft.class, this,
146 SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT);
147 }
148 return spacecraft;
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
158 switch (featureID) {
159 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
160 return basicSetGroundStationNetwork(null, msgs);
161 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
162 return ((InternalEList<?>) getSpacecraft()).basicRemove(otherEnd, msgs);
163 }
164 return super.eInverseRemove(otherEnd, featureID, msgs);
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 @Override
173 public Object eGet(int featureID, boolean resolve, boolean coreType) {
174 switch (featureID) {
175 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
176 return getGroundStationNetwork();
177 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
178 return getSpacecraft();
179 }
180 return super.eGet(featureID, resolve, coreType);
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 @SuppressWarnings("unchecked")
189 @Override
190 public void eSet(int featureID, Object newValue) {
191 switch (featureID) {
192 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
193 setGroundStationNetwork((GroundStationNetwork) newValue);
194 return;
195 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
196 getSpacecraft().clear();
197 getSpacecraft().addAll((Collection<? extends Spacecraft>) newValue);
198 return;
199 }
200 super.eSet(featureID, newValue);
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 @Override
209 public void eUnset(int featureID) {
210 switch (featureID) {
211 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
212 setGroundStationNetwork((GroundStationNetwork) null);
213 return;
214 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
215 getSpacecraft().clear();
216 return;
217 }
218 super.eUnset(featureID);
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public boolean eIsSet(int featureID) {
228 switch (featureID) {
229 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
230 return groundStationNetwork != null;
231 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
232 return spacecraft != null && !spacecraft.isEmpty();
233 }
234 return super.eIsSet(featureID);
235 }
236
237} //ConstellationMissionImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat3UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat3UImpl.java
new file mode 100644
index 00000000..a7ba37a7
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat3UImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.CubeSat3U;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat3 U</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CubeSat3UImpl extends SpacecraftImpl implements CubeSat3U {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSat3UImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT3_U;
35 }
36
37} //CubeSat3UImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java
new file mode 100644
index 00000000..d4f42e6c
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.CubeSat6U;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat6 U</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CubeSat6UImpl extends SpacecraftImpl implements CubeSat6U {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSat6UImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT6_U;
35 }
36
37} //CubeSat6UImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java
new file mode 100644
index 00000000..2df1328f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java
@@ -0,0 +1,227 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.InternalEObject;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
12
13import satellite.CommSubsystem;
14import satellite.DirectedCommunicationLink;
15import satellite.SatellitePackage;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Directed Communication Link</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link satellite.impl.DirectedCommunicationLinkImpl#getSource <em>Source</em>}</li>
26 * <li>{@link satellite.impl.DirectedCommunicationLinkImpl#getTarget <em>Target</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public class DirectedCommunicationLinkImpl extends MinimalEObjectImpl.Container implements DirectedCommunicationLink {
32 /**
33 * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getSource()
37 * @generated
38 * @ordered
39 */
40 protected CommSubsystem source;
41
42 /**
43 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getTarget()
47 * @generated
48 * @ordered
49 */
50 protected CommSubsystem target;
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 protected DirectedCommunicationLinkImpl() {
58 super();
59 }
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 @Override
67 protected EClass eStaticClass() {
68 return SatellitePackage.Literals.DIRECTED_COMMUNICATION_LINK;
69 }
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 @Override
77 public CommSubsystem getSource() {
78 if (source != null && source.eIsProxy()) {
79 InternalEObject oldSource = (InternalEObject) source;
80 source = (CommSubsystem) eResolveProxy(oldSource);
81 if (source != oldSource) {
82 if (eNotificationRequired())
83 eNotify(new ENotificationImpl(this, Notification.RESOLVE,
84 SatellitePackage.DIRECTED_COMMUNICATION_LINK__SOURCE, oldSource, source));
85 }
86 }
87 return source;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public CommSubsystem basicGetSource() {
96 return source;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public void setSource(CommSubsystem newSource) {
106 CommSubsystem oldSource = source;
107 source = newSource;
108 if (eNotificationRequired())
109 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.DIRECTED_COMMUNICATION_LINK__SOURCE,
110 oldSource, source));
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 @Override
119 public CommSubsystem getTarget() {
120 if (target != null && target.eIsProxy()) {
121 InternalEObject oldTarget = (InternalEObject) target;
122 target = (CommSubsystem) eResolveProxy(oldTarget);
123 if (target != oldTarget) {
124 if (eNotificationRequired())
125 eNotify(new ENotificationImpl(this, Notification.RESOLVE,
126 SatellitePackage.DIRECTED_COMMUNICATION_LINK__TARGET, oldTarget, target));
127 }
128 }
129 return target;
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 public CommSubsystem basicGetTarget() {
138 return target;
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public void setTarget(CommSubsystem newTarget) {
148 CommSubsystem oldTarget = target;
149 target = newTarget;
150 if (eNotificationRequired())
151 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.DIRECTED_COMMUNICATION_LINK__TARGET,
152 oldTarget, target));
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public Object eGet(int featureID, boolean resolve, boolean coreType) {
162 switch (featureID) {
163 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__SOURCE:
164 if (resolve)
165 return getSource();
166 return basicGetSource();
167 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__TARGET:
168 if (resolve)
169 return getTarget();
170 return basicGetTarget();
171 }
172 return super.eGet(featureID, resolve, coreType);
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public void eSet(int featureID, Object newValue) {
182 switch (featureID) {
183 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__SOURCE:
184 setSource((CommSubsystem) newValue);
185 return;
186 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__TARGET:
187 setTarget((CommSubsystem) newValue);
188 return;
189 }
190 super.eSet(featureID, newValue);
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 @Override
199 public void eUnset(int featureID) {
200 switch (featureID) {
201 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__SOURCE:
202 setSource((CommSubsystem) null);
203 return;
204 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__TARGET:
205 setTarget((CommSubsystem) null);
206 return;
207 }
208 super.eUnset(featureID);
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public boolean eIsSet(int featureID) {
218 switch (featureID) {
219 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__SOURCE:
220 return source != null;
221 case SatellitePackage.DIRECTED_COMMUNICATION_LINK__TARGET:
222 return target != null;
223 }
224 return super.eIsSet(featureID);
225 }
226
227} //DirectedCommunicationLinkImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/GroundStationNetworkImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/GroundStationNetworkImpl.java
new file mode 100644
index 00000000..244b9568
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/GroundStationNetworkImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.GroundStationNetwork;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Ground Station Network</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class GroundStationNetworkImpl extends CommunicatingElementImpl implements GroundStationNetwork {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected GroundStationNetworkImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.GROUND_STATION_NETWORK;
35 }
36
37} //GroundStationNetworkImpl
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
new file mode 100644
index 00000000..3401ad51
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java
@@ -0,0 +1,166 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import satellite.InterferometryMission;
12import satellite.SatellitePackage;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Interferometry Mission</b></em>'.
17 * <!-- 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 *
25 * @generated
26 */
27public class InterferometryMissionImpl extends ConstellationMissionImpl implements InterferometryMission {
28 /**
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 -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected InterferometryMissionImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return SatellitePackage.Literals.INTERFEROMETRY_MISSION;
65 }
66
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
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryPayloadImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryPayloadImpl.java
new file mode 100644
index 00000000..c8f9e816
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryPayloadImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.InterferometryPayload;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Interferometry Payload</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class InterferometryPayloadImpl extends PayloadImpl implements InterferometryPayload {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected InterferometryPayloadImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.INTERFEROMETRY_PAYLOAD;
35 }
36
37} //InterferometryPayloadImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/PayloadImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/PayloadImpl.java
new file mode 100644
index 00000000..6ee96353
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/PayloadImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9import satellite.Payload;
10import satellite.SatellitePackage;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Payload</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class PayloadImpl extends MinimalEObjectImpl.Container implements Payload {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected PayloadImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return SatellitePackage.Literals.PAYLOAD;
37 }
38
39} //PayloadImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatelliteFactoryImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatelliteFactoryImpl.java
new file mode 100644
index 00000000..e899dc79
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatelliteFactoryImpl.java
@@ -0,0 +1,294 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6import org.eclipse.emf.ecore.EDataType;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.impl.EFactoryImpl;
11
12import org.eclipse.emf.ecore.plugin.EcorePlugin;
13
14import satellite.*;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model <b>Factory</b>.
19 * <!-- end-user-doc -->
20 * @generated
21 */
22public class SatelliteFactoryImpl extends EFactoryImpl implements SatelliteFactory {
23 /**
24 * Creates the default factory implementation.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 public static SatelliteFactory init() {
30 try {
31 SatelliteFactory theSatelliteFactory = (SatelliteFactory) EPackage.Registry.INSTANCE
32 .getEFactory(SatellitePackage.eNS_URI);
33 if (theSatelliteFactory != null) {
34 return theSatelliteFactory;
35 }
36 } catch (Exception exception) {
37 EcorePlugin.INSTANCE.log(exception);
38 }
39 return new SatelliteFactoryImpl();
40 }
41
42 /**
43 * Creates an instance of the factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 public SatelliteFactoryImpl() {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 public EObject create(EClass eClass) {
59 switch (eClass.getClassifierID()) {
60 case SatellitePackage.INTERFEROMETRY_MISSION:
61 return createInterferometryMission();
62 case SatellitePackage.GROUND_STATION_NETWORK:
63 return createGroundStationNetwork();
64 case SatellitePackage.COMM_SUBSYSTEM:
65 return createCommSubsystem();
66 case SatellitePackage.DIRECTED_COMMUNICATION_LINK:
67 return createDirectedCommunicationLink();
68 case SatellitePackage.INTERFEROMETRY_PAYLOAD:
69 return createInterferometryPayload();
70 case SatellitePackage.CUBE_SAT3_U:
71 return createCubeSat3U();
72 case SatellitePackage.CUBE_SAT6_U:
73 return createCubeSat6U();
74 case SatellitePackage.SMALL_SAT:
75 return createSmallSat();
76 default:
77 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
78 }
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 @Override
87 public Object createFromString(EDataType eDataType, String initialValue) {
88 switch (eDataType.getClassifierID()) {
89 case SatellitePackage.TRANSCEIVER_BAND:
90 return createTransceiverBandFromString(eDataType, initialValue);
91 case SatellitePackage.ANTENNA_GAIN:
92 return createAntennaGainFromString(eDataType, initialValue);
93 case SatellitePackage.SPACECRAFT_KIND:
94 return createSpacecraftKindFromString(eDataType, initialValue);
95 default:
96 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
97 }
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 @Override
106 public String convertToString(EDataType eDataType, Object instanceValue) {
107 switch (eDataType.getClassifierID()) {
108 case SatellitePackage.TRANSCEIVER_BAND:
109 return convertTransceiverBandToString(eDataType, instanceValue);
110 case SatellitePackage.ANTENNA_GAIN:
111 return convertAntennaGainToString(eDataType, instanceValue);
112 case SatellitePackage.SPACECRAFT_KIND:
113 return convertSpacecraftKindToString(eDataType, instanceValue);
114 default:
115 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
116 }
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public InterferometryMission createInterferometryMission() {
126 InterferometryMissionImpl interferometryMission = new InterferometryMissionImpl();
127 return interferometryMission;
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public GroundStationNetwork createGroundStationNetwork() {
137 GroundStationNetworkImpl groundStationNetwork = new GroundStationNetworkImpl();
138 return groundStationNetwork;
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public CommSubsystem createCommSubsystem() {
148 CommSubsystemImpl commSubsystem = new CommSubsystemImpl();
149 return commSubsystem;
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 @Override
158 public DirectedCommunicationLink createDirectedCommunicationLink() {
159 DirectedCommunicationLinkImpl directedCommunicationLink = new DirectedCommunicationLinkImpl();
160 return directedCommunicationLink;
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @Override
169 public InterferometryPayload createInterferometryPayload() {
170 InterferometryPayloadImpl interferometryPayload = new InterferometryPayloadImpl();
171 return interferometryPayload;
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @Override
180 public CubeSat3U createCubeSat3U() {
181 CubeSat3UImpl cubeSat3U = new CubeSat3UImpl();
182 return cubeSat3U;
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public CubeSat6U createCubeSat6U() {
192 CubeSat6UImpl cubeSat6U = new CubeSat6UImpl();
193 return cubeSat6U;
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 @Override
202 public SmallSat createSmallSat() {
203 SmallSatImpl smallSat = new SmallSatImpl();
204 return smallSat;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) {
213 TransceiverBand result = TransceiverBand.get(initialValue);
214 if (result == null)
215 throw new IllegalArgumentException(
216 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
217 return result;
218 }
219
220 /**
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @generated
224 */
225 public String convertTransceiverBandToString(EDataType eDataType, Object instanceValue) {
226 return instanceValue == null ? null : instanceValue.toString();
227 }
228
229 /**
230 * <!-- begin-user-doc -->
231 * <!-- end-user-doc -->
232 * @generated
233 */
234 public AntennaGain createAntennaGainFromString(EDataType eDataType, String initialValue) {
235 AntennaGain result = AntennaGain.get(initialValue);
236 if (result == null)
237 throw new IllegalArgumentException(
238 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
239 return result;
240 }
241
242 /**
243 * <!-- begin-user-doc -->
244 * <!-- end-user-doc -->
245 * @generated
246 */
247 public String convertAntennaGainToString(EDataType eDataType, Object instanceValue) {
248 return instanceValue == null ? null : instanceValue.toString();
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 public SpacecraftKind createSpacecraftKindFromString(EDataType eDataType, String initialValue) {
257 SpacecraftKind result = SpacecraftKind.get(initialValue);
258 if (result == null)
259 throw new IllegalArgumentException(
260 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
261 return result;
262 }
263
264 /**
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 */
269 public String convertSpacecraftKindToString(EDataType eDataType, Object instanceValue) {
270 return instanceValue == null ? null : instanceValue.toString();
271 }
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 @Override
279 public SatellitePackage getSatellitePackage() {
280 return (SatellitePackage) getEPackage();
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @deprecated
287 * @generated
288 */
289 @Deprecated
290 public static SatellitePackage getPackage() {
291 return SatellitePackage.eINSTANCE;
292 }
293
294} //SatelliteFactoryImpl
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
new file mode 100644
index 00000000..2347fe07
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
@@ -0,0 +1,690 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11import org.eclipse.emf.ecore.impl.EPackageImpl;
12
13import satellite.AntennaGain;
14import satellite.CommSubsystem;
15import satellite.CommunicatingElement;
16import satellite.ConstellationMission;
17import satellite.CubeSat3U;
18import satellite.CubeSat6U;
19import satellite.DirectedCommunicationLink;
20import satellite.GroundStationNetwork;
21import satellite.InterferometryMission;
22import satellite.InterferometryPayload;
23import satellite.Payload;
24import satellite.SatelliteFactory;
25import satellite.SatellitePackage;
26import satellite.SmallSat;
27import satellite.Spacecraft;
28import satellite.SpacecraftKind;
29import satellite.TransceiverBand;
30
31/**
32 * <!-- begin-user-doc -->
33 * An implementation of the model <b>Package</b>.
34 * <!-- end-user-doc -->
35 * @generated
36 */
37public class SatellitePackageImpl extends EPackageImpl implements SatellitePackage {
38 /**
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @generated
42 */
43 private EClass constellationMissionEClass = null;
44
45 /**
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 private EClass interferometryMissionEClass = null;
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 private EClass communicatingElementEClass = null;
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 private EClass groundStationNetworkEClass = null;
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 private EClass spacecraftEClass = null;
72
73 /**
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @generated
77 */
78 private EClass commSubsystemEClass = null;
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 private EClass directedCommunicationLinkEClass = null;
86
87 /**
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 */
92 private EClass payloadEClass = null;
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 private EClass interferometryPayloadEClass = null;
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 private EClass cubeSat3UEClass = null;
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 private EClass cubeSat6UEClass = null;
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 private EClass smallSatEClass = null;
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 private EEnum transceiverBandEEnum = null;
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 private EEnum antennaGainEEnum = null;
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 private EEnum spacecraftKindEEnum = null;
142
143 /**
144 * Creates an instance of the model <b>Package</b>, registered with
145 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
146 * package URI value.
147 * <p>Note: the correct way to create the package is via the static
148 * factory method {@link #init init()}, which also performs
149 * initialization of the package, or returns the registered package,
150 * if one already exists.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @see org.eclipse.emf.ecore.EPackage.Registry
154 * @see satellite.SatellitePackage#eNS_URI
155 * @see #init()
156 * @generated
157 */
158 private SatellitePackageImpl() {
159 super(eNS_URI, SatelliteFactory.eINSTANCE);
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 private static boolean isInited = false;
168
169 /**
170 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
171 *
172 * <p>This method is used to initialize {@link SatellitePackage#eINSTANCE} when that field is accessed.
173 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @see #eNS_URI
177 * @see #createPackageContents()
178 * @see #initializePackageContents()
179 * @generated
180 */
181 public static SatellitePackage init() {
182 if (isInited)
183 return (SatellitePackage) EPackage.Registry.INSTANCE.getEPackage(SatellitePackage.eNS_URI);
184
185 // Obtain or create and register package
186 Object registeredSatellitePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
187 SatellitePackageImpl theSatellitePackage = registeredSatellitePackage instanceof SatellitePackageImpl
188 ? (SatellitePackageImpl) registeredSatellitePackage
189 : new SatellitePackageImpl();
190
191 isInited = true;
192
193 // Create package meta-data objects
194 theSatellitePackage.createPackageContents();
195
196 // Initialize created meta-data
197 theSatellitePackage.initializePackageContents();
198
199 // Mark meta-data to indicate it can't be changed
200 theSatellitePackage.freeze();
201
202 // Update the registry and return the package
203 EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, theSatellitePackage);
204 return theSatellitePackage;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 @Override
213 public EClass getConstellationMission() {
214 return constellationMissionEClass;
215 }
216
217 /**
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 @Override
223 public EReference getConstellationMission_GroundStationNetwork() {
224 return (EReference) constellationMissionEClass.getEStructuralFeatures().get(0);
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public EReference getConstellationMission_Spacecraft() {
234 return (EReference) constellationMissionEClass.getEStructuralFeatures().get(1);
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public EClass getInterferometryMission() {
244 return interferometryMissionEClass;
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public EAttribute getInterferometryMission_ObservationTime() {
254 return (EAttribute) interferometryMissionEClass.getEStructuralFeatures().get(0);
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @generated
261 */
262 @Override
263 public EClass getCommunicatingElement() {
264 return communicatingElementEClass;
265 }
266
267 /**
268 * <!-- begin-user-doc -->
269 * <!-- end-user-doc -->
270 * @generated
271 */
272 @Override
273 public EReference getCommunicatingElement_CommSubsystem() {
274 return (EReference) communicatingElementEClass.getEStructuralFeatures().get(0);
275 }
276
277 /**
278 * <!-- begin-user-doc -->
279 * <!-- end-user-doc -->
280 * @generated
281 */
282 @Override
283 public EReference getCommunicatingElement_CommunicationLink() {
284 return (EReference) communicatingElementEClass.getEStructuralFeatures().get(1);
285 }
286
287 /**
288 * <!-- begin-user-doc -->
289 * <!-- end-user-doc -->
290 * @generated
291 */
292 @Override
293 public EClass getGroundStationNetwork() {
294 return groundStationNetworkEClass;
295 }
296
297 /**
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 */
302 @Override
303 public EClass getSpacecraft() {
304 return spacecraftEClass;
305 }
306
307 /**
308 * <!-- begin-user-doc -->
309 * <!-- end-user-doc -->
310 * @generated
311 */
312 @Override
313 public EReference getSpacecraft_Payload() {
314 return (EReference) spacecraftEClass.getEStructuralFeatures().get(0);
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 @Override
323 public EAttribute getSpacecraft_Kind() {
324 return (EAttribute) spacecraftEClass.getEStructuralFeatures().get(1);
325 }
326
327 /**
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @generated
331 */
332 @Override
333 public EClass getCommSubsystem() {
334 return commSubsystemEClass;
335 }
336
337 /**
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 */
342 @Override
343 public EAttribute getCommSubsystem_Band() {
344 return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(0);
345 }
346
347 /**
348 * <!-- begin-user-doc -->
349 * <!-- end-user-doc -->
350 * @generated
351 */
352 @Override
353 public EAttribute getCommSubsystem_Gain() {
354 return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(1);
355 }
356
357 /**
358 * <!-- begin-user-doc -->
359 * <!-- end-user-doc -->
360 * @generated
361 */
362 @Override
363 public EClass getDirectedCommunicationLink() {
364 return directedCommunicationLinkEClass;
365 }
366
367 /**
368 * <!-- begin-user-doc -->
369 * <!-- end-user-doc -->
370 * @generated
371 */
372 @Override
373 public EReference getDirectedCommunicationLink_Source() {
374 return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(0);
375 }
376
377 /**
378 * <!-- begin-user-doc -->
379 * <!-- end-user-doc -->
380 * @generated
381 */
382 @Override
383 public EReference getDirectedCommunicationLink_Target() {
384 return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(1);
385 }
386
387 /**
388 * <!-- begin-user-doc -->
389 * <!-- end-user-doc -->
390 * @generated
391 */
392 @Override
393 public EClass getPayload() {
394 return payloadEClass;
395 }
396
397 /**
398 * <!-- begin-user-doc -->
399 * <!-- end-user-doc -->
400 * @generated
401 */
402 @Override
403 public EClass getInterferometryPayload() {
404 return interferometryPayloadEClass;
405 }
406
407 /**
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @generated
411 */
412 @Override
413 public EClass getCubeSat3U() {
414 return cubeSat3UEClass;
415 }
416
417 /**
418 * <!-- begin-user-doc -->
419 * <!-- end-user-doc -->
420 * @generated
421 */
422 @Override
423 public EClass getCubeSat6U() {
424 return cubeSat6UEClass;
425 }
426
427 /**
428 * <!-- begin-user-doc -->
429 * <!-- end-user-doc -->
430 * @generated
431 */
432 @Override
433 public EClass getSmallSat() {
434 return smallSatEClass;
435 }
436
437 /**
438 * <!-- begin-user-doc -->
439 * <!-- end-user-doc -->
440 * @generated
441 */
442 @Override
443 public EEnum getTransceiverBand() {
444 return transceiverBandEEnum;
445 }
446
447 /**
448 * <!-- begin-user-doc -->
449 * <!-- end-user-doc -->
450 * @generated
451 */
452 @Override
453 public EEnum getAntennaGain() {
454 return antennaGainEEnum;
455 }
456
457 /**
458 * <!-- begin-user-doc -->
459 * <!-- end-user-doc -->
460 * @generated
461 */
462 @Override
463 public EEnum getSpacecraftKind() {
464 return spacecraftKindEEnum;
465 }
466
467 /**
468 * <!-- begin-user-doc -->
469 * <!-- end-user-doc -->
470 * @generated
471 */
472 @Override
473 public SatelliteFactory getSatelliteFactory() {
474 return (SatelliteFactory) getEFactoryInstance();
475 }
476
477 /**
478 * <!-- begin-user-doc -->
479 * <!-- end-user-doc -->
480 * @generated
481 */
482 private boolean isCreated = false;
483
484 /**
485 * Creates the meta-model objects for the package. This method is
486 * guarded to have no affect on any invocation but its first.
487 * <!-- begin-user-doc -->
488 * <!-- end-user-doc -->
489 * @generated
490 */
491 public void createPackageContents() {
492 if (isCreated)
493 return;
494 isCreated = true;
495
496 // Create classes and their features
497 constellationMissionEClass = createEClass(CONSTELLATION_MISSION);
498 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__GROUND_STATION_NETWORK);
499 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT);
500
501 interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION);
502 createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME);
503
504 communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT);
505 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM);
506 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMMUNICATION_LINK);
507
508 groundStationNetworkEClass = createEClass(GROUND_STATION_NETWORK);
509
510 spacecraftEClass = createEClass(SPACECRAFT);
511 createEReference(spacecraftEClass, SPACECRAFT__PAYLOAD);
512 createEAttribute(spacecraftEClass, SPACECRAFT__KIND);
513
514 commSubsystemEClass = createEClass(COMM_SUBSYSTEM);
515 createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__BAND);
516 createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__GAIN);
517
518 directedCommunicationLinkEClass = createEClass(DIRECTED_COMMUNICATION_LINK);
519 createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__SOURCE);
520 createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__TARGET);
521
522 payloadEClass = createEClass(PAYLOAD);
523
524 interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD);
525
526 cubeSat3UEClass = createEClass(CUBE_SAT3_U);
527
528 cubeSat6UEClass = createEClass(CUBE_SAT6_U);
529
530 smallSatEClass = createEClass(SMALL_SAT);
531
532 // Create enums
533 transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND);
534 antennaGainEEnum = createEEnum(ANTENNA_GAIN);
535 spacecraftKindEEnum = createEEnum(SPACECRAFT_KIND);
536 }
537
538 /**
539 * <!-- begin-user-doc -->
540 * <!-- end-user-doc -->
541 * @generated
542 */
543 private boolean isInitialized = false;
544
545 /**
546 * Complete the initialization of the package and its meta-model. This
547 * method is guarded to have no affect on any invocation but its first.
548 * <!-- begin-user-doc -->
549 * <!-- end-user-doc -->
550 * @generated
551 */
552 public void initializePackageContents() {
553 if (isInitialized)
554 return;
555 isInitialized = true;
556
557 // Initialize package
558 setName(eNAME);
559 setNsPrefix(eNS_PREFIX);
560 setNsURI(eNS_URI);
561
562 // Create type parameters
563
564 // Set bounds for type parameters
565
566 // Add supertypes to classes
567 interferometryMissionEClass.getESuperTypes().add(this.getConstellationMission());
568 groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement());
569 spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement());
570 interferometryPayloadEClass.getESuperTypes().add(this.getPayload());
571 cubeSat3UEClass.getESuperTypes().add(this.getSpacecraft());
572 cubeSat6UEClass.getESuperTypes().add(this.getSpacecraft());
573 smallSatEClass.getESuperTypes().add(this.getSpacecraft());
574
575 // Initialize classes, features, and operations; add parameters
576 initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT,
577 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
578 initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null,
579 "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE,
580 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
581 initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, 50,
582 ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
583 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
584
585 initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT,
586 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
587 initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEFloat(), "observationTime", "2.0",
588 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
589 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
590
591 initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT,
592 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
593 initEReference(getCommunicatingElement_CommSubsystem(), this.getCommSubsystem(), null, "commSubsystem", null, 1,
594 2, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
595 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
596 initEReference(getCommunicatingElement_CommunicationLink(), this.getDirectedCommunicationLink(), null,
597 "communicationLink", null, 0, 1, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
598 IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
599
600 initEClass(groundStationNetworkEClass, GroundStationNetwork.class, "GroundStationNetwork", !IS_ABSTRACT,
601 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
602
603 initEClass(spacecraftEClass, Spacecraft.class, "Spacecraft", IS_ABSTRACT, !IS_INTERFACE,
604 IS_GENERATED_INSTANCE_CLASS);
605 initEReference(getSpacecraft_Payload(), this.getPayload(), null, "payload", null, 0, 1, Spacecraft.class,
606 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
607 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
608 initEAttribute(getSpacecraft_Kind(), this.getSpacecraftKind(), "kind", null, 1, 1, Spacecraft.class,
609 IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
610
611 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE,
612 IS_GENERATED_INSTANCE_CLASS);
613 initEAttribute(getCommSubsystem_Band(), this.getTransceiverBand(), "band", null, 1, 1, CommSubsystem.class,
614 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
615 initEAttribute(getCommSubsystem_Gain(), this.getAntennaGain(), "gain", null, 1, 1, CommSubsystem.class,
616 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
617
618 initEClass(directedCommunicationLinkEClass, DirectedCommunicationLink.class, "DirectedCommunicationLink",
619 !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
620 initEReference(getDirectedCommunicationLink_Source(), this.getCommSubsystem(), null, "source", null, 1, 1,
621 DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
622 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
623 initEReference(getDirectedCommunicationLink_Target(), this.getCommSubsystem(), null, "target", null, 1, 1,
624 DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
625 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
626
627 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
628
629 initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT,
630 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
631
632 initEClass(cubeSat3UEClass, CubeSat3U.class, "CubeSat3U", !IS_ABSTRACT, !IS_INTERFACE,
633 IS_GENERATED_INSTANCE_CLASS);
634
635 initEClass(cubeSat6UEClass, CubeSat6U.class, "CubeSat6U", !IS_ABSTRACT, !IS_INTERFACE,
636 IS_GENERATED_INSTANCE_CLASS);
637
638 initEClass(smallSatEClass, SmallSat.class, "SmallSat", !IS_ABSTRACT, !IS_INTERFACE,
639 IS_GENERATED_INSTANCE_CLASS);
640
641 // Initialize enums and add enum literals
642 initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand");
643 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF);
644 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.X);
645 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.KA);
646
647 initEEnum(antennaGainEEnum, AntennaGain.class, "AntennaGain");
648 addEEnumLiteral(antennaGainEEnum, AntennaGain.LOW);
649 addEEnumLiteral(antennaGainEEnum, AntennaGain.MEDIUM);
650 addEEnumLiteral(antennaGainEEnum, AntennaGain.HIGH);
651
652 initEEnum(spacecraftKindEEnum, SpacecraftKind.class, "SpacecraftKind");
653 addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT3_U);
654 addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT6_U);
655 addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.SMALL_SAT);
656
657 // Create resource
658 createResource(eNS_URI);
659
660 // Create annotations
661 // http://www.eclipse.org/emf/2002/Ecore
662 createEcoreAnnotations();
663 // org.eclipse.viatra.query.querybasedfeature
664 createOrgAnnotations();
665 }
666
667 /**
668 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
669 * <!-- begin-user-doc -->
670 * <!-- end-user-doc -->
671 * @generated
672 */
673 protected void createEcoreAnnotations() {
674 String source = "http://www.eclipse.org/emf/2002/Ecore";
675 addAnnotation(this, source, new String[] { "settingDelegates", "org.eclipse.viatra.query.querybasedfeature" });
676 }
677
678 /**
679 * Initializes the annotations for <b>org.eclipse.viatra.query.querybasedfeature</b>.
680 * <!-- begin-user-doc -->
681 * <!-- end-user-doc -->
682 * @generated
683 */
684 protected void createOrgAnnotations() {
685 String source = "org.eclipse.viatra.query.querybasedfeature";
686 addAnnotation(getSpacecraft_Kind(), source,
687 new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind" });
688 }
689
690} //SatellitePackageImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java
new file mode 100644
index 00000000..1785dbf3
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.SatellitePackage;
8import satellite.SmallSat;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Small Sat</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class SmallSatImpl extends SpacecraftImpl implements SmallSat {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected SmallSatImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.SMALL_SAT;
35 }
36
37} //SmallSatImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java
new file mode 100644
index 00000000..73609fbd
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java
@@ -0,0 +1,212 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6import org.eclipse.emf.common.notify.NotificationChain;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.EStructuralFeature;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import satellite.Payload;
15import satellite.SatellitePackage;
16import satellite.Spacecraft;
17import satellite.SpacecraftKind;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Spacecraft</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link satellite.impl.SpacecraftImpl#getPayload <em>Payload</em>}</li>
28 * <li>{@link satellite.impl.SpacecraftImpl#getKind <em>Kind</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public abstract class SpacecraftImpl extends CommunicatingElementImpl implements Spacecraft {
34 /**
35 * The cached value of the '{@link #getPayload() <em>Payload</em>}' containment reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @see #getPayload()
39 * @generated
40 * @ordered
41 */
42 protected Payload payload;
43
44 /**
45 * The cached setting delegate for the '{@link #getKind() <em>Kind</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getKind()
49 * @generated
50 * @ordered
51 */
52 protected EStructuralFeature.Internal.SettingDelegate KIND__ESETTING_DELEGATE = ((EStructuralFeature.Internal) SatellitePackage.Literals.SPACECRAFT__KIND)
53 .getSettingDelegate();
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 protected SpacecraftImpl() {
61 super();
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 @Override
70 protected EClass eStaticClass() {
71 return SatellitePackage.Literals.SPACECRAFT;
72 }
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 @Override
80 public Payload getPayload() {
81 return payload;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 public NotificationChain basicSetPayload(Payload newPayload, NotificationChain msgs) {
90 Payload oldPayload = payload;
91 payload = newPayload;
92 if (eNotificationRequired()) {
93 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
94 SatellitePackage.SPACECRAFT__PAYLOAD, oldPayload, newPayload);
95 if (msgs == null)
96 msgs = notification;
97 else
98 msgs.add(notification);
99 }
100 return msgs;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void setPayload(Payload newPayload) {
110 if (newPayload != payload) {
111 NotificationChain msgs = null;
112 if (payload != null)
113 msgs = ((InternalEObject) payload).eInverseRemove(this,
114 EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs);
115 if (newPayload != null)
116 msgs = ((InternalEObject) newPayload).eInverseAdd(this,
117 EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs);
118 msgs = basicSetPayload(newPayload, msgs);
119 if (msgs != null)
120 msgs.dispatch();
121 } else if (eNotificationRequired())
122 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, newPayload,
123 newPayload));
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public SpacecraftKind getKind() {
133 return (SpacecraftKind) KIND__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false);
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 @Override
142 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
143 switch (featureID) {
144 case SatellitePackage.SPACECRAFT__PAYLOAD:
145 return basicSetPayload(null, msgs);
146 }
147 return super.eInverseRemove(otherEnd, featureID, msgs);
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public Object eGet(int featureID, boolean resolve, boolean coreType) {
157 switch (featureID) {
158 case SatellitePackage.SPACECRAFT__PAYLOAD:
159 return getPayload();
160 case SatellitePackage.SPACECRAFT__KIND:
161 return getKind();
162 }
163 return super.eGet(featureID, resolve, coreType);
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public void eSet(int featureID, Object newValue) {
173 switch (featureID) {
174 case SatellitePackage.SPACECRAFT__PAYLOAD:
175 setPayload((Payload) newValue);
176 return;
177 }
178 super.eSet(featureID, newValue);
179 }
180
181 /**
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 */
186 @Override
187 public void eUnset(int featureID) {
188 switch (featureID) {
189 case SatellitePackage.SPACECRAFT__PAYLOAD:
190 setPayload((Payload) null);
191 return;
192 }
193 super.eUnset(featureID);
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 @Override
202 public boolean eIsSet(int featureID) {
203 switch (featureID) {
204 case SatellitePackage.SPACECRAFT__PAYLOAD:
205 return payload != null;
206 case SatellitePackage.SPACECRAFT__KIND:
207 return KIND__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);
208 }
209 return super.eIsSet(featureID);
210 }
211
212} //SpacecraftImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java
new file mode 100644
index 00000000..1ecf7b19
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java
@@ -0,0 +1,328 @@
1/**
2 */
3package satellite.util;
4
5import org.eclipse.emf.common.notify.Adapter;
6import org.eclipse.emf.common.notify.Notifier;
7
8import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
9
10import org.eclipse.emf.ecore.EObject;
11
12import satellite.*;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see satellite.SatellitePackage
20 * @generated
21 */
22public class SatelliteAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static SatellitePackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public SatelliteAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = SatellitePackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject) object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected SatelliteSwitch<Adapter> modelSwitch = new SatelliteSwitch<Adapter>() {
69 @Override
70 public Adapter caseConstellationMission(ConstellationMission object) {
71 return createConstellationMissionAdapter();
72 }
73
74 @Override
75 public Adapter caseInterferometryMission(InterferometryMission object) {
76 return createInterferometryMissionAdapter();
77 }
78
79 @Override
80 public Adapter caseCommunicatingElement(CommunicatingElement object) {
81 return createCommunicatingElementAdapter();
82 }
83
84 @Override
85 public Adapter caseGroundStationNetwork(GroundStationNetwork object) {
86 return createGroundStationNetworkAdapter();
87 }
88
89 @Override
90 public Adapter caseSpacecraft(Spacecraft object) {
91 return createSpacecraftAdapter();
92 }
93
94 @Override
95 public Adapter caseCommSubsystem(CommSubsystem object) {
96 return createCommSubsystemAdapter();
97 }
98
99 @Override
100 public Adapter caseDirectedCommunicationLink(DirectedCommunicationLink object) {
101 return createDirectedCommunicationLinkAdapter();
102 }
103
104 @Override
105 public Adapter casePayload(Payload object) {
106 return createPayloadAdapter();
107 }
108
109 @Override
110 public Adapter caseInterferometryPayload(InterferometryPayload object) {
111 return createInterferometryPayloadAdapter();
112 }
113
114 @Override
115 public Adapter caseCubeSat3U(CubeSat3U object) {
116 return createCubeSat3UAdapter();
117 }
118
119 @Override
120 public Adapter caseCubeSat6U(CubeSat6U object) {
121 return createCubeSat6UAdapter();
122 }
123
124 @Override
125 public Adapter caseSmallSat(SmallSat object) {
126 return createSmallSatAdapter();
127 }
128
129 @Override
130 public Adapter defaultCase(EObject object) {
131 return createEObjectAdapter();
132 }
133 };
134
135 /**
136 * Creates an adapter for the <code>target</code>.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @param target the object to adapt.
140 * @return the adapter for the <code>target</code>.
141 * @generated
142 */
143 @Override
144 public Adapter createAdapter(Notifier target) {
145 return modelSwitch.doSwitch((EObject) target);
146 }
147
148 /**
149 * Creates a new adapter for an object of class '{@link satellite.ConstellationMission <em>Constellation Mission</em>}'.
150 * <!-- begin-user-doc -->
151 * This default implementation returns null so that we can easily ignore cases;
152 * it's useful to ignore a case when inheritance will catch all the cases anyway.
153 * <!-- end-user-doc -->
154 * @return the new adapter.
155 * @see satellite.ConstellationMission
156 * @generated
157 */
158 public Adapter createConstellationMissionAdapter() {
159 return null;
160 }
161
162 /**
163 * Creates a new adapter for an object of class '{@link satellite.InterferometryMission <em>Interferometry Mission</em>}'.
164 * <!-- begin-user-doc -->
165 * This default implementation returns null so that we can easily ignore cases;
166 * it's useful to ignore a case when inheritance will catch all the cases anyway.
167 * <!-- end-user-doc -->
168 * @return the new adapter.
169 * @see satellite.InterferometryMission
170 * @generated
171 */
172 public Adapter createInterferometryMissionAdapter() {
173 return null;
174 }
175
176 /**
177 * Creates a new adapter for an object of class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'.
178 * <!-- begin-user-doc -->
179 * This default implementation returns null so that we can easily ignore cases;
180 * it's useful to ignore a case when inheritance will catch all the cases anyway.
181 * <!-- end-user-doc -->
182 * @return the new adapter.
183 * @see satellite.CommunicatingElement
184 * @generated
185 */
186 public Adapter createCommunicatingElementAdapter() {
187 return null;
188 }
189
190 /**
191 * Creates a new adapter for an object of class '{@link satellite.GroundStationNetwork <em>Ground Station Network</em>}'.
192 * <!-- begin-user-doc -->
193 * This default implementation returns null so that we can easily ignore cases;
194 * it's useful to ignore a case when inheritance will catch all the cases anyway.
195 * <!-- end-user-doc -->
196 * @return the new adapter.
197 * @see satellite.GroundStationNetwork
198 * @generated
199 */
200 public Adapter createGroundStationNetworkAdapter() {
201 return null;
202 }
203
204 /**
205 * Creates a new adapter for an object of class '{@link satellite.Spacecraft <em>Spacecraft</em>}'.
206 * <!-- begin-user-doc -->
207 * This default implementation returns null so that we can easily ignore cases;
208 * it's useful to ignore a case when inheritance will catch all the cases anyway.
209 * <!-- end-user-doc -->
210 * @return the new adapter.
211 * @see satellite.Spacecraft
212 * @generated
213 */
214 public Adapter createSpacecraftAdapter() {
215 return null;
216 }
217
218 /**
219 * Creates a new adapter for an object of class '{@link satellite.CommSubsystem <em>Comm Subsystem</em>}'.
220 * <!-- begin-user-doc -->
221 * This default implementation returns null so that we can easily ignore cases;
222 * it's useful to ignore a case when inheritance will catch all the cases anyway.
223 * <!-- end-user-doc -->
224 * @return the new adapter.
225 * @see satellite.CommSubsystem
226 * @generated
227 */
228 public Adapter createCommSubsystemAdapter() {
229 return null;
230 }
231
232 /**
233 * Creates a new adapter for an object of class '{@link satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'.
234 * <!-- begin-user-doc -->
235 * This default implementation returns null so that we can easily ignore cases;
236 * it's useful to ignore a case when inheritance will catch all the cases anyway.
237 * <!-- end-user-doc -->
238 * @return the new adapter.
239 * @see satellite.DirectedCommunicationLink
240 * @generated
241 */
242 public Adapter createDirectedCommunicationLinkAdapter() {
243 return null;
244 }
245
246 /**
247 * Creates a new adapter for an object of class '{@link satellite.Payload <em>Payload</em>}'.
248 * <!-- begin-user-doc -->
249 * This default implementation returns null so that we can easily ignore cases;
250 * it's useful to ignore a case when inheritance will catch all the cases anyway.
251 * <!-- end-user-doc -->
252 * @return the new adapter.
253 * @see satellite.Payload
254 * @generated
255 */
256 public Adapter createPayloadAdapter() {
257 return null;
258 }
259
260 /**
261 * Creates a new adapter for an object of class '{@link satellite.InterferometryPayload <em>Interferometry Payload</em>}'.
262 * <!-- begin-user-doc -->
263 * This default implementation returns null so that we can easily ignore cases;
264 * it's useful to ignore a case when inheritance will catch all the cases anyway.
265 * <!-- end-user-doc -->
266 * @return the new adapter.
267 * @see satellite.InterferometryPayload
268 * @generated
269 */
270 public Adapter createInterferometryPayloadAdapter() {
271 return null;
272 }
273
274 /**
275 * Creates a new adapter for an object of class '{@link satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
276 * <!-- begin-user-doc -->
277 * This default implementation returns null so that we can easily ignore cases;
278 * it's useful to ignore a case when inheritance will catch all the cases anyway.
279 * <!-- end-user-doc -->
280 * @return the new adapter.
281 * @see satellite.CubeSat3U
282 * @generated
283 */
284 public Adapter createCubeSat3UAdapter() {
285 return null;
286 }
287
288 /**
289 * Creates a new adapter for an object of class '{@link satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
290 * <!-- begin-user-doc -->
291 * This default implementation returns null so that we can easily ignore cases;
292 * it's useful to ignore a case when inheritance will catch all the cases anyway.
293 * <!-- end-user-doc -->
294 * @return the new adapter.
295 * @see satellite.CubeSat6U
296 * @generated
297 */
298 public Adapter createCubeSat6UAdapter() {
299 return null;
300 }
301
302 /**
303 * Creates a new adapter for an object of class '{@link satellite.SmallSat <em>Small Sat</em>}'.
304 * <!-- begin-user-doc -->
305 * This default implementation returns null so that we can easily ignore cases;
306 * it's useful to ignore a case when inheritance will catch all the cases anyway.
307 * <!-- end-user-doc -->
308 * @return the new adapter.
309 * @see satellite.SmallSat
310 * @generated
311 */
312 public Adapter createSmallSatAdapter() {
313 return null;
314 }
315
316 /**
317 * Creates a new adapter for the default case.
318 * <!-- begin-user-doc -->
319 * This default implementation returns null.
320 * <!-- end-user-doc -->
321 * @return the new adapter.
322 * @generated
323 */
324 public Adapter createEObjectAdapter() {
325 return null;
326 }
327
328} //SatelliteAdapterFactory
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java
new file mode 100644
index 00000000..3eb78d75
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java
@@ -0,0 +1,374 @@
1/**
2 */
3package satellite.util;
4
5import org.eclipse.emf.ecore.EObject;
6import org.eclipse.emf.ecore.EPackage;
7
8import org.eclipse.emf.ecore.util.Switch;
9
10import satellite.*;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see satellite.SatellitePackage
23 * @generated
24 */
25public class SatelliteSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static SatellitePackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public SatelliteSwitch() {
41 if (modelPackage == null) {
42 modelPackage = SatellitePackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case SatellitePackage.CONSTELLATION_MISSION: {
70 ConstellationMission constellationMission = (ConstellationMission) theEObject;
71 T result = caseConstellationMission(constellationMission);
72 if (result == null)
73 result = defaultCase(theEObject);
74 return result;
75 }
76 case SatellitePackage.INTERFEROMETRY_MISSION: {
77 InterferometryMission interferometryMission = (InterferometryMission) theEObject;
78 T result = caseInterferometryMission(interferometryMission);
79 if (result == null)
80 result = caseConstellationMission(interferometryMission);
81 if (result == null)
82 result = defaultCase(theEObject);
83 return result;
84 }
85 case SatellitePackage.COMMUNICATING_ELEMENT: {
86 CommunicatingElement communicatingElement = (CommunicatingElement) theEObject;
87 T result = caseCommunicatingElement(communicatingElement);
88 if (result == null)
89 result = defaultCase(theEObject);
90 return result;
91 }
92 case SatellitePackage.GROUND_STATION_NETWORK: {
93 GroundStationNetwork groundStationNetwork = (GroundStationNetwork) theEObject;
94 T result = caseGroundStationNetwork(groundStationNetwork);
95 if (result == null)
96 result = caseCommunicatingElement(groundStationNetwork);
97 if (result == null)
98 result = defaultCase(theEObject);
99 return result;
100 }
101 case SatellitePackage.SPACECRAFT: {
102 Spacecraft spacecraft = (Spacecraft) theEObject;
103 T result = caseSpacecraft(spacecraft);
104 if (result == null)
105 result = caseCommunicatingElement(spacecraft);
106 if (result == null)
107 result = defaultCase(theEObject);
108 return result;
109 }
110 case SatellitePackage.COMM_SUBSYSTEM: {
111 CommSubsystem commSubsystem = (CommSubsystem) theEObject;
112 T result = caseCommSubsystem(commSubsystem);
113 if (result == null)
114 result = defaultCase(theEObject);
115 return result;
116 }
117 case SatellitePackage.DIRECTED_COMMUNICATION_LINK: {
118 DirectedCommunicationLink directedCommunicationLink = (DirectedCommunicationLink) theEObject;
119 T result = caseDirectedCommunicationLink(directedCommunicationLink);
120 if (result == null)
121 result = defaultCase(theEObject);
122 return result;
123 }
124 case SatellitePackage.PAYLOAD: {
125 Payload payload = (Payload) theEObject;
126 T result = casePayload(payload);
127 if (result == null)
128 result = defaultCase(theEObject);
129 return result;
130 }
131 case SatellitePackage.INTERFEROMETRY_PAYLOAD: {
132 InterferometryPayload interferometryPayload = (InterferometryPayload) theEObject;
133 T result = caseInterferometryPayload(interferometryPayload);
134 if (result == null)
135 result = casePayload(interferometryPayload);
136 if (result == null)
137 result = defaultCase(theEObject);
138 return result;
139 }
140 case SatellitePackage.CUBE_SAT3_U: {
141 CubeSat3U cubeSat3U = (CubeSat3U) theEObject;
142 T result = caseCubeSat3U(cubeSat3U);
143 if (result == null)
144 result = caseSpacecraft(cubeSat3U);
145 if (result == null)
146 result = caseCommunicatingElement(cubeSat3U);
147 if (result == null)
148 result = defaultCase(theEObject);
149 return result;
150 }
151 case SatellitePackage.CUBE_SAT6_U: {
152 CubeSat6U cubeSat6U = (CubeSat6U) theEObject;
153 T result = caseCubeSat6U(cubeSat6U);
154 if (result == null)
155 result = caseSpacecraft(cubeSat6U);
156 if (result == null)
157 result = caseCommunicatingElement(cubeSat6U);
158 if (result == null)
159 result = defaultCase(theEObject);
160 return result;
161 }
162 case SatellitePackage.SMALL_SAT: {
163 SmallSat smallSat = (SmallSat) theEObject;
164 T result = caseSmallSat(smallSat);
165 if (result == null)
166 result = caseSpacecraft(smallSat);
167 if (result == null)
168 result = caseCommunicatingElement(smallSat);
169 if (result == null)
170 result = defaultCase(theEObject);
171 return result;
172 }
173 default:
174 return defaultCase(theEObject);
175 }
176 }
177
178 /**
179 * Returns the result of interpreting the object as an instance of '<em>Constellation Mission</em>'.
180 * <!-- begin-user-doc -->
181 * This implementation returns null;
182 * returning a non-null result will terminate the switch.
183 * <!-- end-user-doc -->
184 * @param object the target of the switch.
185 * @return the result of interpreting the object as an instance of '<em>Constellation Mission</em>'.
186 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
187 * @generated
188 */
189 public T caseConstellationMission(ConstellationMission object) {
190 return null;
191 }
192
193 /**
194 * Returns the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'.
195 * <!-- begin-user-doc -->
196 * This implementation returns null;
197 * returning a non-null result will terminate the switch.
198 * <!-- end-user-doc -->
199 * @param object the target of the switch.
200 * @return the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'.
201 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
202 * @generated
203 */
204 public T caseInterferometryMission(InterferometryMission object) {
205 return null;
206 }
207
208 /**
209 * Returns the result of interpreting the object as an instance of '<em>Communicating Element</em>'.
210 * <!-- begin-user-doc -->
211 * This implementation returns null;
212 * returning a non-null result will terminate the switch.
213 * <!-- end-user-doc -->
214 * @param object the target of the switch.
215 * @return the result of interpreting the object as an instance of '<em>Communicating Element</em>'.
216 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
217 * @generated
218 */
219 public T caseCommunicatingElement(CommunicatingElement object) {
220 return null;
221 }
222
223 /**
224 * Returns the result of interpreting the object as an instance of '<em>Ground Station Network</em>'.
225 * <!-- begin-user-doc -->
226 * This implementation returns null;
227 * returning a non-null result will terminate the switch.
228 * <!-- end-user-doc -->
229 * @param object the target of the switch.
230 * @return the result of interpreting the object as an instance of '<em>Ground Station Network</em>'.
231 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
232 * @generated
233 */
234 public T caseGroundStationNetwork(GroundStationNetwork object) {
235 return null;
236 }
237
238 /**
239 * Returns the result of interpreting the object as an instance of '<em>Spacecraft</em>'.
240 * <!-- begin-user-doc -->
241 * This implementation returns null;
242 * returning a non-null result will terminate the switch.
243 * <!-- end-user-doc -->
244 * @param object the target of the switch.
245 * @return the result of interpreting the object as an instance of '<em>Spacecraft</em>'.
246 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
247 * @generated
248 */
249 public T caseSpacecraft(Spacecraft object) {
250 return null;
251 }
252
253 /**
254 * Returns the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'.
255 * <!-- begin-user-doc -->
256 * This implementation returns null;
257 * returning a non-null result will terminate the switch.
258 * <!-- end-user-doc -->
259 * @param object the target of the switch.
260 * @return the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'.
261 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
262 * @generated
263 */
264 public T caseCommSubsystem(CommSubsystem object) {
265 return null;
266 }
267
268 /**
269 * Returns the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'.
270 * <!-- begin-user-doc -->
271 * This implementation returns null;
272 * returning a non-null result will terminate the switch.
273 * <!-- end-user-doc -->
274 * @param object the target of the switch.
275 * @return the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'.
276 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
277 * @generated
278 */
279 public T caseDirectedCommunicationLink(DirectedCommunicationLink object) {
280 return null;
281 }
282
283 /**
284 * Returns the result of interpreting the object as an instance of '<em>Payload</em>'.
285 * <!-- begin-user-doc -->
286 * This implementation returns null;
287 * returning a non-null result will terminate the switch.
288 * <!-- end-user-doc -->
289 * @param object the target of the switch.
290 * @return the result of interpreting the object as an instance of '<em>Payload</em>'.
291 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
292 * @generated
293 */
294 public T casePayload(Payload object) {
295 return null;
296 }
297
298 /**
299 * Returns the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'.
300 * <!-- begin-user-doc -->
301 * This implementation returns null;
302 * returning a non-null result will terminate the switch.
303 * <!-- end-user-doc -->
304 * @param object the target of the switch.
305 * @return the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'.
306 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
307 * @generated
308 */
309 public T caseInterferometryPayload(InterferometryPayload object) {
310 return null;
311 }
312
313 /**
314 * Returns the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'.
315 * <!-- begin-user-doc -->
316 * This implementation returns null;
317 * returning a non-null result will terminate the switch.
318 * <!-- end-user-doc -->
319 * @param object the target of the switch.
320 * @return the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'.
321 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
322 * @generated
323 */
324 public T caseCubeSat3U(CubeSat3U object) {
325 return null;
326 }
327
328 /**
329 * Returns the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'.
330 * <!-- begin-user-doc -->
331 * This implementation returns null;
332 * returning a non-null result will terminate the switch.
333 * <!-- end-user-doc -->
334 * @param object the target of the switch.
335 * @return the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'.
336 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
337 * @generated
338 */
339 public T caseCubeSat6U(CubeSat6U object) {
340 return null;
341 }
342
343 /**
344 * Returns the result of interpreting the object as an instance of '<em>Small Sat</em>'.
345 * <!-- begin-user-doc -->
346 * This implementation returns null;
347 * returning a non-null result will terminate the switch.
348 * <!-- end-user-doc -->
349 * @param object the target of the switch.
350 * @return the result of interpreting the object as an instance of '<em>Small Sat</em>'.
351 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
352 * @generated
353 */
354 public T caseSmallSat(SmallSat object) {
355 return null;
356 }
357
358 /**
359 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
360 * <!-- begin-user-doc -->
361 * This implementation returns null;
362 * returning a non-null result will terminate the switch, but this is the last case anyway.
363 * <!-- end-user-doc -->
364 * @param object the target of the switch.
365 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
366 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
367 * @generated
368 */
369 @Override
370 public T defaultCase(EObject object) {
371 return null;
372 }
373
374} //SatelliteSwitch
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird
index 569089d8..31575c3c 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird
@@ -1306,6 +1306,7 @@
1306 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.min</semanticResources> 1306 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.min</semanticResources>
1307 <semanticResources>../src/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/SatelliteMetrics.vql</semanticResources> 1307 <semanticResources>../src/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/SatelliteMetrics.vql</semanticResources>
1308 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.max</semanticResources> 1308 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.max</semanticResources>
1309 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind</semanticResources>
1309 <ownedViews xmi:type="viewpoint:DView" uid="_reOHEF0qEemRYLyXht2IrQ"> 1310 <ownedViews xmi:type="viewpoint:DView" uid="_reOHEF0qEemRYLyXht2IrQ">
1310 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> 1311 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
1311 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_re1yIF0qEemRYLyXht2IrQ" name="satellite" repPath="#_rel6gF0qEemRYLyXht2IrQ"> 1312 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_re1yIF0qEemRYLyXht2IrQ" name="satellite" repPath="#_rel6gF0qEemRYLyXht2IrQ">
@@ -1352,6 +1353,12 @@
1352 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> 1353 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
1353 </endLabelStyleDescription> 1354 </endLabelStyleDescription>
1354 </computedStyleDescriptions> 1355 </computedStyleDescriptions>
1356 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_o3yl4HA6Eem9acJE7_CmTw" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
1357 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1358 <labelFormat>bold</labelFormat>
1359 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
1360 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1361 </computedStyleDescriptions>
1355 </data> 1362 </data>
1356 </ownedAnnotationEntries> 1363 </ownedAnnotationEntries>
1357 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rfAxQF0qEemRYLyXht2IrQ" source="GMF_DIAGRAMS"> 1364 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rfAxQF0qEemRYLyXht2IrQ" source="GMF_DIAGRAMS">
@@ -1502,9 +1509,9 @@
1502 <styles xmi:type="notation:FontStyle" xmi:id="_5QV24W60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> 1509 <styles xmi:type="notation:FontStyle" xmi:id="_5QV24W60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/>
1503 <layoutConstraint xmi:type="notation:Location" xmi:id="_5QV24m60Eem3gIPdAp40Tw"/> 1510 <layoutConstraint xmi:type="notation:Location" xmi:id="_5QV24m60Eem3gIPdAp40Tw"/>
1504 </children> 1511 </children>
1505 <children xmi:type="notation:Node" xmi:id="_6f0hwG60Eem3gIPdAp40Tw" type="3010" element="_6fjcAG60Eem3gIPdAp40Tw"> 1512 <children xmi:type="notation:Node" xmi:id="_UKi6wHA6Eem9acJE7_CmTw" type="3010" element="_UKKgQHA6Eem9acJE7_CmTw">
1506 <styles xmi:type="notation:FontStyle" xmi:id="_6f0hwW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> 1513 <styles xmi:type="notation:FontStyle" xmi:id="_UKi6wXA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/>
1507 <layoutConstraint xmi:type="notation:Location" xmi:id="_6f0hwm60Eem3gIPdAp40Tw"/> 1514 <layoutConstraint xmi:type="notation:Location" xmi:id="_UKi6wnA6Eem9acJE7_CmTw"/>
1508 </children> 1515 </children>
1509 <children xmi:type="notation:Node" xmi:id="_7SZ1QG60Eem3gIPdAp40Tw" type="3010" element="_7R9JUG60Eem3gIPdAp40Tw"> 1516 <children xmi:type="notation:Node" xmi:id="_7SZ1QG60Eem3gIPdAp40Tw" type="3010" element="_7R9JUG60Eem3gIPdAp40Tw">
1510 <styles xmi:type="notation:FontStyle" xmi:id="_7SZ1QW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> 1517 <styles xmi:type="notation:FontStyle" xmi:id="_7SZ1QW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/>
@@ -1516,6 +1523,33 @@
1516 <styles xmi:type="notation:ShapeStyle" xmi:id="_2omYkW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> 1523 <styles xmi:type="notation:ShapeStyle" xmi:id="_2omYkW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/>
1517 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2omYkm60Eem3gIPdAp40Tw" x="990" y="325" width="120" height="100"/> 1524 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2omYkm60Eem3gIPdAp40Tw" x="990" y="325" width="120" height="100"/>
1518 </children> 1525 </children>
1526 <children xmi:type="notation:Node" xmi:id="_fnQ1sHA6Eem9acJE7_CmTw" type="2003" element="_fm1X4HA6Eem9acJE7_CmTw">
1527 <children xmi:type="notation:Node" xmi:id="_fnT5AHA6Eem9acJE7_CmTw" type="5007"/>
1528 <children xmi:type="notation:Node" xmi:id="_fnUgEHA6Eem9acJE7_CmTw" type="7004">
1529 <styles xmi:type="notation:SortingStyle" xmi:id="_fnUgEXA6Eem9acJE7_CmTw"/>
1530 <styles xmi:type="notation:FilteringStyle" xmi:id="_fnUgEnA6Eem9acJE7_CmTw"/>
1531 </children>
1532 <styles xmi:type="notation:ShapeStyle" xmi:id="_fnQ1sXA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/>
1533 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fnQ1snA6Eem9acJE7_CmTw" x="209" y="484" width="120" height="100"/>
1534 </children>
1535 <children xmi:type="notation:Node" xmi:id="_haz28HA6Eem9acJE7_CmTw" type="2003" element="_hanCoHA6Eem9acJE7_CmTw">
1536 <children xmi:type="notation:Node" xmi:id="_ha0eAHA6Eem9acJE7_CmTw" type="5007"/>
1537 <children xmi:type="notation:Node" xmi:id="_ha0eAXA6Eem9acJE7_CmTw" type="7004">
1538 <styles xmi:type="notation:SortingStyle" xmi:id="_ha0eAnA6Eem9acJE7_CmTw"/>
1539 <styles xmi:type="notation:FilteringStyle" xmi:id="_ha0eA3A6Eem9acJE7_CmTw"/>
1540 </children>
1541 <styles xmi:type="notation:ShapeStyle" xmi:id="_haz28XA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/>
1542 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_haz28nA6Eem9acJE7_CmTw" x="352" y="484" width="120" height="100"/>
1543 </children>
1544 <children xmi:type="notation:Node" xmi:id="_irD94HA6Eem9acJE7_CmTw" type="2003" element="_iqnR8HA6Eem9acJE7_CmTw">
1545 <children xmi:type="notation:Node" xmi:id="_irEk8HA6Eem9acJE7_CmTw" type="5007"/>
1546 <children xmi:type="notation:Node" xmi:id="_irEk8XA6Eem9acJE7_CmTw" type="7004">
1547 <styles xmi:type="notation:SortingStyle" xmi:id="_irEk8nA6Eem9acJE7_CmTw"/>
1548 <styles xmi:type="notation:FilteringStyle" xmi:id="_irEk83A6Eem9acJE7_CmTw"/>
1549 </children>
1550 <styles xmi:type="notation:ShapeStyle" xmi:id="_irD94XA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/>
1551 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_irD94nA6Eem9acJE7_CmTw" x="495" y="484" width="120" height="100"/>
1552 </children>
1519 <styles xmi:type="notation:DiagramStyle" xmi:id="_rfAxQl0qEemRYLyXht2IrQ"/> 1553 <styles xmi:type="notation:DiagramStyle" xmi:id="_rfAxQl0qEemRYLyXht2IrQ"/>
1520 <edges xmi:type="notation:Edge" xmi:id="_0jV4gF0qEemRYLyXht2IrQ" type="4001" element="_0jIdIF0qEemRYLyXht2IrQ" source="_vlcbIF0qEemRYLyXht2IrQ" target="_tNH44F0qEemRYLyXht2IrQ"> 1554 <edges xmi:type="notation:Edge" xmi:id="_0jV4gF0qEemRYLyXht2IrQ" type="4001" element="_0jIdIF0qEemRYLyXht2IrQ" source="_vlcbIF0qEemRYLyXht2IrQ" target="_tNH44F0qEemRYLyXht2IrQ">
1521 <children xmi:type="notation:Node" xmi:id="_0jXGoF0qEemRYLyXht2IrQ" type="6001"> 1555 <children xmi:type="notation:Node" xmi:id="_0jXGoF0qEemRYLyXht2IrQ" type="6001">
@@ -1693,6 +1727,54 @@
1693 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVkl0yEemRYLyXht2IrQ" id="(0.7222222222222222,1.0)"/> 1727 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVkl0yEemRYLyXht2IrQ" id="(0.7222222222222222,1.0)"/>
1694 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVk10yEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/> 1728 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVk10yEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/>
1695 </edges> 1729 </edges>
1730 <edges xmi:type="notation:Edge" xmi:id="_n98MwHA6Eem9acJE7_CmTw" type="4001" element="_n9tjRnA6Eem9acJE7_CmTw" source="_irD94HA6Eem9acJE7_CmTw" target="_Aq3OgF0sEemRYLyXht2IrQ">
1731 <children xmi:type="notation:Node" xmi:id="_n98z0HA6Eem9acJE7_CmTw" type="6001">
1732 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n98z0XA6Eem9acJE7_CmTw" y="-10"/>
1733 </children>
1734 <children xmi:type="notation:Node" xmi:id="_n98z0nA6Eem9acJE7_CmTw" type="6002">
1735 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n98z03A6Eem9acJE7_CmTw" y="10"/>
1736 </children>
1737 <children xmi:type="notation:Node" xmi:id="_n98z1HA6Eem9acJE7_CmTw" type="6003">
1738 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n98z1XA6Eem9acJE7_CmTw" y="10"/>
1739 </children>
1740 <styles xmi:type="notation:ConnectorStyle" xmi:id="_n98MwXA6Eem9acJE7_CmTw" routing="Tree"/>
1741 <styles xmi:type="notation:FontStyle" xmi:id="_n98MwnA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/>
1742 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n98Mw3A6Eem9acJE7_CmTw" points="[0, 0, 94, 151]$[-94, -151, 0, 0]"/>
1743 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n98z1nA6Eem9acJE7_CmTw" id="(0.2796610169491525,0.0)"/>
1744 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n98z13A6Eem9acJE7_CmTw" id="(0.3305084745762712,0.0)"/>
1745 </edges>
1746 <edges xmi:type="notation:Edge" xmi:id="_3d2LIHBMEempc7JjePmuNw" type="4001" element="_3dgz_3BMEempc7JjePmuNw" source="_haz28HA6Eem9acJE7_CmTw" target="_Aq3OgF0sEemRYLyXht2IrQ">
1747 <children xmi:type="notation:Node" xmi:id="_3d_VEHBMEempc7JjePmuNw" type="6001">
1748 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3d_VEXBMEempc7JjePmuNw" y="-10"/>
1749 </children>
1750 <children xmi:type="notation:Node" xmi:id="_3eAjMHBMEempc7JjePmuNw" type="6002">
1751 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3eAjMXBMEempc7JjePmuNw" y="10"/>
1752 </children>
1753 <children xmi:type="notation:Node" xmi:id="_3eBKQHBMEempc7JjePmuNw" type="6003">
1754 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3eBKQXBMEempc7JjePmuNw" y="10"/>
1755 </children>
1756 <styles xmi:type="notation:ConnectorStyle" xmi:id="_3d2LIXBMEempc7JjePmuNw" routing="Tree"/>
1757 <styles xmi:type="notation:FontStyle" xmi:id="_3d2LInBMEempc7JjePmuNw" fontName="Noto Sans" fontHeight="8"/>
1758 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3d2LI3BMEempc7JjePmuNw" points="[0, 0, -14, 61]$[14, -61, 0, 0]"/>
1759 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3eENkHBMEempc7JjePmuNw" id="(0.6583333333333333,0.0)"/>
1760 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3eENkXBMEempc7JjePmuNw" id="(0.3305084745762712,0.0)"/>
1761 </edges>
1762 <edges xmi:type="notation:Edge" xmi:id="_37fJYHBMEempc7JjePmuNw" type="4001" element="_37Qf-HBMEempc7JjePmuNw" source="_fnQ1sHA6Eem9acJE7_CmTw" target="_Aq3OgF0sEemRYLyXht2IrQ">
1763 <children xmi:type="notation:Node" xmi:id="_37fwcHBMEempc7JjePmuNw" type="6001">
1764 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37fwcXBMEempc7JjePmuNw" y="-10"/>
1765 </children>
1766 <children xmi:type="notation:Node" xmi:id="_37fwcnBMEempc7JjePmuNw" type="6002">
1767 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37fwc3BMEempc7JjePmuNw" y="10"/>
1768 </children>
1769 <children xmi:type="notation:Node" xmi:id="_37fwdHBMEempc7JjePmuNw" type="6003">
1770 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37fwdXBMEempc7JjePmuNw" y="10"/>
1771 </children>
1772 <styles xmi:type="notation:ConnectorStyle" xmi:id="_37fJYXBMEempc7JjePmuNw" routing="Tree"/>
1773 <styles xmi:type="notation:FontStyle" xmi:id="_37fJYnBMEempc7JjePmuNw" fontName="Noto Sans" fontHeight="8"/>
1774 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_37fJY3BMEempc7JjePmuNw" points="[0, 0, -63, 154]$[63, -154, 0, 0]"/>
1775 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37gXgHBMEempc7JjePmuNw" id="(0.559322033898305,0.0)"/>
1776 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37gXgXBMEempc7JjePmuNw" id="(0.3305084745762712,0.0)"/>
1777 </edges>
1696 </data> 1778 </data>
1697 </ownedAnnotationEntries> 1779 </ownedAnnotationEntries>
1698 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tM4oUF0qEemRYLyXht2IrQ" name="ConstellationMission" tooltipText="" outgoingEdges="_KzljXl0yEemRYLyXht2IrQ _PdH6PF0yEemRYLyXht2IrQ" incomingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10"> 1780 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tM4oUF0qEemRYLyXht2IrQ" name="ConstellationMission" tooltipText="" outgoingEdges="_KzljXl0yEemRYLyXht2IrQ _PdH6PF0yEemRYLyXht2IrQ" incomingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10">
@@ -1761,21 +1843,21 @@
1761 </ownedStyle> 1843 </ownedStyle>
1762 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1844 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1763 </ownedDiagramElements> 1845 </ownedDiagramElements>
1764 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_AqsPYF0sEemRYLyXht2IrQ" name="Spacecraft" tooltipText="" outgoingEdges="_PEp-k10sEemRYLyXht2IrQ _3GzPll0xEemRYLyXht2IrQ" incomingEdges="_PdH6PF0yEemRYLyXht2IrQ" width="12" height="10"> 1846 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_AqsPYF0sEemRYLyXht2IrQ" name="Spacecraft" tooltipText="" outgoingEdges="_PEp-k10sEemRYLyXht2IrQ _3GzPll0xEemRYLyXht2IrQ" incomingEdges="_PdH6PF0yEemRYLyXht2IrQ _n9tjRnA6Eem9acJE7_CmTw _3dgz_3BMEempc7JjePmuNw _37Qf-HBMEempc7JjePmuNw" width="12" height="10">
1765 <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> 1847 <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/>
1766 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> 1848 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/>
1767 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1849 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1768 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 1850 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1769 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 1851 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1770 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ApvGVG61Eem3gIPdAp40Tw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 1852 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_l4otI3A6Eem9acJE7_CmTw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1771 <labelFormat>italic</labelFormat> 1853 <labelFormat>italic</labelFormat>
1772 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> 1854 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1773 </ownedStyle> 1855 </ownedStyle>
1774 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1856 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1775 <ownedElements xmi:type="diagram:DNodeListElement" uid="_-9TZsG60Eem3gIPdAp40Tw" name="kind : SpacecraftKind = CubeSat3U" tooltipText=""> 1857 <ownedElements xmi:type="diagram:DNodeListElement" uid="_-9TZsG60Eem3gIPdAp40Tw" name="/kind : SpacecraftKind = CubeSat3U" tooltipText="">
1776 <target xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/> 1858 <target xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/>
1777 <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/> 1859 <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/>
1778 <ownedStyle xmi:type="diagram:BundledImage" uid="_BUQqAW61Eem3gIPdAp40Tw" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> 1860 <ownedStyle xmi:type="diagram:BundledImage" uid="_o3yl4nA6Eem9acJE7_CmTw" labelColor="39,76,114" labelAlignment="LEFT" description="_o3yl4HA6Eem9acJE7_CmTw">
1779 <labelFormat>bold</labelFormat> 1861 <labelFormat>bold</labelFormat>
1780 </ownedStyle> 1862 </ownedStyle>
1781 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 1863 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
@@ -2047,10 +2129,10 @@
2047 </ownedStyle> 2129 </ownedStyle>
2048 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 2130 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2049 </ownedElements> 2131 </ownedElements>
2050 <ownedElements xmi:type="diagram:DNodeListElement" uid="_6fjcAG60Eem3gIPdAp40Tw" name="SubeSat6U" tooltipText=""> 2132 <ownedElements xmi:type="diagram:DNodeListElement" uid="_UKKgQHA6Eem9acJE7_CmTw" name="CubeSat6U" tooltipText="">
2051 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SubeSat6U"/> 2133 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat6U"/>
2052 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SubeSat6U"/> 2134 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat6U"/>
2053 <ownedStyle xmi:type="diagram:BundledImage" uid="_6fjcAW60Eem3gIPdAp40Tw" labelAlignment="LEFT"> 2135 <ownedStyle xmi:type="diagram:BundledImage" uid="_UKLHUHA6Eem9acJE7_CmTw" labelAlignment="LEFT">
2054 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> 2136 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
2055 </ownedStyle> 2137 </ownedStyle>
2056 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 2138 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
@@ -2064,6 +2146,75 @@
2064 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 2146 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2065 </ownedElements> 2147 </ownedElements>
2066 </ownedDiagramElements> 2148 </ownedDiagramElements>
2149 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fm1X4HA6Eem9acJE7_CmTw" name="CubeSat3U" tooltipText="" outgoingEdges="_37Qf-HBMEempc7JjePmuNw" width="12" height="10">
2150 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
2151 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
2152 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2153 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2154 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2155 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fm1-8HA6Eem9acJE7_CmTw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2156 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2157 </ownedStyle>
2158 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2159 </ownedDiagramElements>
2160 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hanCoHA6Eem9acJE7_CmTw" name="CubeSat6U" tooltipText="" outgoingEdges="_3dgz_3BMEempc7JjePmuNw" width="12" height="10">
2161 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
2162 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
2163 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2164 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2165 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2166 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_hanCoXA6Eem9acJE7_CmTw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2167 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2168 </ownedStyle>
2169 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2170 </ownedDiagramElements>
2171 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iqnR8HA6Eem9acJE7_CmTw" name="SmallSat" tooltipText="" outgoingEdges="_n9tjRnA6Eem9acJE7_CmTw" width="12" height="10">
2172 <target xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
2173 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
2174 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2175 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2176 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2177 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_iqn5AHA6Eem9acJE7_CmTw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2178 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2179 </ownedStyle>
2180 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2181 </ownedDiagramElements>
2182 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_n9tjRnA6Eem9acJE7_CmTw" sourceNode="_iqnR8HA6Eem9acJE7_CmTw" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
2183 <target xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
2184 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
2185 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_n9uKUHA6Eem9acJE7_CmTw" targetArrow="InputClosedArrow" routingStyle="tree">
2186 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2187 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_n9uKUXA6Eem9acJE7_CmTw" showIcon="false">
2188 <labelFormat>italic</labelFormat>
2189 </beginLabelStyle>
2190 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_n9uKUnA6Eem9acJE7_CmTw" showIcon="false"/>
2191 </ownedStyle>
2192 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2193 </ownedDiagramElements>
2194 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3dgz_3BMEempc7JjePmuNw" sourceNode="_hanCoHA6Eem9acJE7_CmTw" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
2195 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
2196 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
2197 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ItnCw3BNEempc7JjePmuNw" lineStyle="dot" targetArrow="InputClosedArrow" routingStyle="tree" strokeColor="125,125,125">
2198 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.1/@style"/>
2199 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_ItnCxHBNEempc7JjePmuNw" showIcon="false">
2200 <labelFormat>italic</labelFormat>
2201 </beginLabelStyle>
2202 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ItnCxXBNEempc7JjePmuNw" showIcon="false"/>
2203 </ownedStyle>
2204 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2205 </ownedDiagramElements>
2206 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_37Qf-HBMEempc7JjePmuNw" sourceNode="_fm1X4HA6Eem9acJE7_CmTw" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
2207 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
2208 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
2209 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ItmbuXBNEempc7JjePmuNw" lineStyle="dot" targetArrow="InputClosedArrow" routingStyle="tree" strokeColor="125,125,125">
2210 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.1/@style"/>
2211 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_ItmbunBNEempc7JjePmuNw" showIcon="false">
2212 <labelFormat>italic</labelFormat>
2213 </beginLabelStyle>
2214 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Itmbu3BNEempc7JjePmuNw" showIcon="false"/>
2215 </ownedStyle>
2216 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2217 </ownedDiagramElements>
2067 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 2218 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
2068 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_reoWwF0qEemRYLyXht2IrQ"/> 2219 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_reoWwF0qEemRYLyXht2IrQ"/>
2069 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 2220 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
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 99766ab7..ae9197da 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
@@ -1,6 +1,9 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="satellite" nsURI="http://www.example.org/satellite" nsPrefix="satellite"> 3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="satellite" nsURI="http://www.example.org/satellite" nsPrefix="satellite">
4 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
5 <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/>
6 </eAnnotations>
4 <eClassifiers xsi:type="ecore:EClass" name="ConstellationMission" abstract="true"> 7 <eClassifiers xsi:type="ecore:EClass" name="ConstellationMission" abstract="true">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1" 8 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1"
6 eType="#//GroundStationNetwork" containment="true"/> 9 eType="#//GroundStationNetwork" containment="true"/>
@@ -21,7 +24,12 @@
21 <eClassifiers xsi:type="ecore:EClass" name="Spacecraft" abstract="true" eSuperTypes="#//CommunicatingElement"> 24 <eClassifiers xsi:type="ecore:EClass" name="Spacecraft" abstract="true" eSuperTypes="#//CommunicatingElement">
22 <eStructuralFeatures xsi:type="ecore:EReference" name="payload" eType="#//Payload" 25 <eStructuralFeatures xsi:type="ecore:EReference" name="payload" eType="#//Payload"
23 containment="true"/> 26 containment="true"/>
24 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//SpacecraftKind"/> 27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//SpacecraftKind"
28 changeable="false" volatile="true" transient="true" derived="true">
29 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
30 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/>
31 </eAnnotations>
32 </eStructuralFeatures>
25 </eClassifiers> 33 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem"> 34 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem">
27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="band" lowerBound="1" eType="#//TransceiverBand"/> 35 <eStructuralFeatures xsi:type="ecore:EAttribute" name="band" lowerBound="1" eType="#//TransceiverBand"/>
@@ -50,4 +58,8 @@
50 <eLiterals name="CubeSat6U" value="1"/> 58 <eLiterals name="CubeSat6U" value="1"/>
51 <eLiterals name="SmallSat" value="2"/> 59 <eLiterals name="SmallSat" value="2"/>
52 </eClassifiers> 60 </eClassifiers>
61 <eClassifiers xsi:type="ecore:EClass" name="CubeSat3U" eSuperTypes="#//CubeSat"/>
62 <eClassifiers xsi:type="ecore:EClass" name="CubeSat6U" eSuperTypes="#//CubeSat"/>
63 <eClassifiers xsi:type="ecore:EClass" name="SmallSat" eSuperTypes="#//Spacecraft"/>
64 <eClassifiers xsi:type="ecore:EClass" name="CubeSat" abstract="true" eSuperTypes="#//Spacecraft"/>
53</ecore:EPackage> 65</ecore:EPackage>
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 61a4104a..f8b6d75b 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
@@ -10,8 +10,7 @@
10 operationReflection="true" importOrganizing="true"> 10 operationReflection="true" importOrganizing="true">
11 <foreignModel>satellite.ecore</foreignModel> 11 <foreignModel>satellite.ecore</foreignModel>
12 <testsDirectory xsi:nil="true"/> 12 <testsDirectory xsi:nil="true"/>
13 <genPackages prefix="Satellite" basePackage="hu.bme.mit.inf.dslreasoner.domains" 13 <genPackages prefix="Satellite" disposableProviderFactory="true" ecorePackage="satellite.ecore#/">
14 disposableProviderFactory="true" ecorePackage="satellite.ecore#/">
15 <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//TransceiverBand"> 14 <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//TransceiverBand">
16 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/UHF"/> 15 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/UHF"/>
17 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/X"/> 16 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/X"/>
@@ -27,21 +26,21 @@
27 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/CubeSat6U"/> 26 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/CubeSat6U"/>
28 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/SmallSat"/> 27 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/SmallSat"/>
29 </genEnums> 28 </genEnums>
30 <genClasses ecoreClass="satellite.ecore#//ConstellationMission"> 29 <genClasses image="false" ecoreClass="satellite.ecore#//ConstellationMission">
31 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/> 30 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/>
32 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/> 31 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/>
33 </genClasses> 32 </genClasses>
34 <genClasses ecoreClass="satellite.ecore#//InterferometryMission"> 33 <genClasses ecoreClass="satellite.ecore#//InterferometryMission">
35 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/> 34 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/>
36 </genClasses> 35 </genClasses>
37 <genClasses ecoreClass="satellite.ecore#//CommunicatingElement"> 36 <genClasses image="false" ecoreClass="satellite.ecore#//CommunicatingElement">
38 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/> 37 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/>
39 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/communicationLink"/> 38 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/communicationLink"/>
40 </genClasses> 39 </genClasses>
41 <genClasses ecoreClass="satellite.ecore#//GroundStationNetwork"/> 40 <genClasses ecoreClass="satellite.ecore#//GroundStationNetwork"/>
42 <genClasses ecoreClass="satellite.ecore#//Spacecraft"> 41 <genClasses image="false" ecoreClass="satellite.ecore#//Spacecraft">
43 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//Spacecraft/payload"/> 42 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//Spacecraft/payload"/>
44 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//Spacecraft/kind"/> 43 <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//Spacecraft/kind"/>
45 </genClasses> 44 </genClasses>
46 <genClasses ecoreClass="satellite.ecore#//CommSubsystem"> 45 <genClasses ecoreClass="satellite.ecore#//CommSubsystem">
47 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/band"/> 46 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/band"/>
@@ -51,7 +50,10 @@
51 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/source"/> 50 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/source"/>
52 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/target"/> 51 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/target"/>
53 </genClasses> 52 </genClasses>
54 <genClasses ecoreClass="satellite.ecore#//Payload"/> 53 <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/>
55 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/> 54 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/>
55 <genClasses ecoreClass="satellite.ecore#//CubeSat3U"/>
56 <genClasses ecoreClass="satellite.ecore#//CubeSat6U"/>
57 <genClasses ecoreClass="satellite.ecore#//SmallSat"/>
56 </genPackages> 58 </genPackages>
57</genmodel:GenModel> 59</genmodel:GenModel>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated
index b7530140..853b7b54 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated
@@ -45,6 +45,11 @@ pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation
45 find mayExist(problem,interpretation,b); 45 find mayExist(problem,interpretation,b);
46 a == b; 46 a == b;
47} 47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
48 53
49//////////////////////// 54////////////////////////
50// 0.3 Required Patterns by TypeIndexer 55// 0.3 Required Patterns by TypeIndexer
@@ -104,23 +109,23 @@ private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, in
104{ 109{
105 find interpretation(problem,interpretation); 110 find interpretation(problem,interpretation);
106 PartialInterpretation.newElements(interpretation,element); 111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
113 neg find mustInstanceOfPayload_class(problem,interpretation,element);
107 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 114 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
108 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); 115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
109 neg find mustInstanceOfPayload_class(problem,interpretation,element);
110 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
111 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
112 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); 116 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
117 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
113 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation); 118 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
114 neg find isPrimitive(element); 119 neg find isPrimitive(element);
115} or { 120} or {
116 find interpretation(problem,interpretation); 121 find interpretation(problem,interpretation);
117 PartialInterpretation.openWorldElements(interpretation,element); 122 PartialInterpretation.openWorldElements(interpretation,element);
123 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
124 neg find mustInstanceOfPayload_class(problem,interpretation,element);
118 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 125 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
119 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); 126 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
120 neg find mustInstanceOfPayload_class(problem,interpretation,element);
121 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
122 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); 127 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
128 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
124 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation); 129 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
125 neg find isPrimitive(element); 130 neg find isPrimitive(element);
126} or 131} or
@@ -148,21 +153,21 @@ private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, i
148{ 153{
149 find interpretation(problem,interpretation); 154 find interpretation(problem,interpretation);
150 PartialInterpretation.newElements(interpretation,element); 155 PartialInterpretation.newElements(interpretation,element);
156 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
151 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 158 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
152 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); 159 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
153 neg find mustInstanceOfPayload_class(problem,interpretation,element);
154 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); 160 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
155 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
156 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation); 161 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
157 neg find isPrimitive(element); 162 neg find isPrimitive(element);
158} or { 163} or {
159 find interpretation(problem,interpretation); 164 find interpretation(problem,interpretation);
160 PartialInterpretation.openWorldElements(interpretation,element); 165 PartialInterpretation.openWorldElements(interpretation,element);
166 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
167 neg find mustInstanceOfPayload_class(problem,interpretation,element);
161 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 168 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
162 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); 169 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
163 neg find mustInstanceOfPayload_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); 170 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
166 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation); 171 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
167 neg find isPrimitive(element); 172 neg find isPrimitive(element);
168} or 173} or
@@ -190,23 +195,23 @@ private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, in
190{ 195{
191 find interpretation(problem,interpretation); 196 find interpretation(problem,interpretation);
192 PartialInterpretation.newElements(interpretation,element); 197 PartialInterpretation.newElements(interpretation,element);
193 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
194 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
195 neg find mustInstanceOfPayload_class(problem,interpretation,element);
196 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 198 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
197 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 199 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 200 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
201 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
202 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
203 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation); 204 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element); 205 neg find isPrimitive(element);
201} or { 206} or {
202 find interpretation(problem,interpretation); 207 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element); 208 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
205 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
206 neg find mustInstanceOfPayload_class(problem,interpretation,element);
207 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 209 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
208 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 210 neg find mustInstanceOfPayload_class(problem,interpretation,element);
209 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 211 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
212 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
213 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
214 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
210 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation); 215 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
211 neg find isPrimitive(element); 216 neg find isPrimitive(element);
212} or 217} or
@@ -234,21 +239,21 @@ private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, in
234{ 239{
235 find interpretation(problem,interpretation); 240 find interpretation(problem,interpretation);
236 PartialInterpretation.newElements(interpretation,element); 241 PartialInterpretation.newElements(interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
239 neg find mustInstanceOfPayload_class(problem,interpretation,element);
240 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 242 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
243 neg find mustInstanceOfPayload_class(problem,interpretation,element);
241 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 244 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
245 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
246 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
242 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation); 247 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
243 neg find isPrimitive(element); 248 neg find isPrimitive(element);
244} or { 249} or {
245 find interpretation(problem,interpretation); 250 find interpretation(problem,interpretation);
246 PartialInterpretation.openWorldElements(interpretation,element); 251 PartialInterpretation.openWorldElements(interpretation,element);
247 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find mustInstanceOfPayload_class(problem,interpretation,element);
250 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 252 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
253 neg find mustInstanceOfPayload_class(problem,interpretation,element);
251 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 254 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
255 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
256 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
252 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation); 257 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
253 neg find isPrimitive(element); 258 neg find isPrimitive(element);
254} or 259} or
@@ -276,333 +281,377 @@ private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretati
276{ 281{
277 find interpretation(problem,interpretation); 282 find interpretation(problem,interpretation);
278 PartialInterpretation.newElements(interpretation,element); 283 PartialInterpretation.newElements(interpretation,element);
279 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
280 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
281 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
282 neg find mustInstanceOfPayload_class(problem,interpretation,element);
283 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
284 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 284 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
285 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 285 neg find mustInstanceOfPayload_class(problem,interpretation,element);
286 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
286 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 287 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
288 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
289 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
290 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
287 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation); 291 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
288 neg find isPrimitive(element); 292 neg find isPrimitive(element);
289} or { 293} or {
290 find interpretation(problem,interpretation); 294 find interpretation(problem,interpretation);
291 PartialInterpretation.openWorldElements(interpretation,element); 295 PartialInterpretation.openWorldElements(interpretation,element);
292 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
293 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
294 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
295 neg find mustInstanceOfPayload_class(problem,interpretation,element);
296 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
297 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 296 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
298 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 297 neg find mustInstanceOfPayload_class(problem,interpretation,element);
298 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
299 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 299 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
300 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
301 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
302 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
300 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation); 303 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
301 neg find isPrimitive(element); 304 neg find isPrimitive(element);
302} or 305} or
303{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); } 306{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
304/** 307/**
305 * An element must be an instance of type "CubeSat3U class". 308 * An element must be an instance of type "CommSubsystem class".
306 */ 309 */
307private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 310private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
308 Type.name(type,"CubeSat3U class"); 311 Type.name(type,"CommSubsystem class");
309 find directInstanceOf(problem,interpretation,element,type); 312 find directInstanceOf(problem,interpretation,element,type);
310} 313}
311private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) { 314private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
312 find interpretation(problem,interpretation); 315 find interpretation(problem,interpretation);
313 PartialInterpretation.scopes(interpretation,scope); 316 PartialInterpretation.scopes(interpretation,scope);
314 Scope.targetTypeInterpretation(scope,typeInterpretation); 317 Scope.targetTypeInterpretation(scope,typeInterpretation);
315 Scope.maxNewElements(scope,0); 318 Scope.maxNewElements(scope,0);
316 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 319 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
317 Type.name(type,"CubeSat3U class"); 320 Type.name(type,"CommSubsystem class");
318} 321}
319 322
320/** 323/**
321 * An element may be an instance of type "CubeSat3U class". 324 * An element may be an instance of type "CommSubsystem class".
322 */ 325 */
323private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 326private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
324{ 327{
325 find interpretation(problem,interpretation); 328 find interpretation(problem,interpretation);
326 PartialInterpretation.newElements(interpretation,element); 329 PartialInterpretation.newElements(interpretation,element);
327 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
328 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
329 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
330 neg find mustInstanceOfPayload_class(problem,interpretation,element);
331 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 330 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
331 neg find mustInstanceOfPayload_class(problem,interpretation,element);
332 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 332 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
333 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation); 334 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
335 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
335 neg find isPrimitive(element); 336 neg find isPrimitive(element);
336} or { 337} or {
337 find interpretation(problem,interpretation); 338 find interpretation(problem,interpretation);
338 PartialInterpretation.openWorldElements(interpretation,element); 339 PartialInterpretation.openWorldElements(interpretation,element);
339 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
340 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
341 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
342 neg find mustInstanceOfPayload_class(problem,interpretation,element);
343 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 340 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
341 neg find mustInstanceOfPayload_class(problem,interpretation,element);
344 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 342 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
345 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 343 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
346 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation); 344 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
345 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
347 neg find isPrimitive(element); 346 neg find isPrimitive(element);
348} or 347} or
349{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); } 348{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
350/** 349/**
351 * An element must be an instance of type "CubeSat6U class". 350 * An element must be an instance of type "DirectedCommunicationLink class".
352 */ 351 */
353private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 352private pattern mustInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
354 Type.name(type,"CubeSat6U class"); 353 Type.name(type,"DirectedCommunicationLink class");
355 find directInstanceOf(problem,interpretation,element,type); 354 find directInstanceOf(problem,interpretation,element,type);
356} 355}
357private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) { 356private pattern scopeDisallowsNewDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
358 find interpretation(problem,interpretation); 357 find interpretation(problem,interpretation);
359 PartialInterpretation.scopes(interpretation,scope); 358 PartialInterpretation.scopes(interpretation,scope);
360 Scope.targetTypeInterpretation(scope,typeInterpretation); 359 Scope.targetTypeInterpretation(scope,typeInterpretation);
361 Scope.maxNewElements(scope,0); 360 Scope.maxNewElements(scope,0);
362 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 361 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
363 Type.name(type,"CubeSat6U class"); 362 Type.name(type,"DirectedCommunicationLink class");
364} 363}
365 364
366/** 365/**
367 * An element may be an instance of type "CubeSat6U class". 366 * An element may be an instance of type "DirectedCommunicationLink class".
368 */ 367 */
369private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 368private pattern mayInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
370{ 369{
371 find interpretation(problem,interpretation); 370 find interpretation(problem,interpretation);
372 PartialInterpretation.newElements(interpretation,element); 371 PartialInterpretation.newElements(interpretation,element);
373 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
374 neg find mustInstanceOfPayload_class(problem,interpretation,element); 372 neg find mustInstanceOfPayload_class(problem,interpretation,element);
375 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
376 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
377 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
378 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 373 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
379 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 374 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
380 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation); 375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation);
381 neg find isPrimitive(element); 377 neg find isPrimitive(element);
382} or { 378} or {
383 find interpretation(problem,interpretation); 379 find interpretation(problem,interpretation);
384 PartialInterpretation.openWorldElements(interpretation,element); 380 PartialInterpretation.openWorldElements(interpretation,element);
385 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
386 neg find mustInstanceOfPayload_class(problem,interpretation,element); 381 neg find mustInstanceOfPayload_class(problem,interpretation,element);
387 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
388 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
389 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
390 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 382 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
391 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 383 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
392 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation); 384 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
385 neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation);
393 neg find isPrimitive(element); 386 neg find isPrimitive(element);
394} or 387} or
395{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); } 388{ find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); }
396/** 389/**
397 * An element must be an instance of type "SmallSat class". 390 * An element must be an instance of type "Payload class".
398 */ 391 */
399private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 392private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
400 Type.name(type,"SmallSat class"); 393 Type.name(type,"Payload class");
401 find directInstanceOf(problem,interpretation,element,type); 394 find directInstanceOf(problem,interpretation,element,type);
402} 395}
403private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) { 396private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
404 find interpretation(problem,interpretation); 397 find interpretation(problem,interpretation);
405 PartialInterpretation.scopes(interpretation,scope); 398 PartialInterpretation.scopes(interpretation,scope);
406 Scope.targetTypeInterpretation(scope,typeInterpretation); 399 Scope.targetTypeInterpretation(scope,typeInterpretation);
407 Scope.maxNewElements(scope,0); 400 Scope.maxNewElements(scope,0);
408 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 401 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
409 Type.name(type,"SmallSat class"); 402 Type.name(type,"Payload class");
410} 403}
411 404
412/** 405/**
413 * An element may be an instance of type "SmallSat class". 406 * An element may be an instance of type "Payload class".
414 */ 407 */
415private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 408private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
416{ 409{
417 find interpretation(problem,interpretation); 410 find interpretation(problem,interpretation);
418 PartialInterpretation.newElements(interpretation,element); 411 PartialInterpretation.newElements(interpretation,element);
419 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
420 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
421 neg find mustInstanceOfPayload_class(problem,interpretation,element);
422 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
423 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 412 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
424 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 413 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
425 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
426 neg find scopeDisallowsNewSmallSat_class(problem, interpretation); 415 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
416 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
417 neg find scopeDisallowsNewPayload_class(problem, interpretation);
427 neg find isPrimitive(element); 418 neg find isPrimitive(element);
428} or { 419} or {
429 find interpretation(problem,interpretation); 420 find interpretation(problem,interpretation);
430 PartialInterpretation.openWorldElements(interpretation,element); 421 PartialInterpretation.openWorldElements(interpretation,element);
431 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
432 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
433 neg find mustInstanceOfPayload_class(problem,interpretation,element);
434 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
435 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 422 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
436 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 423 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
437 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 424 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
438 neg find scopeDisallowsNewSmallSat_class(problem, interpretation); 425 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
426 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
427 neg find scopeDisallowsNewPayload_class(problem, interpretation);
439 neg find isPrimitive(element); 428 neg find isPrimitive(element);
440} or 429} or
441{ find mustInstanceOfSmallSat_class(problem,interpretation,element); } 430{ find mustInstanceOfPayload_class(problem,interpretation,element); }
442/** 431/**
443 * An element must be an instance of type "CommSubsystem class". 432 * An element must be an instance of type "InterferometryPayload class".
444 */ 433 */
445private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 434private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
446 Type.name(type,"CommSubsystem class"); 435 Type.name(type,"InterferometryPayload class");
447 find directInstanceOf(problem,interpretation,element,type); 436 find directInstanceOf(problem,interpretation,element,type);
448} 437}
449private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) { 438private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
450 find interpretation(problem,interpretation); 439 find interpretation(problem,interpretation);
451 PartialInterpretation.scopes(interpretation,scope); 440 PartialInterpretation.scopes(interpretation,scope);
452 Scope.targetTypeInterpretation(scope,typeInterpretation); 441 Scope.targetTypeInterpretation(scope,typeInterpretation);
453 Scope.maxNewElements(scope,0); 442 Scope.maxNewElements(scope,0);
454 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 443 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
455 Type.name(type,"CommSubsystem class"); 444 Type.name(type,"InterferometryPayload class");
456} 445}
457 446
458/** 447/**
459 * An element may be an instance of type "CommSubsystem class". 448 * An element may be an instance of type "InterferometryPayload class".
460 */ 449 */
461private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 450private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
462{ 451{
463 find interpretation(problem,interpretation); 452 find interpretation(problem,interpretation);
464 PartialInterpretation.newElements(interpretation,element); 453 PartialInterpretation.newElements(interpretation,element);
465 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
466 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
467 neg find mustInstanceOfPayload_class(problem,interpretation,element);
468 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 454 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
469 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 455 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
470 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation); 456 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
471 neg find isPrimitive(element); 459 neg find isPrimitive(element);
472} or { 460} or {
473 find interpretation(problem,interpretation); 461 find interpretation(problem,interpretation);
474 PartialInterpretation.openWorldElements(interpretation,element); 462 PartialInterpretation.openWorldElements(interpretation,element);
463 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
464 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
475 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 465 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
476 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); 466 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
467 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
468 neg find isPrimitive(element);
469} or
470{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
471/**
472 * An element must be an instance of type "CubeSat3U class".
473 */
474private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
475 Type.name(type,"CubeSat3U class");
476 find directInstanceOf(problem,interpretation,element,type);
477}
478private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
479 find interpretation(problem,interpretation);
480 PartialInterpretation.scopes(interpretation,scope);
481 Scope.targetTypeInterpretation(scope,typeInterpretation);
482 Scope.maxNewElements(scope,0);
483 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
484 Type.name(type,"CubeSat3U class");
485}
486
487/**
488 * An element may be an instance of type "CubeSat3U class".
489 */
490private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
491{
492 find interpretation(problem,interpretation);
493 PartialInterpretation.newElements(interpretation,element);
494 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
477 neg find mustInstanceOfPayload_class(problem,interpretation,element); 495 neg find mustInstanceOfPayload_class(problem,interpretation,element);
496 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
499 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
500 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
501 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
502 neg find isPrimitive(element);
503} or {
504 find interpretation(problem,interpretation);
505 PartialInterpretation.openWorldElements(interpretation,element);
478 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 506 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
507 neg find mustInstanceOfPayload_class(problem,interpretation,element);
508 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
479 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 509 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
480 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation); 510 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
511 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
512 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
513 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
481 neg find isPrimitive(element); 514 neg find isPrimitive(element);
482} or 515} or
483{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); } 516{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
484/** 517/**
485 * An element must be an instance of type "DirectedCommunicationLink class". 518 * An element must be an instance of type "CubeSat6U class".
486 */ 519 */
487private pattern mustInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 520private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
488 Type.name(type,"DirectedCommunicationLink class"); 521 Type.name(type,"CubeSat6U class");
489 find directInstanceOf(problem,interpretation,element,type); 522 find directInstanceOf(problem,interpretation,element,type);
490} 523}
491private pattern scopeDisallowsNewDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { 524private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
492 find interpretation(problem,interpretation); 525 find interpretation(problem,interpretation);
493 PartialInterpretation.scopes(interpretation,scope); 526 PartialInterpretation.scopes(interpretation,scope);
494 Scope.targetTypeInterpretation(scope,typeInterpretation); 527 Scope.targetTypeInterpretation(scope,typeInterpretation);
495 Scope.maxNewElements(scope,0); 528 Scope.maxNewElements(scope,0);
496 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 529 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
497 Type.name(type,"DirectedCommunicationLink class"); 530 Type.name(type,"CubeSat6U class");
498} 531}
499 532
500/** 533/**
501 * An element may be an instance of type "DirectedCommunicationLink class". 534 * An element may be an instance of type "CubeSat6U class".
502 */ 535 */
503private pattern mayInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 536private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
504{ 537{
505 find interpretation(problem,interpretation); 538 find interpretation(problem,interpretation);
506 PartialInterpretation.newElements(interpretation,element); 539 PartialInterpretation.newElements(interpretation,element);
507 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 540 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
508 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
509 neg find mustInstanceOfPayload_class(problem,interpretation,element); 541 neg find mustInstanceOfPayload_class(problem,interpretation,element);
510 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 542 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
511 neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation); 543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
545 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
546 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
547 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
512 neg find isPrimitive(element); 548 neg find isPrimitive(element);
513} or { 549} or {
514 find interpretation(problem,interpretation); 550 find interpretation(problem,interpretation);
515 PartialInterpretation.openWorldElements(interpretation,element); 551 PartialInterpretation.openWorldElements(interpretation,element);
516 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 552 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
517 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
518 neg find mustInstanceOfPayload_class(problem,interpretation,element); 553 neg find mustInstanceOfPayload_class(problem,interpretation,element);
519 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 554 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
520 neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation); 555 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
556 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
557 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
558 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
559 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
521 neg find isPrimitive(element); 560 neg find isPrimitive(element);
522} or 561} or
523{ find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); } 562{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
524/** 563/**
525 * An element must be an instance of type "Payload class". 564 * An element must be an instance of type "SmallSat class".
526 */ 565 */
527private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 566private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
528 Type.name(type,"Payload class"); 567 Type.name(type,"SmallSat class");
529 find directInstanceOf(problem,interpretation,element,type); 568 find directInstanceOf(problem,interpretation,element,type);
530} 569}
531private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) { 570private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
532 find interpretation(problem,interpretation); 571 find interpretation(problem,interpretation);
533 PartialInterpretation.scopes(interpretation,scope); 572 PartialInterpretation.scopes(interpretation,scope);
534 Scope.targetTypeInterpretation(scope,typeInterpretation); 573 Scope.targetTypeInterpretation(scope,typeInterpretation);
535 Scope.maxNewElements(scope,0); 574 Scope.maxNewElements(scope,0);
536 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 575 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
537 Type.name(type,"Payload class"); 576 Type.name(type,"SmallSat class");
538} 577}
539 578
540/** 579/**
541 * An element may be an instance of type "Payload class". 580 * An element may be an instance of type "SmallSat class".
542 */ 581 */
543private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 582private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
544{ 583{
545 find interpretation(problem,interpretation); 584 find interpretation(problem,interpretation);
546 PartialInterpretation.newElements(interpretation,element); 585 PartialInterpretation.newElements(interpretation,element);
547 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
548 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
549 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
550 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 586 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
587 neg find mustInstanceOfPayload_class(problem,interpretation,element);
588 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
589 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
551 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 590 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
552 neg find scopeDisallowsNewPayload_class(problem, interpretation); 591 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
592 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
553 neg find isPrimitive(element); 593 neg find isPrimitive(element);
554} or { 594} or {
555 find interpretation(problem,interpretation); 595 find interpretation(problem,interpretation);
556 PartialInterpretation.openWorldElements(interpretation,element); 596 PartialInterpretation.openWorldElements(interpretation,element);
557 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
558 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
559 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
560 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 597 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
598 neg find mustInstanceOfPayload_class(problem,interpretation,element);
599 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
600 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
561 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 601 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
562 neg find scopeDisallowsNewPayload_class(problem, interpretation); 602 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
603 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
563 neg find isPrimitive(element); 604 neg find isPrimitive(element);
564} or 605} or
565{ find mustInstanceOfPayload_class(problem,interpretation,element); } 606{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
566/** 607/**
567 * An element must be an instance of type "InterferometryPayload class". 608 * An element must be an instance of type "CubeSat class".
568 */ 609 */
569private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 610private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
570 Type.name(type,"InterferometryPayload class"); 611 Type.name(type,"CubeSat class");
571 find directInstanceOf(problem,interpretation,element,type); 612 find directInstanceOf(problem,interpretation,element,type);
572} 613}
573private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) { 614private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
574 find interpretation(problem,interpretation); 615 find interpretation(problem,interpretation);
575 PartialInterpretation.scopes(interpretation,scope); 616 PartialInterpretation.scopes(interpretation,scope);
576 Scope.targetTypeInterpretation(scope,typeInterpretation); 617 Scope.targetTypeInterpretation(scope,typeInterpretation);
577 Scope.maxNewElements(scope,0); 618 Scope.maxNewElements(scope,0);
578 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 619 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
579 Type.name(type,"InterferometryPayload class"); 620 Type.name(type,"CubeSat class");
580} 621}
581 622
582/** 623/**
583 * An element may be an instance of type "InterferometryPayload class". 624 * An element may be an instance of type "CubeSat class".
584 */ 625 */
585private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 626private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
586{ 627{
587 find interpretation(problem,interpretation); 628 find interpretation(problem,interpretation);
588 PartialInterpretation.newElements(interpretation,element); 629 PartialInterpretation.newElements(interpretation,element);
589 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
590 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
591 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 630 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
592 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 632 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
593 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation); 633 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
634 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
635 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
636 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
637 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
638 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
594 neg find isPrimitive(element); 639 neg find isPrimitive(element);
595} or { 640} or {
596 find interpretation(problem,interpretation); 641 find interpretation(problem,interpretation);
597 PartialInterpretation.openWorldElements(interpretation,element); 642 PartialInterpretation.openWorldElements(interpretation,element);
598 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
599 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
600 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 643 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
644 neg find mustInstanceOfPayload_class(problem,interpretation,element);
601 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 645 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
602 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation); 646 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
647 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
648 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
649 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
650 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
651 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
603 neg find isPrimitive(element); 652 neg find isPrimitive(element);
604} or 653} or
605{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); } 654{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
606/** 655/**
607 * An element must be an instance of type "TransceiverBand enum". 656 * An element must be an instance of type "TransceiverBand enum".
608 */ 657 */
@@ -646,6 +695,27 @@ private pattern scopeDisallowsNewAntennaGain_enum(problem:LogicProblem, interpre
646private pattern mayInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 695private pattern mayInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
647{ find mustInstanceOfAntennaGain_enum(problem,interpretation,element); } 696{ find mustInstanceOfAntennaGain_enum(problem,interpretation,element); }
648/** 697/**
698 * An element must be an instance of type "SpacecraftKind enum".
699 */
700private pattern mustInstanceOfSpacecraftKind_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
701 Type.name(type,"SpacecraftKind enum");
702 find directInstanceOf(problem,interpretation,element,type);
703}
704private pattern scopeDisallowsNewSpacecraftKind_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
705 find interpretation(problem,interpretation);
706 PartialInterpretation.scopes(interpretation,scope);
707 Scope.targetTypeInterpretation(scope,typeInterpretation);
708 Scope.maxNewElements(scope,0);
709 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
710 Type.name(type,"SpacecraftKind enum");
711}
712
713/**
714 * An element may be an instance of type "SpacecraftKind enum".
715 */
716private pattern mayInstanceOfSpacecraftKind_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
717{ find mustInstanceOfSpacecraftKind_enum(problem,interpretation,element); }
718/**
649 * An element must be an instance of type "ConstellationMission class DefinedPart". 719 * An element must be an instance of type "ConstellationMission class DefinedPart".
650 */ 720 */
651private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 721private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
@@ -689,20 +759,20 @@ private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:Lo
689{ 759{
690 find interpretation(problem,interpretation); 760 find interpretation(problem,interpretation);
691 PartialInterpretation.newElements(interpretation,element); 761 PartialInterpretation.newElements(interpretation,element);
692 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
693 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
694 neg find mustInstanceOfPayload_class(problem,interpretation,element);
695 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 762 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
763 neg find mustInstanceOfPayload_class(problem,interpretation,element);
764 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
696 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); 766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
697 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation); 767 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
698 neg find isPrimitive(element); 768 neg find isPrimitive(element);
699} or { 769} or {
700 find interpretation(problem,interpretation); 770 find interpretation(problem,interpretation);
701 PartialInterpretation.openWorldElements(interpretation,element); 771 PartialInterpretation.openWorldElements(interpretation,element);
702 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
704 neg find mustInstanceOfPayload_class(problem,interpretation,element);
705 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 772 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
773 neg find mustInstanceOfPayload_class(problem,interpretation,element);
774 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
775 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
706 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); 776 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
707 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation); 777 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
708 neg find isPrimitive(element); 778 neg find isPrimitive(element);
@@ -752,19 +822,19 @@ private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:L
752{ 822{
753 find interpretation(problem,interpretation); 823 find interpretation(problem,interpretation);
754 PartialInterpretation.newElements(interpretation,element); 824 PartialInterpretation.newElements(interpretation,element);
755 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
756 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
757 neg find mustInstanceOfPayload_class(problem,interpretation,element);
758 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 825 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
826 neg find mustInstanceOfPayload_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
759 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation); 829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
760 neg find isPrimitive(element); 830 neg find isPrimitive(element);
761} or { 831} or {
762 find interpretation(problem,interpretation); 832 find interpretation(problem,interpretation);
763 PartialInterpretation.openWorldElements(interpretation,element); 833 PartialInterpretation.openWorldElements(interpretation,element);
764 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
765 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
766 neg find mustInstanceOfPayload_class(problem,interpretation,element);
767 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 834 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
835 neg find mustInstanceOfPayload_class(problem,interpretation,element);
836 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
837 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
768 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation); 838 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
769 neg find isPrimitive(element); 839 neg find isPrimitive(element);
770} or 840} or
@@ -813,23 +883,23 @@ private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:Lo
813{ 883{
814 find interpretation(problem,interpretation); 884 find interpretation(problem,interpretation);
815 PartialInterpretation.newElements(interpretation,element); 885 PartialInterpretation.newElements(interpretation,element);
816 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
817 neg find mustInstanceOfPayload_class(problem,interpretation,element);
818 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 886 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
819 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); 887 neg find mustInstanceOfPayload_class(problem,interpretation,element);
820 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 888 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
821 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 889 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
890 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
891 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
822 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation); 892 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
823 neg find isPrimitive(element); 893 neg find isPrimitive(element);
824} or { 894} or {
825 find interpretation(problem,interpretation); 895 find interpretation(problem,interpretation);
826 PartialInterpretation.openWorldElements(interpretation,element); 896 PartialInterpretation.openWorldElements(interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 897 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
830 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); 898 neg find mustInstanceOfPayload_class(problem,interpretation,element);
831 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 899 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
832 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 900 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
901 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
902 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
833 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation); 903 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
834 neg find isPrimitive(element); 904 neg find isPrimitive(element);
835} or 905} or
@@ -878,21 +948,21 @@ private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:Lo
878{ 948{
879 find interpretation(problem,interpretation); 949 find interpretation(problem,interpretation);
880 PartialInterpretation.newElements(interpretation,element); 950 PartialInterpretation.newElements(interpretation,element);
881 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
882 neg find mustInstanceOfPayload_class(problem,interpretation,element);
883 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 951 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
884 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); 952 neg find mustInstanceOfPayload_class(problem,interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
954 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
955 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
886 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation); 956 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
887 neg find isPrimitive(element); 957 neg find isPrimitive(element);
888} or { 958} or {
889 find interpretation(problem,interpretation); 959 find interpretation(problem,interpretation);
890 PartialInterpretation.openWorldElements(interpretation,element); 960 PartialInterpretation.openWorldElements(interpretation,element);
891 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
892 neg find mustInstanceOfPayload_class(problem,interpretation,element);
893 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 961 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
894 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); 962 neg find mustInstanceOfPayload_class(problem,interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 963 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
964 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
965 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
896 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation); 966 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
897 neg find isPrimitive(element); 967 neg find isPrimitive(element);
898} or 968} or
@@ -941,19 +1011,19 @@ private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProb
941{ 1011{
942 find interpretation(problem,interpretation); 1012 find interpretation(problem,interpretation);
943 PartialInterpretation.newElements(interpretation,element); 1013 PartialInterpretation.newElements(interpretation,element);
944 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
945 neg find mustInstanceOfPayload_class(problem,interpretation,element);
946 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 1014 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
1015 neg find mustInstanceOfPayload_class(problem,interpretation,element);
947 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 1016 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1017 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
948 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation); 1018 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
949 neg find isPrimitive(element); 1019 neg find isPrimitive(element);
950} or { 1020} or {
951 find interpretation(problem,interpretation); 1021 find interpretation(problem,interpretation);
952 PartialInterpretation.openWorldElements(interpretation,element); 1022 PartialInterpretation.openWorldElements(interpretation,element);
953 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
954 neg find mustInstanceOfPayload_class(problem,interpretation,element);
955 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 1023 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
956 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 1025 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1026 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
957 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation); 1027 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
958 neg find isPrimitive(element); 1028 neg find isPrimitive(element);
959} or 1029} or
@@ -1233,6 +1303,24 @@ private pattern mayInRelationtarget_reference_DirectedCommunicationLink(
1233 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,source,target); 1303 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,source,target);
1234} 1304}
1235/** 1305/**
1306 * Matcher for detecting tuples t where []kind attribute Spacecraft(source,target)
1307 */
1308 private pattern mustInRelationkind_attribute_Spacecraft(
1309 problem:LogicProblem, interpretation:PartialInterpretation,
1310 source: DefinedElement, target:DefinedElement)
1311 {
1312 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(problem,interpretation,source,target);
1313 }
1314/**
1315 * Matcher for detecting tuples t where []kind attribute Spacecraft(source,target)
1316 */
1317 private pattern mayInRelationkind_attribute_Spacecraft(
1318 problem:LogicProblem, interpretation:PartialInterpretation,
1319 source: DefinedElement, target:DefinedElement)
1320 {
1321 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(problem,interpretation,source,target);
1322 }
1323/**
1236 * Matcher for detecting tuples t where []band attribute CommSubsystem(source,target) 1324 * Matcher for detecting tuples t where []band attribute CommSubsystem(source,target)
1237 */ 1325 */
1238private pattern mustInRelationband_attribute_CommSubsystem( 1326private pattern mustInRelationband_attribute_CommSubsystem(
@@ -1317,15 +1405,15 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1317 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); 1405 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1318 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); 1406 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1319 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0); 1407 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0);
1320 var_virtual0 == var_Link; 1408 find mustEquivalent(problem, interpretation, var_virtual0, var_Link);
1321 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 1409 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1322 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 1410 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1323 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 1411 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1324 var_virtual1 == var_SourceComm; 1412 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm);
1325 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement); 1413 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement);
1326 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2); 1414 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2);
1327 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 1415 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1328 var_virtual2 == var_SourceComm; 1416 find mustEquivalent(problem, interpretation, var_virtual2, var_SourceComm);
1329 neg find mayEquivalent(problem, interpretation, var_Element, var_SourceElement); 1417 neg find mayEquivalent(problem, interpretation, var_Element, var_SourceElement);
1330} 1418}
1331private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( 1419private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
@@ -1347,7 +1435,7 @@ private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satelli
1347 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2); 1435 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2);
1348 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 1436 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1349 find mayEquivalent(problem, interpretation, var_virtual2, var_SourceComm); 1437 find mayEquivalent(problem, interpretation, var_virtual2, var_SourceComm);
1350 var_Element != var_SourceElement; 1438 neg find mustEquivalent(problem, interpretation, var_Element, var_SourceElement);
1351} 1439}
1352private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( 1440private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1353 problem:LogicProblem, interpretation:PartialInterpretation, 1441 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1359,16 +1447,16 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1359 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); 1447 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1360 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); 1448 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1361 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0); 1449 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0);
1362 var_virtual0 == var_Link; 1450 find mustEquivalent(problem, interpretation, var_virtual0, var_Link);
1363 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 1451 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1364 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 1452 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1365 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 1453 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1366 var_virtual1 == var_SourceComm; 1454 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm);
1367 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement); 1455 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement);
1368 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2); 1456 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2);
1369 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 1457 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1370 var_virtual2 == var_SourceComm; 1458 find mustEquivalent(problem, interpretation, var_virtual2, var_SourceComm);
1371 var_Element != var_SourceElement; 1459 neg find mustEquivalent(problem, interpretation, var_Element, var_SourceElement);
1372} 1460}
1373// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads 1461// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1374private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( 1462private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
@@ -1422,7 +1510,7 @@ private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satelli
1422 // Mission is exported 1510 // Mission is exported
1423 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); 1511 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1424 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); 1512 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1425 var_Spacecraft1 != var_Spacecraft2; 1513 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1426} 1514}
1427private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( 1515private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1428 problem:LogicProblem, interpretation:PartialInterpretation, 1516 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1433,7 +1521,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1433 // Mission is exported 1521 // Mission is exported
1434 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); 1522 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1435 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); 1523 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1436 var_Spacecraft1 != var_Spacecraft2; 1524 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1437} 1525}
1438// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload 1526// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1439private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( 1527private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
@@ -1448,11 +1536,11 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1448 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); 1536 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1449 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); 1537 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1450 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); 1538 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1451 var_virtual0 == var_Spacecraft; 1539 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1452 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); 1540 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1453 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); 1541 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1454 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1); 1542 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1455 var_virtual1 == var_Payload; 1543 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1456 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); 1544 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1457} 1545}
1458private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( 1546private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
@@ -1486,11 +1574,11 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1486 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); 1574 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1487 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); 1575 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1488 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); 1576 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1489 var_virtual0 == var_Spacecraft; 1577 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1490 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); 1578 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1491 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); 1579 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1492 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1); 1580 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1493 var_virtual1 == var_Payload; 1581 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1494 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); 1582 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1495} 1583}
1496// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation 1584// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
@@ -1504,11 +1592,11 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1504 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); 1592 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1505 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); 1593 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1506 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); 1594 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1507 var_virtual0 == var_GroundStation; 1595 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1508 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); 1596 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1509 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); 1597 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1510 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); 1598 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1511 var_virtual1 == var_Spacecraft; 1599 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1512 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); 1600 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1513} 1601}
1514private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( 1602private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
@@ -1538,13 +1626,336 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1538 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); 1626 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); 1627 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1540 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); 1628 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1541 var_virtual0 == var_GroundStation; 1629 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1542 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); 1630 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); 1631 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1544 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); 1632 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1545 var_virtual1 == var_Spacecraft; 1633 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1546 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); 1634 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1547} 1635}
1636// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1637private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1638 problem:LogicProblem, interpretation:PartialInterpretation,
1639 var_Spacecraft)
1640{
1641 find interpretation(problem,interpretation);
1642 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1643 // Spacecraft is exported
1644 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1645 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1646 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1647 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1648 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1650 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1651 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1652 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1653}
1654private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1655 problem:LogicProblem, interpretation:PartialInterpretation,
1656 var_Spacecraft)
1657{
1658 find interpretation(problem,interpretation);
1659 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1660 // Spacecraft is exported
1661 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1662 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1663 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1664 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1665 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1667 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1668 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1669 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1670}
1671private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1672 problem:LogicProblem, interpretation:PartialInterpretation,
1673 var_Spacecraft)
1674{
1675 find interpretation(problem,interpretation);
1676 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1677 // Spacecraft is exported
1678 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1679 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1680 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1681 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1682 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1683 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1684 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1685 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1686 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1687}
1688// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1689private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1690 problem:LogicProblem, interpretation:PartialInterpretation,
1691 var_From, var_To)
1692{
1693 find interpretation(problem,interpretation);
1694 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1695 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1696 // From is exported
1697 // To is exported
1698 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1699}
1700private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1701 problem:LogicProblem, interpretation:PartialInterpretation,
1702 var_From, var_To)
1703{
1704 find interpretation(problem,interpretation);
1705 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1706 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1707 // From is exported
1708 // To is exported
1709 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1710}
1711private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1712 problem:LogicProblem, interpretation:PartialInterpretation,
1713 var_From, var_To)
1714{
1715 find interpretation(problem,interpretation);
1716 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1717 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1718 // From is exported
1719 // To is exported
1720 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1721}
1722// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1723private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1724 problem:LogicProblem, interpretation:PartialInterpretation,
1725 var_From, var_To)
1726{
1727 find interpretation(problem,interpretation);
1728 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1729 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1730 // From is exported
1731 // To is exported
1732 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0);
1733 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1734}or{
1735 find interpretation(problem,interpretation);
1736 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1737 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1738 // From is exported
1739 // To is exported
1740 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
1741 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,var_virtual0);
1742 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1743}or{
1744 find interpretation(problem,interpretation);
1745 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1746 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1747 // From is exported
1748 // To is exported
1749 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0);
1750 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1751 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1752}
1753private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1754 problem:LogicProblem, interpretation:PartialInterpretation,
1755 var_From, var_To)
1756{
1757 find interpretation(problem,interpretation);
1758 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1759 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1760 // From is exported
1761 // To is exported
1762 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0);
1763 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1764}or{
1765 find interpretation(problem,interpretation);
1766 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1767 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1768 // From is exported
1769 // To is exported
1770 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
1771 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,var_virtual0);
1772 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1773}or{
1774 find interpretation(problem,interpretation);
1775 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1776 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1777 // From is exported
1778 // To is exported
1779 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0);
1780 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1781 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1782}
1783private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1784 problem:LogicProblem, interpretation:PartialInterpretation,
1785 var_From, var_To)
1786{
1787 find interpretation(problem,interpretation);
1788 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1789 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1790 // From is exported
1791 // To is exported
1792 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0);
1793 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1794}or{
1795 find interpretation(problem,interpretation);
1796 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1797 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1798 // From is exported
1799 // To is exported
1800 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
1801 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,var_virtual0);
1802 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1803}or{
1804 find interpretation(problem,interpretation);
1805 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1806 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1807 // From is exported
1808 // To is exported
1809 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0);
1810 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1811 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1812}
1813private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1814 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1815}
1816private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1817 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1818}
1819private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1820 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1821}
1822// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1823private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1824 problem:LogicProblem, interpretation:PartialInterpretation,
1825 var_From, var_To, var_Band)
1826{
1827 find interpretation(problem,interpretation);
1828 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1829 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1830 // type constraint is enforced by construction
1831 // From is exported
1832 // To is exported
1833 // Band is exported
1834 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1835 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1836 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1837 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual0,var_virtual1);
1838 // type constraint is enforced by construction
1839 find mustEquivalent(problem, interpretation, var_virtual1, var_Band);
1840 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1841 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual2);
1842 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1843 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual2,var_virtual3);
1844 // type constraint is enforced by construction
1845 find mustEquivalent(problem, interpretation, var_virtual3, var_Band);
1846 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1847 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual4);
1848 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual4);
1849 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual4,var_virtual5);
1850 // type constraint is enforced by construction
1851 find mustEquivalent(problem, interpretation, var_virtual5, var_Gain);
1852 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1853 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual6);
1854 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual6);
1855 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual6,var_virtual7);
1856 // type constraint is enforced by construction
1857 find mustEquivalent(problem, interpretation, var_virtual7, var_Gain);
1858}
1859private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1860 problem:LogicProblem, interpretation:PartialInterpretation,
1861 var_From, var_To, var_Band)
1862{
1863 find interpretation(problem,interpretation);
1864 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1865 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1866 // type constraint is enforced by construction
1867 // From is exported
1868 // To is exported
1869 // Band is exported
1870 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1871 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1872 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1873 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual0,var_virtual1);
1874 // type constraint is enforced by construction
1875 find mayEquivalent(problem, interpretation, var_virtual1, var_Band);
1876 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1877 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual2);
1878 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1879 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual2,var_virtual3);
1880 // type constraint is enforced by construction
1881 find mayEquivalent(problem, interpretation, var_virtual3, var_Band);
1882 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1883 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual4);
1884 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual4);
1885 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual4,var_virtual5);
1886 // type constraint is enforced by construction
1887 find mayEquivalent(problem, interpretation, var_virtual5, var_Gain);
1888 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1889 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual6);
1890 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual6);
1891 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual6,var_virtual7);
1892 // type constraint is enforced by construction
1893 find mayEquivalent(problem, interpretation, var_virtual7, var_Gain);
1894}
1895private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1896 problem:LogicProblem, interpretation:PartialInterpretation,
1897 var_From, var_To, var_Band)
1898{
1899 find interpretation(problem,interpretation);
1900 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1901 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1902 // type constraint is enforced by construction
1903 // From is exported
1904 // To is exported
1905 // Band is exported
1906 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1907 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1908 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1909 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual0,var_virtual1);
1910 // type constraint is enforced by construction
1911 find mustEquivalent(problem, interpretation, var_virtual1, var_Band);
1912 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1913 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual2);
1914 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1915 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual2,var_virtual3);
1916 // type constraint is enforced by construction
1917 find mustEquivalent(problem, interpretation, var_virtual3, var_Band);
1918 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1919 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual4);
1920 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual4);
1921 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual4,var_virtual5);
1922 // type constraint is enforced by construction
1923 find mustEquivalent(problem, interpretation, var_virtual5, var_Gain);
1924 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1925 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual6);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual6);
1927 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual6,var_virtual7);
1928 // type constraint is enforced by construction
1929 find mustEquivalent(problem, interpretation, var_virtual7, var_Gain);
1930}
1931// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1932private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1933 problem:LogicProblem, interpretation:PartialInterpretation,
1934 var_Sat)
1935{
1936 find interpretation(problem,interpretation);
1937 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1938 // Sat is exported
1939 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1940}
1941private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1942 problem:LogicProblem, interpretation:PartialInterpretation,
1943 var_Sat)
1944{
1945 find interpretation(problem,interpretation);
1946 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1947 // Sat is exported
1948 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1949}
1950private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1548// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop 1959// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
1549private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( 1960private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
1550 problem:LogicProblem, interpretation:PartialInterpretation, 1961 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1620,19 +2031,19 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1620 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2031 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1621 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); 2032 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1622 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2033 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1623 var_virtual0 == var_SourceSubsystem; 2034 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1624 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2035 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1625 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2036 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1626 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2037 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1627 var_virtual1 == var_TargetSubsystem; 2038 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1628 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); 2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1629 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2); 2040 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2);
1630 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 2041 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1631 var_virtual2 == var_SourceSubsystem; 2042 find mustEquivalent(problem, interpretation, var_virtual2, var_SourceSubsystem);
1632 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); 2043 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1633 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); 2044 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
1634 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); 2045 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
1635 var_virtual3 == var_TargetSubsystem; 2046 find mustEquivalent(problem, interpretation, var_virtual3, var_TargetSubsystem);
1636} 2047}
1637private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( 2048private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
1638 problem:LogicProblem, interpretation:PartialInterpretation, 2049 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1672,19 +2083,19 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1672 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2083 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1673 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); 2084 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1674 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2085 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1675 var_virtual0 == var_SourceSubsystem; 2086 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1676 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2087 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1677 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2088 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1678 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2089 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1679 var_virtual1 == var_TargetSubsystem; 2090 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1680 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); 2091 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1681 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2); 2092 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2);
1682 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 2093 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1683 var_virtual2 == var_SourceSubsystem; 2094 find mustEquivalent(problem, interpretation, var_virtual2, var_SourceSubsystem);
1684 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); 2095 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1685 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); 2096 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
1686 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); 2097 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
1687 var_virtual3 == var_TargetSubsystem; 2098 find mustEquivalent(problem, interpretation, var_virtual3, var_TargetSubsystem);
1688} 2099}
1689private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { 2100private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
1690 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); 2101 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
@@ -1706,15 +2117,15 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1706 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2117 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1707 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); 2118 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1708 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2119 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1709 var_virtual0 == var_SourceSubsystem; 2120 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1710 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2121 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1711 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2122 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1712 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1713 var_virtual1 == var_TargetSubsystem; 2124 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1714 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); 2125 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1715 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); 2126 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1716 // type constraint is enforced by construction 2127 // type constraint is enforced by construction
1717 var_virtual2 == var_Band; 2128 find mustEquivalent(problem, interpretation, var_virtual2, var_Band);
1718 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band); 2129 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band);
1719} 2130}
1720private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( 2131private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
@@ -1748,15 +2159,15 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1748 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2159 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1749 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); 2160 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1750 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2161 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1751 var_virtual0 == var_SourceSubsystem; 2162 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1752 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2163 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1753 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2164 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1754 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2165 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1755 var_virtual1 == var_TargetSubsystem; 2166 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1756 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); 2167 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1757 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); 2168 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1758 // type constraint is enforced by construction 2169 // type constraint is enforced by construction
1759 var_virtual2 == var_Band; 2170 find mustEquivalent(problem, interpretation, var_virtual2, var_Band);
1760 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band); 2171 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band);
1761} 2172}
1762// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand 2173// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand
@@ -1772,7 +2183,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1772 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2183 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1773 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); 2184 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1774 // type constraint is enforced by construction 2185 // type constraint is enforced by construction
1775 var_virtual0 == var_Band; 2186 find mustEquivalent(problem, interpretation, var_virtual0, var_Band);
1776} 2187}
1777private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand( 2188private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(
1778 problem:LogicProblem, interpretation:PartialInterpretation, 2189 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1800,7 +2211,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1800 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2211 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1801 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); 2212 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1802 // type constraint is enforced by construction 2213 // type constraint is enforced by construction
1803 var_virtual0 == var_Band; 2214 find mustEquivalent(problem, interpretation, var_virtual0, var_Band);
1804} 2215}
1805// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain 2216// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain
1806private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain( 2217private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(
@@ -1813,15 +2224,15 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1813 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2224 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1814 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); 2225 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1815 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2226 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1816 var_virtual0 == var_SourceSubsystem; 2227 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1817 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2228 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1818 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2229 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1819 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2230 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1820 var_virtual1 == var_TargetSubsystem; 2231 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1821 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); 2232 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1822 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); 2233 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1823 // type constraint is enforced by construction 2234 // type constraint is enforced by construction
1824 var_virtual2 == var_Gain; 2235 find mustEquivalent(problem, interpretation, var_virtual2, var_Gain);
1825 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain); 2236 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain);
1826} 2237}
1827private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain( 2238private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(
@@ -1855,15 +2266,15 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1855 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2266 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1856 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); 2267 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1857 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2268 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1858 var_virtual0 == var_SourceSubsystem; 2269 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1859 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2270 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1860 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2271 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1861 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2272 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1862 var_virtual1 == var_TargetSubsystem; 2273 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1863 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); 2274 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1864 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); 2275 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1865 // type constraint is enforced by construction 2276 // type constraint is enforced by construction
1866 var_virtual2 == var_Gain; 2277 find mustEquivalent(problem, interpretation, var_virtual2, var_Gain);
1867 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain); 2278 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain);
1868} 2279}
1869// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain 2280// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain
@@ -1879,7 +2290,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2290 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1880 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); 2291 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1881 // type constraint is enforced by construction 2292 // type constraint is enforced by construction
1882 var_virtual0 == var_Gain; 2293 find mustEquivalent(problem, interpretation, var_virtual0, var_Gain);
1883} 2294}
1884private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain( 2295private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(
1885 problem:LogicProblem, interpretation:PartialInterpretation, 2296 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1907,7 +2318,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1907 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2318 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1908 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); 2319 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1909 // type constraint is enforced by construction 2320 // type constraint is enforced by construction
1910 var_virtual0 == var_Gain; 2321 find mustEquivalent(problem, interpretation, var_virtual0, var_Gain);
1911} 2322}
1912// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow 2323// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow
1913private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow( 2324private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(
@@ -1921,7 +2332,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1921 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2332 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1922 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2333 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1923 // type constraint is enforced by construction 2334 // type constraint is enforced by construction
1924 var_virtual1 == var_virtual0; 2335 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
1925 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm); 2336 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm);
1926} 2337}
1927private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow( 2338private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(
@@ -1949,7 +2360,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1949 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2360 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1950 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2361 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1951 // type constraint is enforced by construction 2362 // type constraint is enforced by construction
1952 var_virtual1 == var_virtual0; 2363 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
1953 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm); 2364 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm);
1954} 2365}
1955// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow 2366// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow
@@ -1964,7 +2375,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
1964 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2375 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1965 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2376 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1966 // type constraint is enforced by construction 2377 // type constraint is enforced by construction
1967 var_virtual1 == var_virtual0; 2378 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
1968} 2379}
1969private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow( 2380private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(
1970 problem:LogicProblem, interpretation:PartialInterpretation, 2381 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -1990,7 +2401,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
1990 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2401 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1991 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2402 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1992 // type constraint is enforced by construction 2403 // type constraint is enforced by construction
1993 var_virtual1 == var_virtual0; 2404 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
1994} 2405}
1995// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium 2406// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium
1996private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium( 2407private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(
@@ -2004,7 +2415,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
2004 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2415 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2005 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2416 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2006 // type constraint is enforced by construction 2417 // type constraint is enforced by construction
2007 var_virtual1 == var_virtual0; 2418 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2008 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm); 2419 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm);
2009} 2420}
2010private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium( 2421private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(
@@ -2032,7 +2443,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2032 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2033 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2444 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2034 // type constraint is enforced by construction 2445 // type constraint is enforced by construction
2035 var_virtual1 == var_virtual0; 2446 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2036 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm); 2447 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm);
2037} 2448}
2038// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium 2449// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium
@@ -2047,7 +2458,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
2047 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2458 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2048 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2459 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2049 // type constraint is enforced by construction 2460 // type constraint is enforced by construction
2050 var_virtual1 == var_virtual0; 2461 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2051} 2462}
2052private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium( 2463private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(
2053 problem:LogicProblem, interpretation:PartialInterpretation, 2464 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -2073,7 +2484,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2073 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2484 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2074 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2485 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2075 // type constraint is enforced by construction 2486 // type constraint is enforced by construction
2076 var_virtual1 == var_virtual0; 2487 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2077} 2488}
2078// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow 2489// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow
2079private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow( 2490private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(
@@ -2087,12 +2498,12 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2498 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2088 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2499 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2089 // type constraint is enforced by construction 2500 // type constraint is enforced by construction
2090 var_virtual1 == var_virtual0; 2501 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2091 var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); 2502 var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain);
2092 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2503 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2093 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3); 2504 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3);
2094 // type constraint is enforced by construction 2505 // type constraint is enforced by construction
2095 var_virtual3 == var_virtual2; 2506 find mustEquivalent(problem, interpretation, var_virtual3, var_virtual2);
2096} 2507}
2097private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow( 2508private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(
2098 problem:LogicProblem, interpretation:PartialInterpretation, 2509 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -2123,12 +2534,12 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2534 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2124 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2535 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2125 // type constraint is enforced by construction 2536 // type constraint is enforced by construction
2126 var_virtual1 == var_virtual0; 2537 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2127 var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); 2538 var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain);
2128 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2539 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2129 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3); 2540 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3);
2130 // type constraint is enforced by construction 2541 // type constraint is enforced by construction
2131 var_virtual3 == var_virtual2; 2542 find mustEquivalent(problem, interpretation, var_virtual3, var_virtual2);
2132} 2543}
2133// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink 2544// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2134private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( 2545private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
@@ -2141,20 +2552,20 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
2141 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); 2552 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2142 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); 2553 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2143 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2554 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2144 var_virtual0 == var_SourceComm; 2555 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2145 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); 2556 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2146 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2557 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2147 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2558 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
2148 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2559 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2149 var_virtual1 == var_SourceComm; 2560 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm);
2150 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2561 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2151 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2); 2562 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2);
2152 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 2563 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2153 var_virtual2 == var_TargetComm; 2564 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2154 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); 2565 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2155 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); 2566 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
2156 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); 2567 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
2157 var_virtual3 == var_TargetComm; 2568 find mustEquivalent(problem, interpretation, var_virtual3, var_TargetComm);
2158 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); 2569 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2159} 2570}
2160private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( 2571private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
@@ -2193,20 +2604,20 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2193 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); 2604 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2194 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); 2605 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2195 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); 2606 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2196 var_virtual0 == var_SourceComm; 2607 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2197 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); 2608 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2198 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2609 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2199 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); 2610 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
2200 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2611 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2201 var_virtual1 == var_SourceComm; 2612 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm);
2202 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); 2613 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2203 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2); 2614 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2);
2204 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); 2615 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2205 var_virtual2 == var_TargetComm; 2616 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2206 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); 2617 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2207 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); 2618 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
2208 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); 2619 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
2209 var_virtual3 == var_TargetComm; 2620 find mustEquivalent(problem, interpretation, var_virtual3, var_TargetComm);
2210 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); 2621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2211} 2622}
2212// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf 2623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
@@ -2221,7 +2632,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
2221 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2632 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2222 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2633 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2223 // type constraint is enforced by construction 2634 // type constraint is enforced by construction
2224 var_virtual1 == var_virtual0; 2635 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2225} 2636}
2226private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( 2637private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2227 problem:LogicProblem, interpretation:PartialInterpretation, 2638 problem:LogicProblem, interpretation:PartialInterpretation,
@@ -2247,7 +2658,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2247 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); 2658 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2248 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); 2659 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2249 // type constraint is enforced by construction 2660 // type constraint is enforced by construction
2250 var_virtual1 == var_virtual0; 2661 find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2251} 2662}
2252// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork 2663// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2253private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( 2664private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
@@ -2291,7 +2702,7 @@ private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satell
2291 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2702 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2292 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2); 2703 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2);
2293 // type constraint is enforced by construction 2704 // type constraint is enforced by construction
2294 var_virtual2 == var_virtual0; 2705 find mustEquivalent(problem, interpretation, var_virtual2, var_virtual0);
2295 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); 2706 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2296} 2707}
2297private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( 2708private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
@@ -2323,7 +2734,7 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2323 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); 2734 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2324 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2); 2735 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2);
2325 // type constraint is enforced by construction 2736 // type constraint is enforced by construction
2326 var_virtual2 == var_virtual0; 2737 find mustEquivalent(problem, interpretation, var_virtual2, var_virtual0);
2327 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); 2738 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2328} 2739}
2329// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat 2740// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
@@ -2354,6 +2765,100 @@ private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_sat
2354 // Sat is exported 2765 // Sat is exported
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); 2766 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356} 2767}
2768// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftOfKind
2769private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(
2770 problem:LogicProblem, interpretation:PartialInterpretation,
2771 var_Spacecraft, var_Kind)
2772{
2773 find interpretation(problem,interpretation);
2774 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2775 // type constraint is enforced by construction
2776 // Spacecraft is exported
2777 // Kind is exported
2778 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Spacecraft);
2779 var_virtual0 == const_CubeSat3U_SpacecraftKind;DefinedElement.name(const_CubeSat3U_SpacecraftKind,"CubeSat3U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat3U_SpacecraftKind);
2780 find mustEquivalent(problem, interpretation, var_Kind, var_virtual0);
2781}or{
2782 find interpretation(problem,interpretation);
2783 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2784 // type constraint is enforced by construction
2785 // Spacecraft is exported
2786 // Kind is exported
2787 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Spacecraft);
2788 var_virtual0 == const_CubeSat6U_SpacecraftKind;DefinedElement.name(const_CubeSat6U_SpacecraftKind,"CubeSat6U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat6U_SpacecraftKind);
2789 find mustEquivalent(problem, interpretation, var_Kind, var_virtual0);
2790}or{
2791 find interpretation(problem,interpretation);
2792 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2793 // type constraint is enforced by construction
2794 // Spacecraft is exported
2795 // Kind is exported
2796 find mustInstanceOfSmallSat_class(problem,interpretation,var_Spacecraft);
2797 var_virtual0 == const_SmallSat_SpacecraftKind;DefinedElement.name(const_SmallSat_SpacecraftKind,"SmallSat SpacecraftKind"); //LogicProblem.elements(problem,const_SmallSat_SpacecraftKind);
2798 find mustEquivalent(problem, interpretation, var_Kind, var_virtual0);
2799}
2800private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(
2801 problem:LogicProblem, interpretation:PartialInterpretation,
2802 var_Spacecraft, var_Kind)
2803{
2804 find interpretation(problem,interpretation);
2805 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2806 // type constraint is enforced by construction
2807 // Spacecraft is exported
2808 // Kind is exported
2809 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Spacecraft);
2810 var_virtual0 == const_CubeSat3U_SpacecraftKind;DefinedElement.name(const_CubeSat3U_SpacecraftKind,"CubeSat3U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat3U_SpacecraftKind);
2811 find mayEquivalent(problem, interpretation, var_Kind, var_virtual0);
2812}or{
2813 find interpretation(problem,interpretation);
2814 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2815 // type constraint is enforced by construction
2816 // Spacecraft is exported
2817 // Kind is exported
2818 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Spacecraft);
2819 var_virtual0 == const_CubeSat6U_SpacecraftKind;DefinedElement.name(const_CubeSat6U_SpacecraftKind,"CubeSat6U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat6U_SpacecraftKind);
2820 find mayEquivalent(problem, interpretation, var_Kind, var_virtual0);
2821}or{
2822 find interpretation(problem,interpretation);
2823 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2824 // type constraint is enforced by construction
2825 // Spacecraft is exported
2826 // Kind is exported
2827 find mayInstanceOfSmallSat_class(problem,interpretation,var_Spacecraft);
2828 var_virtual0 == const_SmallSat_SpacecraftKind;DefinedElement.name(const_SmallSat_SpacecraftKind,"SmallSat SpacecraftKind"); //LogicProblem.elements(problem,const_SmallSat_SpacecraftKind);
2829 find mayEquivalent(problem, interpretation, var_Kind, var_virtual0);
2830}
2831private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(
2832 problem:LogicProblem, interpretation:PartialInterpretation,
2833 var_Spacecraft, var_Kind)
2834{
2835 find interpretation(problem,interpretation);
2836 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2837 // type constraint is enforced by construction
2838 // Spacecraft is exported
2839 // Kind is exported
2840 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Spacecraft);
2841 var_virtual0 == const_CubeSat3U_SpacecraftKind;DefinedElement.name(const_CubeSat3U_SpacecraftKind,"CubeSat3U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat3U_SpacecraftKind);
2842 find mustEquivalent(problem, interpretation, var_Kind, var_virtual0);
2843}or{
2844 find interpretation(problem,interpretation);
2845 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2846 // type constraint is enforced by construction
2847 // Spacecraft is exported
2848 // Kind is exported
2849 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Spacecraft);
2850 var_virtual0 == const_CubeSat6U_SpacecraftKind;DefinedElement.name(const_CubeSat6U_SpacecraftKind,"CubeSat6U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat6U_SpacecraftKind);
2851 find mustEquivalent(problem, interpretation, var_Kind, var_virtual0);
2852}or{
2853 find interpretation(problem,interpretation);
2854 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2855 // type constraint is enforced by construction
2856 // Spacecraft is exported
2857 // Kind is exported
2858 find mustInstanceOfSmallSat_class(problem,interpretation,var_Spacecraft);
2859 var_virtual0 == const_SmallSat_SpacecraftKind;DefinedElement.name(const_SmallSat_SpacecraftKind,"SmallSat SpacecraftKind"); //LogicProblem.elements(problem,const_SmallSat_SpacecraftKind);
2860 find mustEquivalent(problem, interpretation, var_Kind, var_virtual0);
2861}
2357 2862
2358////////// 2863//////////
2359// 1.4 Containment Indexer 2864// 1.4 Containment Indexer
@@ -2388,11 +2893,21 @@ pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queri
2388{ 2893{
2389 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link); 2894 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link);
2390} 2895}
2896pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2897 var_Mission)
2898{
2899 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2900}
2391pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, 2901pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2392 var_Spacecraft) 2902 var_Spacecraft)
2393{ 2903{
2394 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft); 2904 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2395} 2905}
2906pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2907 var_Spacecraft)
2908{
2909 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2910}
2396pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation, 2911pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2397 var_Element) 2912 var_Element)
2398{ 2913{
@@ -2511,11 +3026,21 @@ pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_querie
2511{ 3026{
2512 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link); 3027 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link);
2513} 3028}
3029pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
3030 var_Mission)
3031{
3032 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
3033}
2514pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, 3034pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2515 var_Spacecraft) 3035 var_Spacecraft)
2516{ 3036{
2517 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft); 3037 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2518} 3038}
3039pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
3040 var_Spacecraft)
3041{
3042 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
3043}
2519pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation, 3044pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2520 var_Element) 3045 var_Element)
2521{ 3046{
@@ -2565,31 +3090,35 @@ pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_querie
2565private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 3090private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2566{ 3091{
2567 find interpretation(problem,interpretation); 3092 find interpretation(problem,interpretation);
2568 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root); 3093 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2569 find mustExist(problem, interpretation, root); 3094 find mustExist(problem, interpretation, root);
2570}or{ 3095}or{
2571 find interpretation(problem,interpretation); 3096 find interpretation(problem,interpretation);
2572 find mustInstanceOfConstellationMission_class(problem,interpretation,root); 3097 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2573 find mustExist(problem, interpretation, root); 3098 find mustExist(problem, interpretation, root);
2574}or{ 3099}or{
2575 find interpretation(problem,interpretation); 3100 find interpretation(problem,interpretation);
2576 find mustInstanceOfInterferometryMission_class(problem,interpretation,root); 3101 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,root);
2577 find mustExist(problem, interpretation, root); 3102 find mustExist(problem, interpretation, root);
2578}or{ 3103}or{
2579 find interpretation(problem,interpretation); 3104 find interpretation(problem,interpretation);
2580 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,root); 3105 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2581 find mustExist(problem, interpretation, root); 3106 find mustExist(problem, interpretation, root);
2582}or{ 3107}or{
2583 find interpretation(problem,interpretation); 3108 find interpretation(problem,interpretation);
2584 find mustInstanceOfSmallSat_class(problem,interpretation,root); 3109 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2585 find mustExist(problem, interpretation, root); 3110 find mustExist(problem, interpretation, root);
2586}or{ 3111}or{
2587 find interpretation(problem,interpretation); 3112 find interpretation(problem,interpretation);
2588 find mustInstanceOfPayload_class(problem,interpretation,root); 3113 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2589 find mustExist(problem, interpretation, root); 3114 find mustExist(problem, interpretation, root);
2590}or{ 3115}or{
2591 find interpretation(problem,interpretation); 3116 find interpretation(problem,interpretation);
2592 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root); 3117 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
3118 find mustExist(problem, interpretation, root);
3119}or{
3120 find interpretation(problem,interpretation);
3121 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2593 find mustExist(problem, interpretation, root); 3122 find mustExist(problem, interpretation, root);
2594}or{ 3123}or{
2595 find interpretation(problem,interpretation); 3124 find interpretation(problem,interpretation);
@@ -2597,19 +3126,19 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
2597 find mustExist(problem, interpretation, root); 3126 find mustExist(problem, interpretation, root);
2598}or{ 3127}or{
2599 find interpretation(problem,interpretation); 3128 find interpretation(problem,interpretation);
2600 find mustInstanceOfCommSubsystem_class(problem,interpretation,root); 3129 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2601 find mustExist(problem, interpretation, root); 3130 find mustExist(problem, interpretation, root);
2602}or{ 3131}or{
2603 find interpretation(problem,interpretation); 3132 find interpretation(problem,interpretation);
2604 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root); 3133 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2605 find mustExist(problem, interpretation, root); 3134 find mustExist(problem, interpretation, root);
2606}or{ 3135}or{
2607 find interpretation(problem,interpretation); 3136 find interpretation(problem,interpretation);
2608 find mustInstanceOfCubeSat3U_class(problem,interpretation,root); 3137 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2609 find mustExist(problem, interpretation, root); 3138 find mustExist(problem, interpretation, root);
2610}or{ 3139}or{
2611 find interpretation(problem,interpretation); 3140 find interpretation(problem,interpretation);
2612 find mustInstanceOfSpacecraft_class(problem,interpretation,root); 3141 find mustInstanceOfPayload_class(problem,interpretation,root);
2613 find mustExist(problem, interpretation, root); 3142 find mustExist(problem, interpretation, root);
2614}or{ 3143}or{
2615 find interpretation(problem,interpretation); 3144 find interpretation(problem,interpretation);
@@ -2652,59 +3181,43 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
2652 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root); 3181 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2653 find mustExist(problem, interpretation, root); 3182 find mustExist(problem, interpretation, root);
2654} 3183}
2655pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission( 3184pattern createObject_DirectedCommunicationLink_class_by_communicationLink_reference_CommunicatingElement(
2656 problem:LogicProblem, interpretation:PartialInterpretation, 3185 problem:LogicProblem, interpretation:PartialInterpretation,
2657 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3186 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2658 container:DefinedElement) 3187 container:DefinedElement)
2659{ 3188{
2660 find interpretation(problem,interpretation); 3189 find interpretation(problem,interpretation);
2661 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3190 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2662 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class"); 3191 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class");
2663 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3192 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2664 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); 3193 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"communicationLink reference CommunicatingElement");
2665 find mustInstanceOfConstellationMission_class(problem,interpretation,container); 3194 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2666 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject); 3195 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject);
2667 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); 3196 find mayInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,container,newObject);
2668 find mustExist(problem, interpretation, container); 3197 find mustExist(problem, interpretation, container);
2669 neg find mustExist(problem, interpretation, newObject); 3198 neg find mustExist(problem, interpretation, newObject);
2670} 3199}
2671pattern createObject_CubeSat6U_class( 3200pattern createObject_DirectedCommunicationLink_class(
2672 problem:LogicProblem, interpretation:PartialInterpretation, 3201 problem:LogicProblem, interpretation:PartialInterpretation,
2673 typeInterpretation:PartialComplexTypeInterpretation) 3202 typeInterpretation:PartialComplexTypeInterpretation)
2674{ 3203{
2675 find interpretation(problem,interpretation); 3204 find interpretation(problem,interpretation);
2676 neg find hasElementInContainment(problem,interpretation); 3205 neg find hasElementInContainment(problem,interpretation);
2677 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3206 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2678 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class"); 3207 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class");
2679 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject); 3208 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject);
2680 find mayExist(problem, interpretation, newObject); 3209 find mayExist(problem, interpretation, newObject);
2681 neg find mustExist(problem, interpretation, newObject); 3210 neg find mustExist(problem, interpretation, newObject);
2682} 3211}
2683pattern createObject_CommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement( 3212pattern createObject_InterferometryMission_class_UndefinedPart(
2684 problem:LogicProblem, interpretation:PartialInterpretation,
2685 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2686 container:DefinedElement)
2687{
2688 find interpretation(problem,interpretation);
2689 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2690 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart");
2691 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2692 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2693 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2694 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2695 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2696 find mustExist(problem, interpretation, container);
2697 neg find mustExist(problem, interpretation, newObject);
2698}
2699pattern createObject_CommSubsystem_class_UndefinedPart(
2700 problem:LogicProblem, interpretation:PartialInterpretation, 3213 problem:LogicProblem, interpretation:PartialInterpretation,
2701 typeInterpretation:PartialComplexTypeInterpretation) 3214 typeInterpretation:PartialComplexTypeInterpretation)
2702{ 3215{
2703 find interpretation(problem,interpretation); 3216 find interpretation(problem,interpretation);
2704 neg find hasElementInContainment(problem,interpretation); 3217 neg find hasElementInContainment(problem,interpretation);
2705 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3218 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2706 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart"); 3219 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2707 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); 3220 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2708 find mayExist(problem, interpretation, newObject); 3221 find mayExist(problem, interpretation, newObject);
2709 neg find mustExist(problem, interpretation, newObject); 3222 neg find mustExist(problem, interpretation, newObject);
2710} 3223}
@@ -2736,31 +3249,31 @@ pattern createObject_InterferometryPayload_class(
2736 find mayExist(problem, interpretation, newObject); 3249 find mayExist(problem, interpretation, newObject);
2737 neg find mustExist(problem, interpretation, newObject); 3250 neg find mustExist(problem, interpretation, newObject);
2738} 3251}
2739pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission( 3252pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2740 problem:LogicProblem, interpretation:PartialInterpretation, 3253 problem:LogicProblem, interpretation:PartialInterpretation,
2741 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3254 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2742 container:DefinedElement) 3255 container:DefinedElement)
2743{ 3256{
2744 find interpretation(problem,interpretation); 3257 find interpretation(problem,interpretation);
2745 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3258 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2746 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class"); 3259 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2747 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3260 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2748 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); 3261 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2749 find mustInstanceOfConstellationMission_class(problem,interpretation,container); 3262 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2750 find mayInstanceOfSmallSat_class(problem,interpretation,newObject); 3263 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2751 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); 3264 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2752 find mustExist(problem, interpretation, container); 3265 find mustExist(problem, interpretation, container);
2753 neg find mustExist(problem, interpretation, newObject); 3266 neg find mustExist(problem, interpretation, newObject);
2754} 3267}
2755pattern createObject_SmallSat_class( 3268pattern createObject_GroundStationNetwork_class_UndefinedPart(
2756 problem:LogicProblem, interpretation:PartialInterpretation, 3269 problem:LogicProblem, interpretation:PartialInterpretation,
2757 typeInterpretation:PartialComplexTypeInterpretation) 3270 typeInterpretation:PartialComplexTypeInterpretation)
2758{ 3271{
2759 find interpretation(problem,interpretation); 3272 find interpretation(problem,interpretation);
2760 neg find hasElementInContainment(problem,interpretation); 3273 neg find hasElementInContainment(problem,interpretation);
2761 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3274 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2762 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class"); 3275 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2763 find mayInstanceOfSmallSat_class(problem,interpretation,newObject); 3276 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2764 find mayExist(problem, interpretation, newObject); 3277 find mayExist(problem, interpretation, newObject);
2765 neg find mustExist(problem, interpretation, newObject); 3278 neg find mustExist(problem, interpretation, newObject);
2766} 3279}
@@ -2792,71 +3305,87 @@ pattern createObject_CubeSat3U_class(
2792 find mayExist(problem, interpretation, newObject); 3305 find mayExist(problem, interpretation, newObject);
2793 neg find mustExist(problem, interpretation, newObject); 3306 neg find mustExist(problem, interpretation, newObject);
2794} 3307}
2795pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission( 3308pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2796 problem:LogicProblem, interpretation:PartialInterpretation, 3309 problem:LogicProblem, interpretation:PartialInterpretation,
2797 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3310 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2798 container:DefinedElement) 3311 container:DefinedElement)
2799{ 3312{
2800 find interpretation(problem,interpretation); 3313 find interpretation(problem,interpretation);
2801 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3314 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2802 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart"); 3315 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2803 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3316 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2804 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission"); 3317 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2805 find mustInstanceOfConstellationMission_class(problem,interpretation,container); 3318 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2806 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject); 3319 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2807 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject); 3320 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2808 find mustExist(problem, interpretation, container); 3321 find mustExist(problem, interpretation, container);
2809 neg find mustExist(problem, interpretation, newObject); 3322 neg find mustExist(problem, interpretation, newObject);
2810} 3323}
2811pattern createObject_GroundStationNetwork_class_UndefinedPart( 3324pattern createObject_SmallSat_class(
2812 problem:LogicProblem, interpretation:PartialInterpretation, 3325 problem:LogicProblem, interpretation:PartialInterpretation,
2813 typeInterpretation:PartialComplexTypeInterpretation) 3326 typeInterpretation:PartialComplexTypeInterpretation)
2814{ 3327{
2815 find interpretation(problem,interpretation); 3328 find interpretation(problem,interpretation);
2816 neg find hasElementInContainment(problem,interpretation); 3329 neg find hasElementInContainment(problem,interpretation);
2817 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3330 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2818 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart"); 3331 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2819 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject); 3332 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2820 find mayExist(problem, interpretation, newObject); 3333 find mayExist(problem, interpretation, newObject);
2821 neg find mustExist(problem, interpretation, newObject); 3334 neg find mustExist(problem, interpretation, newObject);
2822} 3335}
2823pattern createObject_DirectedCommunicationLink_class_by_communicationLink_reference_CommunicatingElement( 3336pattern createObject_CommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2824 problem:LogicProblem, interpretation:PartialInterpretation, 3337 problem:LogicProblem, interpretation:PartialInterpretation,
2825 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3338 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2826 container:DefinedElement) 3339 container:DefinedElement)
2827{ 3340{
2828 find interpretation(problem,interpretation); 3341 find interpretation(problem,interpretation);
2829 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3342 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2830 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class"); 3343 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart");
2831 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3344 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2832 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"communicationLink reference CommunicatingElement"); 3345 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2833 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container); 3346 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2834 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject); 3347 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2835 find mayInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,container,newObject); 3348 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2836 find mustExist(problem, interpretation, container); 3349 find mustExist(problem, interpretation, container);
2837 neg find mustExist(problem, interpretation, newObject); 3350 neg find mustExist(problem, interpretation, newObject);
2838} 3351}
2839pattern createObject_DirectedCommunicationLink_class( 3352pattern createObject_CommSubsystem_class_UndefinedPart(
2840 problem:LogicProblem, interpretation:PartialInterpretation, 3353 problem:LogicProblem, interpretation:PartialInterpretation,
2841 typeInterpretation:PartialComplexTypeInterpretation) 3354 typeInterpretation:PartialComplexTypeInterpretation)
2842{ 3355{
2843 find interpretation(problem,interpretation); 3356 find interpretation(problem,interpretation);
2844 neg find hasElementInContainment(problem,interpretation); 3357 neg find hasElementInContainment(problem,interpretation);
2845 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3358 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2846 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class"); 3359 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart");
2847 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject); 3360 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2848 find mayExist(problem, interpretation, newObject); 3361 find mayExist(problem, interpretation, newObject);
2849 neg find mustExist(problem, interpretation, newObject); 3362 neg find mustExist(problem, interpretation, newObject);
2850} 3363}
2851pattern createObject_InterferometryMission_class_UndefinedPart( 3364pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
3365 problem:LogicProblem, interpretation:PartialInterpretation,
3366 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
3367 container:DefinedElement)
3368{
3369 find interpretation(problem,interpretation);
3370 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3371 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
3372 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
3373 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
3374 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
3375 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
3376 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
3377 find mustExist(problem, interpretation, container);
3378 neg find mustExist(problem, interpretation, newObject);
3379}
3380pattern createObject_CubeSat6U_class(
2852 problem:LogicProblem, interpretation:PartialInterpretation, 3381 problem:LogicProblem, interpretation:PartialInterpretation,
2853 typeInterpretation:PartialComplexTypeInterpretation) 3382 typeInterpretation:PartialComplexTypeInterpretation)
2854{ 3383{
2855 find interpretation(problem,interpretation); 3384 find interpretation(problem,interpretation);
2856 neg find hasElementInContainment(problem,interpretation); 3385 neg find hasElementInContainment(problem,interpretation);
2857 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3386 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2858 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart"); 3387 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2859 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject); 3388 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2860 find mayExist(problem, interpretation, newObject); 3389 find mayExist(problem, interpretation, newObject);
2861 neg find mustExist(problem, interpretation, newObject); 3390 neg find mustExist(problem, interpretation, newObject);
2862} 3391}
@@ -2864,95 +3393,94 @@ pattern createObject_InterferometryMission_class_UndefinedPart(
2864////////// 3393//////////
2865// 4.2 Type refinement 3394// 4.2 Type refinement
2866////////// 3395//////////
2867pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3396pattern refineTypeTo_DirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2868 find interpretation(problem,interpretation); 3397 find interpretation(problem,interpretation);
2869 PartialInterpretation.newElements(interpretation,element); 3398 PartialInterpretation.newElements(interpretation,element);
2870 find mayInstanceOfCubeSat6U_class(problem,interpretation,element); 3399 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2871 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2872 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2873 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2874 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2875 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2876 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3400 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
3401 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2877 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 3402 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2878 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 3403 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
3404 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2879} 3405}
2880pattern refineTypeTo_CommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3406pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2881 find interpretation(problem,interpretation); 3407 find interpretation(problem,interpretation);
2882 PartialInterpretation.newElements(interpretation,element); 3408 PartialInterpretation.newElements(interpretation,element);
2883 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); 3409 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2884 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2885 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2886 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2887 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3410 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2888 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 3411 neg find mustInstanceOfPayload_class(problem,interpretation,element);
3412 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
3413 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
3414 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2889} 3415}
2890pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3416pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2891 find interpretation(problem,interpretation); 3417 find interpretation(problem,interpretation);
2892 PartialInterpretation.newElements(interpretation,element); 3418 PartialInterpretation.newElements(interpretation,element);
2893 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element); 3419 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
3420 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
3421 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2894 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); 3422 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2895 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); 3423 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2896 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); 3424 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2897 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899} 3425}
2900pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3426pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2901 find interpretation(problem,interpretation); 3427 find interpretation(problem,interpretation);
2902 PartialInterpretation.newElements(interpretation,element); 3428 PartialInterpretation.newElements(interpretation,element);
2903 find mayInstanceOfSmallSat_class(problem,interpretation,element); 3429 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2904 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2905 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2906 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2907 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2908 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2909 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3430 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
3431 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 3432 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 3433 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
3434 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
3435 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2912} 3436}
2913pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3437pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2914 find interpretation(problem,interpretation); 3438 find interpretation(problem,interpretation);
2915 PartialInterpretation.newElements(interpretation,element); 3439 PartialInterpretation.newElements(interpretation,element);
2916 find mayInstanceOfCubeSat3U_class(problem,interpretation,element); 3440 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2917 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2918 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2919 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2920 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2921 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2922 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3441 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2923 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 3442 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2924 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); 3443 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
3444 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
3445 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
3446 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
3447 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
3448 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2925} 3449}
2926pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3450pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2927 find interpretation(problem,interpretation); 3451 find interpretation(problem,interpretation);
2928 PartialInterpretation.newElements(interpretation,element); 3452 PartialInterpretation.newElements(interpretation,element);
2929 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); 3453 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2930 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2931 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2932 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3454 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2933 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); 3455 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2934 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); 3456 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
3457 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2935 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 3458 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
3459 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
3460 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2936} 3461}
2937pattern refineTypeTo_DirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3462pattern refineTypeTo_CommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2938 find interpretation(problem,interpretation); 3463 find interpretation(problem,interpretation);
2939 PartialInterpretation.newElements(interpretation,element); 3464 PartialInterpretation.newElements(interpretation,element);
2940 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3465 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2941 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2942 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2943 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2944 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3466 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
3467 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2945 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); 3468 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
3469 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
3470 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946} 3471}
2947pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3472pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2948 find interpretation(problem,interpretation); 3473 find interpretation(problem,interpretation);
2949 PartialInterpretation.newElements(interpretation,element); 3474 PartialInterpretation.newElements(interpretation,element);
2950 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); 3475 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2951 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2952 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2953 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2954 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); 3476 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2955 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); 3477 neg find mustInstanceOfPayload_class(problem,interpretation,element);
3478 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
3479 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
3480 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
3481 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
3482 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
3483 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2956} 3484}
2957 3485
2958////////// 3486//////////
@@ -2988,6 +3516,21 @@ pattern refineRelation_target_reference_DirectedCommunicationLink(
2988 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to); 3516 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to);
2989 neg find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to); 3517 neg find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to);
2990} 3518}
3519pattern refineRelation_kind_attribute_Spacecraft(
3520 problem:LogicProblem, interpretation:PartialInterpretation,
3521 relationIterpretation:PartialRelationInterpretation,
3522 from: DefinedElement, to: DefinedElement)
3523{
3524 find interpretation(problem,interpretation);
3525 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
3526 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"kind attribute Spacecraft");
3527 find mustExist(problem, interpretation, from);
3528 find mustExist(problem, interpretation, to);
3529 find mustInstanceOfSpacecraft_class(problem,interpretation,from);
3530 find mustInstanceOfSpacecraftKind_enum(problem,interpretation,to);
3531 find mayInRelationkind_attribute_Spacecraft(problem,interpretation,from,to);
3532 neg find mustInRelationkind_attribute_Spacecraft(problem,interpretation,from,to);
3533}
2991pattern refineRelation_band_attribute_CommSubsystem( 3534pattern refineRelation_band_attribute_CommSubsystem(
2992 problem:LogicProblem, interpretation:PartialInterpretation, 3535 problem:LogicProblem, interpretation:PartialInterpretation,
2993 relationIterpretation:PartialRelationInterpretation, 3536 relationIterpretation:PartialRelationInterpretation,
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem
index 7b46b451..2a54174a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem
@@ -1,29 +1,31 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partial2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/partial2logicannotation" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation"> 2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partial2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/partial2logicannotation" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation">
3 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class" subtypes="//@types.1 //@types.14 //@types.15" isAbstract="true"/> 3 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class" subtypes="//@types.1 //@types.16 //@types.17" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class" subtypes="//@types.16 //@types.17" supertypes="//@types.0" isAbstract="true"/> 4 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class" subtypes="//@types.18 //@types.19" supertypes="//@types.0" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class" subtypes="//@types.3 //@types.4 //@types.18 //@types.19" isAbstract="true"/> 5 <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class" subtypes="//@types.3 //@types.4 //@types.20 //@types.21" isAbstract="true"/>
6 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class" subtypes="//@types.20 //@types.21" supertypes="//@types.2" isAbstract="true"/> 6 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class" subtypes="//@types.22 //@types.23" supertypes="//@types.2" isAbstract="true"/>
7 <types xsi:type="language_1:TypeDeclaration" name="Spacecraft class" subtypes="//@types.5 //@types.6 //@types.7" supertypes="//@types.2 //@types.19" isAbstract="true"/> 7 <types xsi:type="language_1:TypeDeclaration" name="Spacecraft class" subtypes="//@types.11 //@types.12" supertypes="//@types.2 //@types.21" isAbstract="true"/>
8 <types xsi:type="language_1:TypeDeclaration" name="CubeSat3U class" supertypes="//@types.4"/> 8 <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class" subtypes="//@types.24 //@types.25" isAbstract="true"/>
9 <types xsi:type="language_1:TypeDeclaration" name="CubeSat6U class" supertypes="//@types.4"/>
10 <types xsi:type="language_1:TypeDeclaration" name="SmallSat class" supertypes="//@types.4"/>
11 <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class" subtypes="//@types.22 //@types.23" isAbstract="true"/>
12 <types xsi:type="language_1:TypeDeclaration" name="DirectedCommunicationLink class"/> 9 <types xsi:type="language_1:TypeDeclaration" name="DirectedCommunicationLink class"/>
13 <types xsi:type="language_1:TypeDeclaration" name="Payload class" subtypes="//@types.11" isAbstract="true"/> 10 <types xsi:type="language_1:TypeDeclaration" name="Payload class" subtypes="//@types.8" isAbstract="true"/>
14 <types xsi:type="language_1:TypeDeclaration" name="InterferometryPayload class" supertypes="//@types.10"/> 11 <types xsi:type="language_1:TypeDeclaration" name="InterferometryPayload class" supertypes="//@types.7"/>
12 <types xsi:type="language_1:TypeDeclaration" name="CubeSat3U class" supertypes="//@types.12"/>
13 <types xsi:type="language_1:TypeDeclaration" name="CubeSat6U class" supertypes="//@types.12"/>
14 <types xsi:type="language_1:TypeDeclaration" name="SmallSat class" supertypes="//@types.4"/>
15 <types xsi:type="language_1:TypeDeclaration" name="CubeSat class" subtypes="//@types.9 //@types.10" supertypes="//@types.4" isAbstract="true"/>
15 <types xsi:type="language_1:TypeDefinition" name="TransceiverBand enum" elements="//@elements.0 //@elements.1 //@elements.2"/> 16 <types xsi:type="language_1:TypeDefinition" name="TransceiverBand enum" elements="//@elements.0 //@elements.1 //@elements.2"/>
16 <types xsi:type="language_1:TypeDefinition" name="AntennaGain enum" elements="//@elements.3 //@elements.4 //@elements.5"/> 17 <types xsi:type="language_1:TypeDefinition" name="AntennaGain enum" elements="//@elements.3 //@elements.4 //@elements.5"/>
17 <types xsi:type="language_1:TypeDefinition" name="ConstellationMission class DefinedPart" subtypes="//@types.16" supertypes="//@types.0" isAbstract="true" elements="//@elements.6"/> 18 <types xsi:type="language_1:TypeDefinition" name="SpacecraftKind enum" elements="//@elements.6 //@elements.7 //@elements.8"/>
18 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class UndefinedPart" subtypes="//@types.17" supertypes="//@types.0" isAbstract="true"/> 19 <types xsi:type="language_1:TypeDefinition" name="ConstellationMission class DefinedPart" subtypes="//@types.18" supertypes="//@types.0" isAbstract="true" elements="//@elements.9"/>
19 <types xsi:type="language_1:TypeDefinition" name="InterferometryMission class DefinedPart" supertypes="//@types.1 //@types.14" elements="//@elements.6"/> 20 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class UndefinedPart" subtypes="//@types.19" supertypes="//@types.0" isAbstract="true"/>
20 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class UndefinedPart" supertypes="//@types.1 //@types.15"/> 21 <types xsi:type="language_1:TypeDefinition" name="InterferometryMission class DefinedPart" supertypes="//@types.1 //@types.16" elements="//@elements.9"/>
21 <types xsi:type="language_1:TypeDefinition" name="CommunicatingElement class DefinedPart" subtypes="//@types.20" supertypes="//@types.2" isAbstract="true" elements="//@elements.7"/> 22 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class UndefinedPart" supertypes="//@types.1 //@types.17"/>
22 <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class UndefinedPart" subtypes="//@types.21 //@types.4" supertypes="//@types.2" isAbstract="true"/> 23 <types xsi:type="language_1:TypeDefinition" name="CommunicatingElement class DefinedPart" subtypes="//@types.22" supertypes="//@types.2" isAbstract="true" elements="//@elements.10"/>
23 <types xsi:type="language_1:TypeDefinition" name="GroundStationNetwork class DefinedPart" supertypes="//@types.3 //@types.18" elements="//@elements.7"/> 24 <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class UndefinedPart" subtypes="//@types.23 //@types.4" supertypes="//@types.2" isAbstract="true"/>
24 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class UndefinedPart" supertypes="//@types.3 //@types.19"/> 25 <types xsi:type="language_1:TypeDefinition" name="GroundStationNetwork class DefinedPart" supertypes="//@types.3 //@types.20" elements="//@elements.10"/>
25 <types xsi:type="language_1:TypeDefinition" name="CommSubsystem class DefinedPart" supertypes="//@types.8" elements="//@elements.8 //@elements.9"/> 26 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class UndefinedPart" supertypes="//@types.3 //@types.21"/>
26 <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class UndefinedPart" supertypes="//@types.8"/> 27 <types xsi:type="language_1:TypeDefinition" name="CommSubsystem class DefinedPart" supertypes="//@types.5" elements="//@elements.11 //@elements.12"/>
28 <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class UndefinedPart" supertypes="//@types.5"/>
27 <assertions name="lowerMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.0"> 29 <assertions name="lowerMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.0">
28 <value xsi:type="language_1:Forall"> 30 <value xsi:type="language_1:Forall">
29 <quantifiedVariables name="src"> 31 <quantifiedVariables name="src">
@@ -534,7 +536,7 @@
534 </quantifiedVariables> 536 </quantifiedVariables>
535 <expression xsi:type="language_1:Exists"> 537 <expression xsi:type="language_1:Exists">
536 <quantifiedVariables name="trg 1"> 538 <quantifiedVariables name="trg 1">
537 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 539 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
538 </quantifiedVariables> 540 </quantifiedVariables>
539 <expression xsi:type="language_1:And"> 541 <expression xsi:type="language_1:And">
540 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 542 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
@@ -551,13 +553,13 @@
551 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 553 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
552 </quantifiedVariables> 554 </quantifiedVariables>
553 <quantifiedVariables name="trg 1"> 555 <quantifiedVariables name="trg 1">
554 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 556 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
555 </quantifiedVariables> 557 </quantifiedVariables>
556 <quantifiedVariables name="trg 2"> 558 <quantifiedVariables name="trg 2">
557 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 559 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
558 </quantifiedVariables> 560 </quantifiedVariables>
559 <quantifiedVariables name="trg 3"> 561 <quantifiedVariables name="trg 3">
560 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 562 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
561 </quantifiedVariables> 563 </quantifiedVariables>
562 <expression xsi:type="language_1:Impl"> 564 <expression xsi:type="language_1:Impl">
563 <leftOperand xsi:type="language_1:And"> 565 <leftOperand xsi:type="language_1:And">
@@ -590,10 +592,10 @@
590 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 592 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
591 </quantifiedVariables> 593 </quantifiedVariables>
592 <quantifiedVariables name="trg 1"> 594 <quantifiedVariables name="trg 1">
593 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 595 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
594 </quantifiedVariables> 596 </quantifiedVariables>
595 <quantifiedVariables name="trg 2"> 597 <quantifiedVariables name="trg 2">
596 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 598 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
597 </quantifiedVariables> 599 </quantifiedVariables>
598 <expression xsi:type="language_1:Impl"> 600 <expression xsi:type="language_1:Impl">
599 <leftOperand xsi:type="language_1:And"> 601 <leftOperand xsi:type="language_1:And">
@@ -621,10 +623,10 @@
621 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 623 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
622 </quantifiedVariables> 624 </quantifiedVariables>
623 <quantifiedVariables name="trg 1"> 625 <quantifiedVariables name="trg 1">
624 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 626 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
625 </quantifiedVariables> 627 </quantifiedVariables>
626 <quantifiedVariables name="trg 2"> 628 <quantifiedVariables name="trg 2">
627 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 629 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
628 </quantifiedVariables> 630 </quantifiedVariables>
629 <expression xsi:type="language_1:Impl"> 631 <expression xsi:type="language_1:Impl">
630 <leftOperand xsi:type="language_1:And"> 632 <leftOperand xsi:type="language_1:And">
@@ -649,11 +651,11 @@
649 <assertions name="lowerMultiplicity source DirectedCommunicationLink" annotations="//@annotations.8"> 651 <assertions name="lowerMultiplicity source DirectedCommunicationLink" annotations="//@annotations.8">
650 <value xsi:type="language_1:Forall"> 652 <value xsi:type="language_1:Forall">
651 <quantifiedVariables name="src"> 653 <quantifiedVariables name="src">
652 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 654 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
653 </quantifiedVariables> 655 </quantifiedVariables>
654 <expression xsi:type="language_1:Exists"> 656 <expression xsi:type="language_1:Exists">
655 <quantifiedVariables name="trg 1"> 657 <quantifiedVariables name="trg 1">
656 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 658 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
657 </quantifiedVariables> 659 </quantifiedVariables>
658 <expression xsi:type="language_1:And"> 660 <expression xsi:type="language_1:And">
659 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> 661 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
@@ -667,13 +669,13 @@
667 <assertions name="upperMultiplicity source DirectedCommunicationLink" annotations="//@annotations.9"> 669 <assertions name="upperMultiplicity source DirectedCommunicationLink" annotations="//@annotations.9">
668 <value xsi:type="language_1:Forall"> 670 <value xsi:type="language_1:Forall">
669 <quantifiedVariables name="src"> 671 <quantifiedVariables name="src">
670 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 672 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
671 </quantifiedVariables> 673 </quantifiedVariables>
672 <quantifiedVariables name="trg 1"> 674 <quantifiedVariables name="trg 1">
673 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 675 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
674 </quantifiedVariables> 676 </quantifiedVariables>
675 <quantifiedVariables name="trg 2"> 677 <quantifiedVariables name="trg 2">
676 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 678 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
677 </quantifiedVariables> 679 </quantifiedVariables>
678 <expression xsi:type="language_1:Impl"> 680 <expression xsi:type="language_1:Impl">
679 <leftOperand xsi:type="language_1:And"> 681 <leftOperand xsi:type="language_1:And">
@@ -698,11 +700,11 @@
698 <assertions name="lowerMultiplicity target DirectedCommunicationLink" annotations="//@annotations.10"> 700 <assertions name="lowerMultiplicity target DirectedCommunicationLink" annotations="//@annotations.10">
699 <value xsi:type="language_1:Forall"> 701 <value xsi:type="language_1:Forall">
700 <quantifiedVariables name="src"> 702 <quantifiedVariables name="src">
701 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 703 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
702 </quantifiedVariables> 704 </quantifiedVariables>
703 <expression xsi:type="language_1:Exists"> 705 <expression xsi:type="language_1:Exists">
704 <quantifiedVariables name="trg 1"> 706 <quantifiedVariables name="trg 1">
705 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 707 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
706 </quantifiedVariables> 708 </quantifiedVariables>
707 <expression xsi:type="language_1:And"> 709 <expression xsi:type="language_1:And">
708 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> 710 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
@@ -716,13 +718,13 @@
716 <assertions name="upperMultiplicity target DirectedCommunicationLink" annotations="//@annotations.11"> 718 <assertions name="upperMultiplicity target DirectedCommunicationLink" annotations="//@annotations.11">
717 <value xsi:type="language_1:Forall"> 719 <value xsi:type="language_1:Forall">
718 <quantifiedVariables name="src"> 720 <quantifiedVariables name="src">
719 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 721 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
720 </quantifiedVariables> 722 </quantifiedVariables>
721 <quantifiedVariables name="trg 1"> 723 <quantifiedVariables name="trg 1">
722 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 724 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
723 </quantifiedVariables> 725 </quantifiedVariables>
724 <quantifiedVariables name="trg 2"> 726 <quantifiedVariables name="trg 2">
725 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 727 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
726 </quantifiedVariables> 728 </quantifiedVariables>
727 <expression xsi:type="language_1:Impl"> 729 <expression xsi:type="language_1:Impl">
728 <leftOperand xsi:type="language_1:And"> 730 <leftOperand xsi:type="language_1:And">
@@ -744,14 +746,14 @@
744 </expression> 746 </expression>
745 </value> 747 </value>
746 </assertions> 748 </assertions>
747 <assertions name="lowerMultiplicity band CommSubsystem" annotations="//@annotations.12"> 749 <assertions name="lowerMultiplicity kind Spacecraft" annotations="//@annotations.12">
748 <value xsi:type="language_1:Forall"> 750 <value xsi:type="language_1:Forall">
749 <quantifiedVariables name="src"> 751 <quantifiedVariables name="src">
750 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 752 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
751 </quantifiedVariables> 753 </quantifiedVariables>
752 <expression xsi:type="language_1:Exists"> 754 <expression xsi:type="language_1:Exists">
753 <quantifiedVariables name="trg 1"> 755 <quantifiedVariables name="trg 1">
754 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 756 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
755 </quantifiedVariables> 757 </quantifiedVariables>
756 <expression xsi:type="language_1:And"> 758 <expression xsi:type="language_1:And">
757 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 759 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
@@ -762,16 +764,16 @@
762 </expression> 764 </expression>
763 </value> 765 </value>
764 </assertions> 766 </assertions>
765 <assertions name="upperMultiplicity band CommSubsystem" annotations="//@annotations.13"> 767 <assertions name="upperMultiplicity kind Spacecraft" annotations="//@annotations.13">
766 <value xsi:type="language_1:Forall"> 768 <value xsi:type="language_1:Forall">
767 <quantifiedVariables name="src"> 769 <quantifiedVariables name="src">
768 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 770 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
769 </quantifiedVariables> 771 </quantifiedVariables>
770 <quantifiedVariables name="trg 1"> 772 <quantifiedVariables name="trg 1">
771 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 773 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
772 </quantifiedVariables> 774 </quantifiedVariables>
773 <quantifiedVariables name="trg 2"> 775 <quantifiedVariables name="trg 2">
774 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 776 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
775 </quantifiedVariables> 777 </quantifiedVariables>
776 <expression xsi:type="language_1:Impl"> 778 <expression xsi:type="language_1:Impl">
777 <leftOperand xsi:type="language_1:And"> 779 <leftOperand xsi:type="language_1:And">
@@ -793,10 +795,10 @@
793 </expression> 795 </expression>
794 </value> 796 </value>
795 </assertions> 797 </assertions>
796 <assertions name="lowerMultiplicity gain CommSubsystem" annotations="//@annotations.14"> 798 <assertions name="lowerMultiplicity band CommSubsystem" annotations="//@annotations.14">
797 <value xsi:type="language_1:Forall"> 799 <value xsi:type="language_1:Forall">
798 <quantifiedVariables name="src"> 800 <quantifiedVariables name="src">
799 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 801 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
800 </quantifiedVariables> 802 </quantifiedVariables>
801 <expression xsi:type="language_1:Exists"> 803 <expression xsi:type="language_1:Exists">
802 <quantifiedVariables name="trg 1"> 804 <quantifiedVariables name="trg 1">
@@ -811,10 +813,10 @@
811 </expression> 813 </expression>
812 </value> 814 </value>
813 </assertions> 815 </assertions>
814 <assertions name="upperMultiplicity gain CommSubsystem" annotations="//@annotations.15"> 816 <assertions name="upperMultiplicity band CommSubsystem" annotations="//@annotations.15">
815 <value xsi:type="language_1:Forall"> 817 <value xsi:type="language_1:Forall">
816 <quantifiedVariables name="src"> 818 <quantifiedVariables name="src">
817 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 819 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
818 </quantifiedVariables> 820 </quantifiedVariables>
819 <quantifiedVariables name="trg 1"> 821 <quantifiedVariables name="trg 1">
820 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 822 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
@@ -842,164 +844,237 @@
842 </expression> 844 </expression>
843 </value> 845 </value>
844 </assertions> 846 </assertions>
845 <assertions name="PartialInterpretation groundStationNetwork reference ConstellationMission" annotations="//@annotations.16"> 847 <assertions name="lowerMultiplicity gain CommSubsystem" annotations="//@annotations.16">
848 <value xsi:type="language_1:Forall">
849 <quantifiedVariables name="src">
850 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
851 </quantifiedVariables>
852 <expression xsi:type="language_1:Exists">
853 <quantifiedVariables name="trg 1">
854 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
855 </quantifiedVariables>
856 <expression xsi:type="language_1:And">
857 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
858 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
859 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@expression/@quantifiedVariables.0"/>
860 </operands>
861 </expression>
862 </expression>
863 </value>
864 </assertions>
865 <assertions name="upperMultiplicity gain CommSubsystem" annotations="//@annotations.17">
866 <value xsi:type="language_1:Forall">
867 <quantifiedVariables name="src">
868 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
869 </quantifiedVariables>
870 <quantifiedVariables name="trg 1">
871 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
872 </quantifiedVariables>
873 <quantifiedVariables name="trg 2">
874 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
875 </quantifiedVariables>
876 <expression xsi:type="language_1:Impl">
877 <leftOperand xsi:type="language_1:And">
878 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
879 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
880 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
881 </operands>
882 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
883 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
884 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/>
885 </operands>
886 </leftOperand>
887 <rightOperand xsi:type="language_1:Not">
888 <operand xsi:type="language_1:Distinct">
889 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
890 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/>
891 </operand>
892 </rightOperand>
893 </expression>
894 </value>
895 </assertions>
896 <assertions name="PartialInterpretation groundStationNetwork reference ConstellationMission" annotations="//@annotations.18">
846 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> 897 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
847 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/> 898 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/>
848 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/> 899 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.10"/>
849 </value> 900 </value>
850 </assertions> 901 </assertions>
851 <assertions name="PartialInterpretation commSubsystem reference CommunicatingElement" annotations="//@annotations.17"> 902 <assertions name="PartialInterpretation commSubsystem reference CommunicatingElement" annotations="//@annotations.19">
852 <value xsi:type="language_1:And"> 903 <value xsi:type="language_1:And">
853 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 904 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
854 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/> 905 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.10"/>
855 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/> 906 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.11"/>
856 </operands> 907 </operands>
857 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 908 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
858 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/> 909 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.10"/>
859 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/> 910 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.12"/>
860 </operands> 911 </operands>
861 </value> 912 </value>
862 </assertions> 913 </assertions>
863 <assertions name="PartialInterpretation band attribute CommSubsystem" annotations="//@annotations.18"> 914 <assertions name="PartialInterpretation band attribute CommSubsystem" annotations="//@annotations.20">
864 <value xsi:type="language_1:And"> 915 <value xsi:type="language_1:And">
865 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 916 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
866 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/> 917 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.11"/>
867 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/> 918 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
868 </operands> 919 </operands>
869 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 920 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
870 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/> 921 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.12"/>
871 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/> 922 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
872 </operands> 923 </operands>
873 </value> 924 </value>
874 </assertions> 925 </assertions>
875 <assertions name="PartialInterpretation gain attribute CommSubsystem" annotations="//@annotations.19"> 926 <assertions name="PartialInterpretation gain attribute CommSubsystem" annotations="//@annotations.21">
876 <value xsi:type="language_1:And"> 927 <value xsi:type="language_1:And">
877 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 928 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
878 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/> 929 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.11"/>
879 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/> 930 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/>
880 </operands> 931 </operands>
881 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 932 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
882 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/> 933 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.12"/>
883 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/> 934 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/>
884 </operands> 935 </operands>
885 </value> 936 </value>
886 </assertions> 937 </assertions>
887 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.42"> 938 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.50">
888 <value xsi:type="language_1:Forall"> 939 <value xsi:type="language_1:Forall">
889 <quantifiedVariables name="p0"> 940 <quantifiedVariables name="p0">
890 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 941 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
891 </quantifiedVariables> 942 </quantifiedVariables>
892 <expression xsi:type="language_1:Not"> 943 <expression xsi:type="language_1:Not">
893 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> 944 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
894 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> 945 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
895 </operand> 946 </operand>
896 </expression> 947 </expression>
897 </value> 948 </value>
898 </assertions> 949 </assertions>
899 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.43"> 950 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.51">
900 <value xsi:type="language_1:Forall"> 951 <value xsi:type="language_1:Forall">
901 <quantifiedVariables name="p0"> 952 <quantifiedVariables name="p0">
902 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 953 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
903 </quantifiedVariables> 954 </quantifiedVariables>
904 <expression xsi:type="language_1:Not"> 955 <expression xsi:type="language_1:Not">
905 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> 956 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
906 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> 957 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/>
907 </operand> 958 </operand>
908 </expression> 959 </expression>
909 </value> 960 </value>
910 </assertions> 961 </assertions>
911 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.44"> 962 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.52">
912 <value xsi:type="language_1:Forall"> 963 <value xsi:type="language_1:Forall">
913 <quantifiedVariables name="p0"> 964 <quantifiedVariables name="p0">
914 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 965 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
915 </quantifiedVariables> 966 </quantifiedVariables>
916 <expression xsi:type="language_1:Not"> 967 <expression xsi:type="language_1:Not">
917 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> 968 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
918 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> 969 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/>
919 </operand> 970 </operand>
920 </expression> 971 </expression>
921 </value> 972 </value>
922 </assertions> 973 </assertions>
923 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.45"> 974 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation" annotations="//@annotations.53">
924 <value xsi:type="language_1:Forall"> 975 <value xsi:type="language_1:Forall">
925 <quantifiedVariables name="p0"> 976 <quantifiedVariables name="p0">
926 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 977 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
927 </quantifiedVariables> 978 </quantifiedVariables>
928 <expression xsi:type="language_1:Not"> 979 <expression xsi:type="language_1:Not">
929 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> 980 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
930 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> 981 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/>
931 </operand> 982 </operand>
932 </expression> 983 </expression>
933 </value> 984 </value>
934 </assertions> 985 </assertions>
935 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.46"> 986 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.54">
936 <value xsi:type="language_1:Forall"> 987 <value xsi:type="language_1:Forall">
937 <quantifiedVariables name="p0"> 988 <quantifiedVariables name="p0">
938 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 989 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
939 </quantifiedVariables> 990 </quantifiedVariables>
940 <expression xsi:type="language_1:Not"> 991 <expression xsi:type="language_1:Not">
941 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> 992 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20">
942 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> 993 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/>
943 </operand> 994 </operand>
944 </expression> 995 </expression>
945 </value> 996 </value>
946 </assertions> 997 </assertions>
947 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.47"> 998 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.55">
948 <value xsi:type="language_1:Forall"> 999 <value xsi:type="language_1:Forall">
949 <quantifiedVariables name="p0"> 1000 <quantifiedVariables name="p0">
950 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1001 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
951 </quantifiedVariables> 1002 </quantifiedVariables>
952 <expression xsi:type="language_1:Not"> 1003 <expression xsi:type="language_1:Not">
953 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> 1004 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
954 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> 1005 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/>
955 </operand> 1006 </operand>
956 </expression> 1007 </expression>
957 </value> 1008 </value>
958 </assertions> 1009 </assertions>
959 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.48"> 1010 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.56">
960 <value xsi:type="language_1:Forall"> 1011 <value xsi:type="language_1:Forall">
961 <quantifiedVariables name="p0"> 1012 <quantifiedVariables name="p0">
962 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1013 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
963 </quantifiedVariables> 1014 </quantifiedVariables>
964 <expression xsi:type="language_1:Not"> 1015 <expression xsi:type="language_1:Not">
965 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> 1016 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25">
966 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> 1017 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/>
967 </operand> 1018 </operand>
968 </expression> 1019 </expression>
969 </value> 1020 </value>
970 </assertions> 1021 </assertions>
971 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.49"> 1022 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.57">
972 <value xsi:type="language_1:Forall"> 1023 <value xsi:type="language_1:Forall">
973 <quantifiedVariables name="p0"> 1024 <quantifiedVariables name="p0">
974 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1025 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
975 </quantifiedVariables> 1026 </quantifiedVariables>
976 <expression xsi:type="language_1:Not"> 1027 <expression xsi:type="language_1:Not">
977 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25"> 1028 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27">
978 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/> 1029 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/>
979 </operand> 1030 </operand>
980 </expression> 1031 </expression>
981 </value> 1032 </value>
982 </assertions> 1033 </assertions>
983 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.50"> 1034 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.58">
984 <value xsi:type="language_1:Forall"> 1035 <value xsi:type="language_1:Forall">
985 <quantifiedVariables name="p0"> 1036 <quantifiedVariables name="p0">
986 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 1037 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
987 </quantifiedVariables> 1038 </quantifiedVariables>
988 <expression xsi:type="language_1:Not"> 1039 <expression xsi:type="language_1:Not">
989 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26"> 1040 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29">
990 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/> 1041 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.0"/>
1042 </operand>
1043 </expression>
1044 </value>
1045 </assertions>
1046 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.59">
1047 <value xsi:type="language_1:Forall">
1048 <quantifiedVariables name="p0">
1049 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1050 </quantifiedVariables>
1051 <expression xsi:type="language_1:Not">
1052 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31">
1053 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.0"/>
991 </operand> 1054 </operand>
992 </expression> 1055 </expression>
993 </value> 1056 </value>
994 </assertions> 1057 </assertions>
995 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.51"> 1058 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.60">
1059 <value xsi:type="language_1:Forall">
1060 <quantifiedVariables name="p0">
1061 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1062 </quantifiedVariables>
1063 <expression xsi:type="language_1:Not">
1064 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32">
1065 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.0"/>
1066 </operand>
1067 </expression>
1068 </value>
1069 </assertions>
1070 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.61">
996 <value xsi:type="language_1:Forall"> 1071 <value xsi:type="language_1:Forall">
997 <quantifiedVariables name="p0"> 1072 <quantifiedVariables name="p0">
998 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1073 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
999 </quantifiedVariables> 1074 </quantifiedVariables>
1000 <expression xsi:type="language_1:Not"> 1075 <expression xsi:type="language_1:Not">
1001 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29"> 1076 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35">
1002 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/> 1077 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.0"/>
1003 </operand> 1078 </operand>
1004 </expression> 1079 </expression>
1005 </value> 1080 </value>
@@ -1014,36 +1089,40 @@
1014 </relations> 1089 </relations>
1015 <relations xsi:type="language_1:RelationDeclaration" name="commSubsystem reference CommunicatingElement"> 1090 <relations xsi:type="language_1:RelationDeclaration" name="commSubsystem reference CommunicatingElement">
1016 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1091 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1017 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1092 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1018 </relations> 1093 </relations>
1019 <relations xsi:type="language_1:RelationDeclaration" name="communicationLink reference CommunicatingElement"> 1094 <relations xsi:type="language_1:RelationDeclaration" name="communicationLink reference CommunicatingElement">
1020 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1095 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1021 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1096 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1022 </relations> 1097 </relations>
1023 <relations xsi:type="language_1:RelationDeclaration" name="payload reference Spacecraft"> 1098 <relations xsi:type="language_1:RelationDeclaration" name="payload reference Spacecraft">
1024 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1099 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1025 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 1100 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1026 </relations> 1101 </relations>
1027 <relations xsi:type="language_1:RelationDeclaration" name="source reference DirectedCommunicationLink"> 1102 <relations xsi:type="language_1:RelationDeclaration" name="source reference DirectedCommunicationLink">
1028 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1103 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1029 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1104 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1030 </relations> 1105 </relations>
1031 <relations xsi:type="language_1:RelationDeclaration" name="target reference DirectedCommunicationLink"> 1106 <relations xsi:type="language_1:RelationDeclaration" name="target reference DirectedCommunicationLink">
1032 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1107 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1033 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1108 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1109 </relations>
1110 <relations xsi:type="language_1:RelationDeclaration" name="kind attribute Spacecraft" annotations="//@annotations.62">
1111 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1112 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1034 </relations> 1113 </relations>
1035 <relations xsi:type="language_1:RelationDeclaration" name="band attribute CommSubsystem"> 1114 <relations xsi:type="language_1:RelationDeclaration" name="band attribute CommSubsystem">
1036 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1115 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1037 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1116 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1038 </relations> 1117 </relations>
1039 <relations xsi:type="language_1:RelationDeclaration" name="gain attribute CommSubsystem"> 1118 <relations xsi:type="language_1:RelationDeclaration" name="gain attribute CommSubsystem">
1040 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1119 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1041 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1120 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1042 </relations> 1121 </relations>
1043 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.20"> 1122 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.22">
1044 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1123 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1045 <variables name="parameter Link"> 1124 <variables name="parameter Link">
1046 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1125 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1047 </variables> 1126 </variables>
1048 <value xsi:type="language_1:Or"> 1127 <value xsi:type="language_1:Or">
1049 <operands xsi:type="language_1:Exists"> 1128 <operands xsi:type="language_1:Exists">
@@ -1051,37 +1130,37 @@
1051 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1130 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1052 </quantifiedVariables> 1131 </quantifiedVariables>
1053 <quantifiedVariables name="variable SourceComm"> 1132 <quantifiedVariables name="variable SourceComm">
1054 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1133 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1055 </quantifiedVariables> 1134 </quantifiedVariables>
1056 <quantifiedVariables name="variable SourceElement"> 1135 <quantifiedVariables name="variable SourceElement">
1057 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1136 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1058 </quantifiedVariables> 1137 </quantifiedVariables>
1059 <expression xsi:type="language_1:And"> 1138 <expression xsi:type="language_1:And">
1060 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> 1139 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
1061 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.0"/> 1140 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.0"/>
1062 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.0"/> 1141 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
1063 </operands> 1142 </operands>
1064 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> 1143 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1065 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.0"/> 1144 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
1066 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.1"/> 1145 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/>
1067 </operands> 1146 </operands>
1068 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 1147 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1069 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.2"/> 1148 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.2"/>
1070 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.1"/> 1149 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/>
1071 </operands> 1150 </operands>
1072 <operands xsi:type="language_1:InstanceOf"> 1151 <operands xsi:type="language_1:InstanceOf">
1073 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.1"/> 1152 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/>
1074 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1153 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1075 </operands> 1154 </operands>
1076 <operands xsi:type="language_1:Distinct"> 1155 <operands xsi:type="language_1:Distinct">
1077 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.0"/> 1156 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.0"/>
1078 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.2"/> 1157 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.2"/>
1079 </operands> 1158 </operands>
1080 </expression> 1159 </expression>
1081 </operands> 1160 </operands>
1082 </value> 1161 </value>
1083 </relations> 1162 </relations>
1084 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.21"> 1163 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.23">
1085 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 1164 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1086 <variables name="parameter Mission"> 1165 <variables name="parameter Mission">
1087 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 1166 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
@@ -1089,18 +1168,18 @@
1089 <value xsi:type="language_1:Or"> 1168 <value xsi:type="language_1:Or">
1090 <operands xsi:type="language_1:And"> 1169 <operands xsi:type="language_1:And">
1091 <operands xsi:type="language_1:InstanceOf"> 1170 <operands xsi:type="language_1:InstanceOf">
1092 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/> 1171 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1093 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 1172 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1094 </operands> 1173 </operands>
1095 <operands xsi:type="language_1:Not"> 1174 <operands xsi:type="language_1:Not">
1096 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> 1175 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
1097 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/> 1176 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1098 </operand> 1177 </operand>
1099 </operands> 1178 </operands>
1100 </operands> 1179 </operands>
1101 </value> 1180 </value>
1102 </relations> 1181 </relations>
1103 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads" annotations="//@annotations.22"> 1182 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads" annotations="//@annotations.24">
1104 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 1183 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1105 <variables name="parameter Mission"> 1184 <variables name="parameter Mission">
1106 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 1185 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
@@ -1115,26 +1194,26 @@
1115 </quantifiedVariables> 1194 </quantifiedVariables>
1116 <expression xsi:type="language_1:And"> 1195 <expression xsi:type="language_1:And">
1117 <operands xsi:type="language_1:InstanceOf"> 1196 <operands xsi:type="language_1:InstanceOf">
1118 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/> 1197 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/>
1119 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 1198 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1120 </operands> 1199 </operands>
1121 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> 1200 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
1122 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/> 1201 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/>
1123 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.0"/> 1202 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/>
1124 </operands> 1203 </operands>
1125 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> 1204 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
1126 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/> 1205 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/>
1127 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/> 1206 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.1"/>
1128 </operands> 1207 </operands>
1129 <operands xsi:type="language_1:Distinct"> 1208 <operands xsi:type="language_1:Distinct">
1130 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.0"/> 1209 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/>
1131 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/> 1210 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.1"/>
1132 </operands> 1211 </operands>
1133 </expression> 1212 </expression>
1134 </operands> 1213 </operands>
1135 </value> 1214 </value>
1136 </relations> 1215 </relations>
1137 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload" annotations="//@annotations.23"> 1216 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload" annotations="//@annotations.25">
1138 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 1217 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1139 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1218 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1140 <variables name="parameter Mission"> 1219 <variables name="parameter Mission">
@@ -1146,26 +1225,26 @@
1146 <value xsi:type="language_1:Or"> 1225 <value xsi:type="language_1:Or">
1147 <operands xsi:type="language_1:Exists"> 1226 <operands xsi:type="language_1:Exists">
1148 <quantifiedVariables name="variable Payload"> 1227 <quantifiedVariables name="variable Payload">
1149 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 1228 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1150 </quantifiedVariables> 1229 </quantifiedVariables>
1151 <expression xsi:type="language_1:And"> 1230 <expression xsi:type="language_1:And">
1152 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> 1231 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
1153 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/> 1232 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1154 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.1"/> 1233 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
1155 </operands> 1234 </operands>
1156 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> 1235 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
1157 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.1"/> 1236 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
1158 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/> 1237 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/>
1159 </operands> 1238 </operands>
1160 <operands xsi:type="language_1:InstanceOf"> 1239 <operands xsi:type="language_1:InstanceOf">
1161 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/> 1240 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/>
1162 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 1241 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1163 </operands> 1242 </operands>
1164 </expression> 1243 </expression>
1165 </operands> 1244 </operands>
1166 </value> 1245 </value>
1167 </relations> 1246 </relations>
1168 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.24"> 1247 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.26">
1169 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1248 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1170 <variables name="parameter Spacecraft"> 1249 <variables name="parameter Spacecraft">
1171 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1250 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
@@ -1180,46 +1259,255 @@
1180 </quantifiedVariables> 1259 </quantifiedVariables>
1181 <expression xsi:type="language_1:And"> 1260 <expression xsi:type="language_1:And">
1182 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> 1261 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
1183 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/> 1262 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.0"/>
1184 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.1"/> 1263 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/>
1185 </operands> 1264 </operands>
1186 <operands xsi:type="language_1:InstanceOf"> 1265 <operands xsi:type="language_1:InstanceOf">
1187 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.1"/> 1266 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/>
1188 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 1267 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1189 </operands> 1268 </operands>
1190 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> 1269 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
1191 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/> 1270 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.0"/>
1192 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/> 1271 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1272 </operands>
1273 <operands xsi:type="language_1:InstanceOf">
1274 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1275 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1276 </operands>
1277 <operands xsi:type="language_1:Not">
1278 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
1279 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1280 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/>
1281 </operand>
1282 </operands>
1283 </expression>
1284 </operands>
1285 </value>
1286 </relations>
1287 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation" annotations="//@annotations.27">
1288 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1289 <variables name="parameter Spacecraft">
1290 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1291 </variables>
1292 <value xsi:type="language_1:Or">
1293 <operands xsi:type="language_1:Exists">
1294 <quantifiedVariables name="variable Mission">
1295 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1296 </quantifiedVariables>
1297 <quantifiedVariables name="variable GroundStation">
1298 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1299 </quantifiedVariables>
1300 <expression xsi:type="language_1:And">
1301 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
1302 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
1303 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.1"/>
1304 </operands>
1305 <operands xsi:type="language_1:InstanceOf">
1306 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.1"/>
1307 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1308 </operands>
1309 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
1310 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
1311 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
1193 </operands> 1312 </operands>
1194 <operands xsi:type="language_1:InstanceOf"> 1313 <operands xsi:type="language_1:InstanceOf">
1195 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/> 1314 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
1196 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1315 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1197 </operands> 1316 </operands>
1198 <operands xsi:type="language_1:Not"> 1317 <operands xsi:type="language_1:Not">
1199 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> 1318 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16">
1200 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/> 1319 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
1201 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.1"/> 1320 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.1"/>
1202 </operand> 1321 </operand>
1203 </operands> 1322 </operands>
1204 </expression> 1323 </expression>
1205 </operands> 1324 </operands>
1206 </value> 1325 </value>
1207 </relations> 1326 </relations>
1208 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.25"> 1327 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed" annotations="//@annotations.28">
1328 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1329 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1330 <variables name="parameter From">
1331 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1332 </variables>
1333 <variables name="parameter To">
1334 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1335 </variables>
1336 <value xsi:type="language_1:Or">
1337 <operands xsi:type="language_1:And">
1338 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.17"/>
1339 </operands>
1340 </value>
1341 </relations>
1342 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed" annotations="//@annotations.29">
1343 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1344 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1345 <variables name="parameter From">
1346 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1347 </variables>
1348 <variables name="parameter To">
1349 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1350 </variables>
1351 <value xsi:type="language_1:Or">
1352 <operands xsi:type="language_1:Exists">
1353 <quantifiedVariables name="variable 0">
1354 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1355 </quantifiedVariables>
1356 <expression xsi:type="language_1:And">
1357 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
1358 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1359 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/>
1360 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
1361 </operands>
1362 <operands xsi:type="language_1:Not">
1363 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
1364 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1365 </operand>
1366 </operands>
1367 </expression>
1368 </operands>
1369 <operands xsi:type="language_1:Exists">
1370 <quantifiedVariables name="variable virtual0">
1371 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1372 </quantifiedVariables>
1373 <expression xsi:type="language_1:And">
1374 <operands xsi:type="language_1:Equals">
1375 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.1/@quantifiedVariables.0"/>
1376 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1377 </operands>
1378 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
1379 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1380 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/>
1381 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.1/@quantifiedVariables.0"/>
1382 </operands>
1383 <operands xsi:type="language_1:InstanceOf">
1384 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1385 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1386 </operands>
1387 </expression>
1388 </operands>
1389 <operands xsi:type="language_1:Exists">
1390 <quantifiedVariables name="variable 0">
1391 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1392 </quantifiedVariables>
1393 <expression xsi:type="language_1:And">
1394 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
1395 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1396 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/>
1397 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.2/@quantifiedVariables.0"/>
1398 </operands>
1399 <operands xsi:type="language_1:InstanceOf">
1400 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1401 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1402 </operands>
1403 <operands xsi:type="language_1:InstanceOf">
1404 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/>
1405 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1406 </operands>
1407 </expression>
1408 </operands>
1409 </value>
1410 </relations>
1411 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna" annotations="//@annotations.30">
1412 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1413 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1414 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1415 <variables name="parameter From">
1416 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1417 </variables>
1418 <variables name="parameter To">
1419 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1420 </variables>
1421 <variables name="parameter Band">
1422 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1423 </variables>
1424 <value xsi:type="language_1:Or">
1425 <operands xsi:type="language_1:Exists">
1426 <quantifiedVariables name="variable Gain">
1427 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1428 </quantifiedVariables>
1429 <quantifiedVariables name="variable virtual0">
1430 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1431 </quantifiedVariables>
1432 <quantifiedVariables name="variable virtual2">
1433 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1434 </quantifiedVariables>
1435 <quantifiedVariables name="variable virtual4">
1436 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1437 </quantifiedVariables>
1438 <quantifiedVariables name="variable virtual6">
1439 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1440 </quantifiedVariables>
1441 <expression xsi:type="language_1:And">
1442 <operands xsi:type="language_1:InstanceOf">
1443 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
1444 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1445 </operands>
1446 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1447 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
1448 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.1"/>
1449 </operands>
1450 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1451 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.1"/>
1452 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/>
1453 </operands>
1454 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1455 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
1456 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.2"/>
1457 </operands>
1458 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1459 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.2"/>
1460 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/>
1461 </operands>
1462 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1463 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
1464 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.3"/>
1465 </operands>
1466 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1467 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.3"/>
1468 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/>
1469 </operands>
1470 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1471 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
1472 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.4"/>
1473 </operands>
1474 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1475 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.4"/>
1476 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/>
1477 </operands>
1478 </expression>
1479 </operands>
1480 </value>
1481 </relations>
1482 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U" annotations="//@annotations.31">
1483 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1484 <variables name="parameter Sat">
1485 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1486 </variables>
1487 <value xsi:type="language_1:Or">
1488 <operands xsi:type="language_1:And">
1489 <operands xsi:type="language_1:InstanceOf">
1490 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
1491 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1492 </operands>
1493 </operands>
1494 </value>
1495 </relations>
1496 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.32">
1209 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1497 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1210 <variables name="parameter Element"> 1498 <variables name="parameter Element">
1211 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1499 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1212 </variables> 1500 </variables>
1213 <value xsi:type="language_1:Or"> 1501 <value xsi:type="language_1:Or">
1214 <operands xsi:type="language_1:And"> 1502 <operands xsi:type="language_1:And">
1215 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> 1503 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
1216 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/> 1504 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
1217 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/> 1505 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
1218 </operands> 1506 </operands>
1219 </operands> 1507 </operands>
1220 </value> 1508 </value>
1221 </relations> 1509 </relations>
1222 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink" annotations="//@annotations.26"> 1510 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink" annotations="//@annotations.33">
1223 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1511 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1224 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1512 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1225 <variables name="parameter Source"> 1513 <variables name="parameter Source">
@@ -1230,11 +1518,11 @@
1230 </variables> 1518 </variables>
1231 <value xsi:type="language_1:Or"> 1519 <value xsi:type="language_1:Or">
1232 <operands xsi:type="language_1:And"> 1520 <operands xsi:type="language_1:And">
1233 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.16"/> 1521 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.22"/>
1234 </operands> 1522 </operands>
1235 </value> 1523 </value>
1236 </relations> 1524 </relations>
1237 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink" annotations="//@annotations.27"> 1525 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink" annotations="//@annotations.34">
1238 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1526 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1239 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1527 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1240 <variables name="parameter Source"> 1528 <variables name="parameter Source">
@@ -1246,387 +1534,387 @@
1246 <value xsi:type="language_1:Or"> 1534 <value xsi:type="language_1:Or">
1247 <operands xsi:type="language_1:Exists"> 1535 <operands xsi:type="language_1:Exists">
1248 <quantifiedVariables name="variable Link"> 1536 <quantifiedVariables name="variable Link">
1249 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1537 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1250 </quantifiedVariables> 1538 </quantifiedVariables>
1251 <quantifiedVariables name="variable SourceSubsystem"> 1539 <quantifiedVariables name="variable SourceSubsystem">
1252 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1540 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1253 </quantifiedVariables> 1541 </quantifiedVariables>
1254 <quantifiedVariables name="variable TargetSubsystem"> 1542 <quantifiedVariables name="variable TargetSubsystem">
1255 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1543 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1256 </quantifiedVariables> 1544 </quantifiedVariables>
1257 <expression xsi:type="language_1:And"> 1545 <expression xsi:type="language_1:And">
1258 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> 1546 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1259 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/> 1547 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1260 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/> 1548 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1261 </operands> 1549 </operands>
1262 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> 1550 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1263 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/> 1551 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1264 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.2"/> 1552 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
1265 </operands> 1553 </operands>
1266 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 1554 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1267 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/> 1555 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
1268 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/> 1556 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1269 </operands> 1557 </operands>
1270 <operands xsi:type="language_1:InstanceOf"> 1558 <operands xsi:type="language_1:InstanceOf">
1271 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/> 1559 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1272 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1560 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1273 </operands> 1561 </operands>
1274 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 1562 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1275 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.1"/> 1563 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
1276 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.2"/> 1564 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
1277 </operands> 1565 </operands>
1278 <operands xsi:type="language_1:InstanceOf"> 1566 <operands xsi:type="language_1:InstanceOf">
1279 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.2"/> 1567 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
1280 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1568 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1281 </operands> 1569 </operands>
1282 </expression> 1570 </expression>
1283 </operands> 1571 </operands>
1284 </value> 1572 </value>
1285 </relations> 1573 </relations>
1286 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.28"> 1574 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.35">
1287 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1575 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1288 <variables name="parameter Link"> 1576 <variables name="parameter Link">
1289 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1577 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1290 </variables> 1578 </variables>
1291 <value xsi:type="language_1:Or"> 1579 <value xsi:type="language_1:Or">
1292 <operands xsi:type="language_1:Exists"> 1580 <operands xsi:type="language_1:Exists">
1293 <quantifiedVariables name="variable SourceSubsystem"> 1581 <quantifiedVariables name="variable SourceSubsystem">
1294 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1582 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1295 </quantifiedVariables> 1583 </quantifiedVariables>
1296 <quantifiedVariables name="variable TargetSubsystem"> 1584 <quantifiedVariables name="variable TargetSubsystem">
1297 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1585 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1298 </quantifiedVariables> 1586 </quantifiedVariables>
1299 <quantifiedVariables name="variable Band"> 1587 <quantifiedVariables name="variable Band">
1300 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1588 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1301 </quantifiedVariables> 1589 </quantifiedVariables>
1302 <expression xsi:type="language_1:And"> 1590 <expression xsi:type="language_1:And">
1303 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> 1591 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1304 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> 1592 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
1305 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/> 1593 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/>
1306 </operands> 1594 </operands>
1307 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> 1595 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1308 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> 1596 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
1309 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/> 1597 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.1"/>
1310 </operands> 1598 </operands>
1311 <operands xsi:type="language_1:InstanceOf"> 1599 <operands xsi:type="language_1:InstanceOf">
1312 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/> 1600 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.1"/>
1313 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1601 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1314 </operands> 1602 </operands>
1315 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1603 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1316 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/> 1604 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/>
1317 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.2"/> 1605 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.2"/>
1318 </operands> 1606 </operands>
1319 <operands xsi:type="language_1:Not"> 1607 <operands xsi:type="language_1:Not">
1320 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> 1608 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
1321 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/> 1609 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.1"/>
1322 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.2"/> 1610 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.2"/>
1323 </operand> 1611 </operand>
1324 </operands> 1612 </operands>
1325 </expression> 1613 </expression>
1326 </operands> 1614 </operands>
1327 </value> 1615 </value>
1328 </relations> 1616 </relations>
1329 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand" annotations="//@annotations.29"> 1617 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand" annotations="//@annotations.36">
1330 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1618 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1331 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1619 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1332 <variables name="parameter Comm"> 1620 <variables name="parameter Comm">
1333 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1621 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1334 </variables> 1622 </variables>
1335 <variables name="parameter Band"> 1623 <variables name="parameter Band">
1336 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1624 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1337 </variables> 1625 </variables>
1338 <value xsi:type="language_1:Or"> 1626 <value xsi:type="language_1:Or">
1339 <operands xsi:type="language_1:And"> 1627 <operands xsi:type="language_1:And">
1340 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1628 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/> 1629 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
1342 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/> 1630 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/>
1343 </operands> 1631 </operands>
1344 </operands> 1632 </operands>
1345 </value> 1633 </value>
1346 </relations> 1634 </relations>
1347 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.30"> 1635 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.37">
1348 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1636 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1349 <variables name="parameter Link"> 1637 <variables name="parameter Link">
1350 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1638 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1351 </variables> 1639 </variables>
1352 <value xsi:type="language_1:Or"> 1640 <value xsi:type="language_1:Or">
1353 <operands xsi:type="language_1:Exists"> 1641 <operands xsi:type="language_1:Exists">
1354 <quantifiedVariables name="variable SourceSubsystem"> 1642 <quantifiedVariables name="variable SourceSubsystem">
1355 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1643 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1356 </quantifiedVariables> 1644 </quantifiedVariables>
1357 <quantifiedVariables name="variable TargetSubsystem"> 1645 <quantifiedVariables name="variable TargetSubsystem">
1358 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1646 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1359 </quantifiedVariables> 1647 </quantifiedVariables>
1360 <quantifiedVariables name="variable Gain"> 1648 <quantifiedVariables name="variable Gain">
1361 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1649 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1362 </quantifiedVariables> 1650 </quantifiedVariables>
1363 <expression xsi:type="language_1:And"> 1651 <expression xsi:type="language_1:And">
1364 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> 1652 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1365 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/> 1653 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1366 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/> 1654 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1367 </operands> 1655 </operands>
1368 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> 1656 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1369 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/> 1657 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1370 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/> 1658 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/>
1371 </operands> 1659 </operands>
1372 <operands xsi:type="language_1:InstanceOf"> 1660 <operands xsi:type="language_1:InstanceOf">
1373 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/> 1661 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/>
1374 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1662 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1375 </operands> 1663 </operands>
1376 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 1664 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1377 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/> 1665 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1378 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/> 1666 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.2"/>
1379 </operands> 1667 </operands>
1380 <operands xsi:type="language_1:Not"> 1668 <operands xsi:type="language_1:Not">
1381 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20"> 1669 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26">
1382 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/> 1670 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/>
1383 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/> 1671 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.2"/>
1384 </operand> 1672 </operand>
1385 </operands> 1673 </operands>
1386 </expression> 1674 </expression>
1387 </operands> 1675 </operands>
1388 </value> 1676 </value>
1389 </relations> 1677 </relations>
1390 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain" annotations="//@annotations.31"> 1678 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain" annotations="//@annotations.38">
1391 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1679 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1392 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1680 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1393 <variables name="parameter Comm"> 1681 <variables name="parameter Comm">
1394 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1682 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1395 </variables> 1683 </variables>
1396 <variables name="parameter Gain"> 1684 <variables name="parameter Gain">
1397 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1685 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1398 </variables> 1686 </variables>
1399 <value xsi:type="language_1:Or"> 1687 <value xsi:type="language_1:Or">
1400 <operands xsi:type="language_1:And"> 1688 <operands xsi:type="language_1:And">
1401 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 1689 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1402 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/> 1690 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
1403 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/> 1691 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.1"/>
1404 </operands> 1692 </operands>
1405 </operands> 1693 </operands>
1406 </value> 1694 </value>
1407 </relations> 1695 </relations>
1408 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.32"> 1696 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.39">
1409 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1697 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1410 <variables name="parameter Comm"> 1698 <variables name="parameter Comm">
1411 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1699 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1412 </variables> 1700 </variables>
1413 <value xsi:type="language_1:Or"> 1701 <value xsi:type="language_1:Or">
1414 <operands xsi:type="language_1:Exists"> 1702 <operands xsi:type="language_1:Exists">
1415 <quantifiedVariables name="variable virtual0"> 1703 <quantifiedVariables name="variable virtual0">
1416 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1704 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1417 </quantifiedVariables> 1705 </quantifiedVariables>
1418 <expression xsi:type="language_1:And"> 1706 <expression xsi:type="language_1:And">
1419 <operands xsi:type="language_1:Equals"> 1707 <operands xsi:type="language_1:Equals">
1420 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/> 1708 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/>
1421 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> 1709 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1422 </operands> 1710 </operands>
1423 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1711 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1424 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/> 1712 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/>
1425 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/> 1713 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/>
1426 </operands> 1714 </operands>
1427 <operands xsi:type="language_1:Not"> 1715 <operands xsi:type="language_1:Not">
1428 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> 1716 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28">
1429 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/> 1717 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/>
1430 </operand> 1718 </operand>
1431 </operands> 1719 </operands>
1432 </expression> 1720 </expression>
1433 </operands> 1721 </operands>
1434 </value> 1722 </value>
1435 </relations> 1723 </relations>
1436 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow" annotations="//@annotations.33"> 1724 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow" annotations="//@annotations.40">
1437 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1725 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1438 <variables name="parameter Comm"> 1726 <variables name="parameter Comm">
1439 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1727 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1440 </variables> 1728 </variables>
1441 <value xsi:type="language_1:Or"> 1729 <value xsi:type="language_1:Or">
1442 <operands xsi:type="language_1:Exists"> 1730 <operands xsi:type="language_1:Exists">
1443 <quantifiedVariables name="variable virtual0"> 1731 <quantifiedVariables name="variable virtual0">
1444 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1732 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1445 </quantifiedVariables> 1733 </quantifiedVariables>
1446 <expression xsi:type="language_1:And"> 1734 <expression xsi:type="language_1:And">
1447 <operands xsi:type="language_1:Equals"> 1735 <operands xsi:type="language_1:Equals">
1448 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> 1736 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/>
1449 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/> 1737 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/>
1450 </operands> 1738 </operands>
1451 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 1739 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1452 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> 1740 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/>
1453 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> 1741 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/>
1454 </operands> 1742 </operands>
1455 </expression> 1743 </expression>
1456 </operands> 1744 </operands>
1457 </value> 1745 </value>
1458 </relations> 1746 </relations>
1459 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.34"> 1747 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.41">
1460 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1748 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1461 <variables name="parameter Comm"> 1749 <variables name="parameter Comm">
1462 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1750 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1463 </variables> 1751 </variables>
1464 <value xsi:type="language_1:Or"> 1752 <value xsi:type="language_1:Or">
1465 <operands xsi:type="language_1:Exists"> 1753 <operands xsi:type="language_1:Exists">
1466 <quantifiedVariables name="variable virtual0"> 1754 <quantifiedVariables name="variable virtual0">
1467 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1755 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1468 </quantifiedVariables> 1756 </quantifiedVariables>
1469 <expression xsi:type="language_1:And"> 1757 <expression xsi:type="language_1:And">
1470 <operands xsi:type="language_1:Equals"> 1758 <operands xsi:type="language_1:Equals">
1471 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/> 1759 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/>
1472 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/> 1760 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
1473 </operands> 1761 </operands>
1474 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1762 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1475 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> 1763 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/>
1476 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/> 1764 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/>
1477 </operands> 1765 </operands>
1478 <operands xsi:type="language_1:Not"> 1766 <operands xsi:type="language_1:Not">
1479 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> 1767 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30">
1480 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> 1768 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/>
1481 </operand> 1769 </operand>
1482 </operands> 1770 </operands>
1483 </expression> 1771 </expression>
1484 </operands> 1772 </operands>
1485 </value> 1773 </value>
1486 </relations> 1774 </relations>
1487 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium" annotations="//@annotations.35"> 1775 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium" annotations="//@annotations.42">
1488 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1776 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1489 <variables name="parameter Comm"> 1777 <variables name="parameter Comm">
1490 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1778 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1491 </variables> 1779 </variables>
1492 <value xsi:type="language_1:Or"> 1780 <value xsi:type="language_1:Or">
1493 <operands xsi:type="language_1:Exists"> 1781 <operands xsi:type="language_1:Exists">
1494 <quantifiedVariables name="variable virtual0"> 1782 <quantifiedVariables name="variable virtual0">
1495 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1783 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1496 </quantifiedVariables> 1784 </quantifiedVariables>
1497 <expression xsi:type="language_1:And"> 1785 <expression xsi:type="language_1:And">
1498 <operands xsi:type="language_1:Equals"> 1786 <operands xsi:type="language_1:Equals">
1499 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@quantifiedVariables.0"/> 1787 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@value/@operands.0/@quantifiedVariables.0"/>
1500 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/> 1788 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/>
1501 </operands> 1789 </operands>
1502 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 1790 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1503 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/> 1791 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@variables.0"/>
1504 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@quantifiedVariables.0"/> 1792 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@value/@operands.0/@quantifiedVariables.0"/>
1505 </operands> 1793 </operands>
1506 </expression> 1794 </expression>
1507 </operands> 1795 </operands>
1508 </value> 1796 </value>
1509 </relations> 1797 </relations>
1510 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.36"> 1798 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.43">
1511 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1799 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1512 <variables name="parameter Comm"> 1800 <variables name="parameter Comm">
1513 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1801 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1514 </variables> 1802 </variables>
1515 <value xsi:type="language_1:Or"> 1803 <value xsi:type="language_1:Or">
1516 <operands xsi:type="language_1:Exists"> 1804 <operands xsi:type="language_1:Exists">
1517 <quantifiedVariables name="variable virtual0"> 1805 <quantifiedVariables name="variable virtual0">
1518 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1806 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1519 </quantifiedVariables> 1807 </quantifiedVariables>
1520 <quantifiedVariables name="variable virtual2"> 1808 <quantifiedVariables name="variable virtual2">
1521 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 1809 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1522 </quantifiedVariables> 1810 </quantifiedVariables>
1523 <expression xsi:type="language_1:And"> 1811 <expression xsi:type="language_1:And">
1524 <operands xsi:type="language_1:Equals"> 1812 <operands xsi:type="language_1:Equals">
1525 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/> 1813 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.0"/>
1526 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/> 1814 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
1527 </operands> 1815 </operands>
1528 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1816 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1529 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> 1817 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@variables.0"/>
1530 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/> 1818 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.0"/>
1531 </operands> 1819 </operands>
1532 <operands xsi:type="language_1:Equals"> 1820 <operands xsi:type="language_1:Equals">
1533 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/> 1821 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.1"/>
1534 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/> 1822 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/>
1535 </operands> 1823 </operands>
1536 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> 1824 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
1537 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> 1825 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@variables.0"/>
1538 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/> 1826 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.1"/>
1539 </operands> 1827 </operands>
1540 </expression> 1828 </expression>
1541 </operands> 1829 </operands>
1542 </value> 1830 </value>
1543 </relations> 1831 </relations>
1544 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.37"> 1832 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.44">
1545 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 1833 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1546 <variables name="parameter Sat"> 1834 <variables name="parameter Sat">
1547 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 1835 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1548 </variables> 1836 </variables>
1549 <value xsi:type="language_1:Or"> 1837 <value xsi:type="language_1:Or">
1550 <operands xsi:type="language_1:Exists"> 1838 <operands xsi:type="language_1:Exists">
1551 <quantifiedVariables name="variable SourceComm"> 1839 <quantifiedVariables name="variable SourceComm">
1552 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1840 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1553 </quantifiedVariables> 1841 </quantifiedVariables>
1554 <quantifiedVariables name="variable Link"> 1842 <quantifiedVariables name="variable Link">
1555 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 1843 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1556 </quantifiedVariables> 1844 </quantifiedVariables>
1557 <quantifiedVariables name="variable TargetComm"> 1845 <quantifiedVariables name="variable TargetComm">
1558 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1846 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1559 </quantifiedVariables> 1847 </quantifiedVariables>
1560 <quantifiedVariables name="variable Target"> 1848 <quantifiedVariables name="variable Target">
1561 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 1849 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1562 </quantifiedVariables> 1850 </quantifiedVariables>
1563 <expression xsi:type="language_1:And"> 1851 <expression xsi:type="language_1:And">
1564 <operands xsi:type="language_1:InstanceOf"> 1852 <operands xsi:type="language_1:InstanceOf">
1565 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/> 1853 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@variables.0"/>
1566 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 1854 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1567 </operands> 1855 </operands>
1568 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 1856 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1569 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/> 1857 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@variables.0"/>
1570 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/> 1858 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/>
1571 </operands> 1859 </operands>
1572 <operands xsi:type="language_1:Not"> 1860 <operands xsi:type="language_1:Not">
1573 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27"> 1861 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33">
1574 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/> 1862 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/>
1575 </operand> 1863 </operand>
1576 </operands> 1864 </operands>
1577 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> 1865 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1578 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.1"/> 1866 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.1"/>
1579 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/> 1867 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/>
1580 </operands> 1868 </operands>
1581 <operands xsi:type="language_1:InstanceOf"> 1869 <operands xsi:type="language_1:InstanceOf">
1582 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/> 1870 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/>
1583 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1871 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1584 </operands> 1872 </operands>
1585 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> 1873 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1586 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.1"/> 1874 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.1"/>
1587 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.2"/> 1875 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.2"/>
1588 </operands> 1876 </operands>
1589 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 1877 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1590 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.3"/> 1878 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.3"/>
1591 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.2"/> 1879 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.2"/>
1592 </operands> 1880 </operands>
1593 <operands xsi:type="language_1:InstanceOf"> 1881 <operands xsi:type="language_1:InstanceOf">
1594 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.2"/> 1882 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.2"/>
1595 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1883 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1596 </operands> 1884 </operands>
1597 <operands xsi:type="language_1:Not"> 1885 <operands xsi:type="language_1:Not">
1598 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28"> 1886 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34">
1599 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.3"/> 1887 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.3"/>
1600 </operand> 1888 </operand>
1601 </operands> 1889 </operands>
1602 </expression> 1890 </expression>
1603 </operands> 1891 </operands>
1604 </value> 1892 </value>
1605 </relations> 1893 </relations>
1606 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf" annotations="//@annotations.38"> 1894 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf" annotations="//@annotations.45">
1607 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1895 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1608 <variables name="parameter Comm"> 1896 <variables name="parameter Comm">
1609 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1897 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1610 </variables> 1898 </variables>
1611 <value xsi:type="language_1:Or"> 1899 <value xsi:type="language_1:Or">
1612 <operands xsi:type="language_1:Exists"> 1900 <operands xsi:type="language_1:Exists">
1613 <quantifiedVariables name="variable virtual0"> 1901 <quantifiedVariables name="variable virtual0">
1614 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1902 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1615 </quantifiedVariables> 1903 </quantifiedVariables>
1616 <expression xsi:type="language_1:And"> 1904 <expression xsi:type="language_1:And">
1617 <operands xsi:type="language_1:Equals"> 1905 <operands xsi:type="language_1:Equals">
1618 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/> 1906 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33/@value/@operands.0/@quantifiedVariables.0"/>
1619 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> 1907 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1620 </operands> 1908 </operands>
1621 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1909 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1622 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/> 1910 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33/@variables.0"/>
1623 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/> 1911 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33/@value/@operands.0/@quantifiedVariables.0"/>
1624 </operands> 1912 </operands>
1625 </expression> 1913 </expression>
1626 </operands> 1914 </operands>
1627 </value> 1915 </value>
1628 </relations> 1916 </relations>
1629 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork" annotations="//@annotations.39"> 1917 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork" annotations="//@annotations.46">
1630 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 1918 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1631 <variables name="parameter Network"> 1919 <variables name="parameter Network">
1632 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 1920 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
@@ -1634,13 +1922,13 @@
1634 <value xsi:type="language_1:Or"> 1922 <value xsi:type="language_1:Or">
1635 <operands xsi:type="language_1:And"> 1923 <operands xsi:type="language_1:And">
1636 <operands xsi:type="language_1:InstanceOf"> 1924 <operands xsi:type="language_1:InstanceOf">
1637 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/> 1925 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34/@variables.0"/>
1638 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 1926 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1639 </operands> 1927 </operands>
1640 </operands> 1928 </operands>
1641 </value> 1929 </value>
1642 </relations> 1930 </relations>
1643 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.40"> 1931 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.47">
1644 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1932 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1645 <variables name="parameter Spacecraft"> 1933 <variables name="parameter Spacecraft">
1646 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1934 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
@@ -1648,62 +1936,107 @@
1648 <value xsi:type="language_1:Or"> 1936 <value xsi:type="language_1:Or">
1649 <operands xsi:type="language_1:Exists"> 1937 <operands xsi:type="language_1:Exists">
1650 <quantifiedVariables name="variable virtual0"> 1938 <quantifiedVariables name="variable virtual0">
1651 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 1939 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1652 </quantifiedVariables> 1940 </quantifiedVariables>
1653 <quantifiedVariables name="variable virtual1"> 1941 <quantifiedVariables name="variable virtual1">
1654 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 1942 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1655 </quantifiedVariables> 1943 </quantifiedVariables>
1656 <expression xsi:type="language_1:And"> 1944 <expression xsi:type="language_1:And">
1657 <operands xsi:type="language_1:InstanceOf"> 1945 <operands xsi:type="language_1:InstanceOf">
1658 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/> 1946 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@variables.0"/>
1659 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 1947 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1660 </operands> 1948 </operands>
1661 <operands xsi:type="language_1:Equals"> 1949 <operands xsi:type="language_1:Equals">
1662 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/> 1950 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.0"/>
1663 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/> 1951 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
1664 </operands> 1952 </operands>
1665 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 1953 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1666 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/> 1954 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@variables.0"/>
1667 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.1"/> 1955 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.1"/>
1668 </operands> 1956 </operands>
1669 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 1957 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1670 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.1"/> 1958 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.1"/>
1671 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/> 1959 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.0"/>
1672 </operands> 1960 </operands>
1673 <operands xsi:type="language_1:Not"> 1961 <operands xsi:type="language_1:Not">
1674 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30"> 1962 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36">
1675 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/> 1963 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@variables.0"/>
1676 </operand> 1964 </operand>
1677 </operands> 1965 </operands>
1678 </expression> 1966 </expression>
1679 </operands> 1967 </operands>
1680 </value> 1968 </value>
1681 </relations> 1969 </relations>
1682 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries smallSat" annotations="//@annotations.41"> 1970 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries smallSat" annotations="//@annotations.48">
1683 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 1971 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1684 <variables name="parameter Sat"> 1972 <variables name="parameter Sat">
1685 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 1973 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1974 </variables>
1975 <value xsi:type="language_1:Or">
1976 <operands xsi:type="language_1:And">
1977 <operands xsi:type="language_1:InstanceOf">
1978 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36/@variables.0"/>
1979 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1980 </operands>
1981 </operands>
1982 </value>
1983 </relations>
1984 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftOfKind" annotations="//@annotations.49" defines="//@relations.7">
1985 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1986 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1987 <variables name="parameter Spacecraft">
1988 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1989 </variables>
1990 <variables name="parameter Kind">
1991 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1686 </variables> 1992 </variables>
1687 <value xsi:type="language_1:Or"> 1993 <value xsi:type="language_1:Or">
1688 <operands xsi:type="language_1:And"> 1994 <operands xsi:type="language_1:And">
1689 <operands xsi:type="language_1:InstanceOf"> 1995 <operands xsi:type="language_1:InstanceOf">
1690 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@variables.0"/> 1996 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.0"/>
1691 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 1997 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1998 </operands>
1999 <operands xsi:type="language_1:Equals">
2000 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.1"/>
2001 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/>
2002 </operands>
2003 </operands>
2004 <operands xsi:type="language_1:And">
2005 <operands xsi:type="language_1:InstanceOf">
2006 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.0"/>
2007 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
2008 </operands>
2009 <operands xsi:type="language_1:Equals">
2010 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.1"/>
2011 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/>
2012 </operands>
2013 </operands>
2014 <operands xsi:type="language_1:And">
2015 <operands xsi:type="language_1:InstanceOf">
2016 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.0"/>
2017 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
2018 </operands>
2019 <operands xsi:type="language_1:Equals">
2020 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.1"/>
2021 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/>
1692 </operands> 2022 </operands>
1693 </operands> 2023 </operands>
1694 </value> 2024 </value>
1695 </relations> 2025 </relations>
1696 <elements name="UHF literal TransceiverBand" definedInType="//@types.12"/> 2026 <elements name="UHF literal TransceiverBand" definedInType="//@types.13"/>
1697 <elements name="X literal TransceiverBand" definedInType="//@types.12"/> 2027 <elements name="X literal TransceiverBand" definedInType="//@types.13"/>
1698 <elements name="Ka literal TransceiverBand" definedInType="//@types.12"/> 2028 <elements name="Ka literal TransceiverBand" definedInType="//@types.13"/>
1699 <elements name="LOW literal AntennaGain" definedInType="//@types.13"/> 2029 <elements name="LOW literal AntennaGain" definedInType="//@types.14"/>
1700 <elements name="MEDIUM literal AntennaGain" definedInType="//@types.13"/> 2030 <elements name="MEDIUM literal AntennaGain" definedInType="//@types.14"/>
1701 <elements name="HIGH literal AntennaGain" definedInType="//@types.13"/> 2031 <elements name="HIGH literal AntennaGain" definedInType="//@types.14"/>
1702 <elements name="o 1" definedInType="//@types.14 //@types.16"/> 2032 <elements name="CubeSat3U literal SpacecraftKind" definedInType="//@types.15"/>
1703 <elements name="o 2" definedInType="//@types.18 //@types.20"/> 2033 <elements name="CubeSat6U literal SpacecraftKind" definedInType="//@types.15"/>
1704 <elements name="o 3" definedInType="//@types.22"/> 2034 <elements name="SmallSat literal SpacecraftKind" definedInType="//@types.15"/>
1705 <elements name="o 4" definedInType="//@types.22"/> 2035 <elements name="o 1" definedInType="//@types.16 //@types.18"/>
1706 <containmentHierarchies typesOrderedInHierarchy="//@types.2 //@types.0 //@types.1 //@types.9 //@types.7 //@types.10 //@types.3 //@types.6 //@types.8 //@types.11 //@types.5 //@types.4 //@types.14 //@types.15 //@types.16 //@types.17 //@types.18 //@types.19 //@types.20 //@types.21 //@types.22 //@types.23" containmentRelations="//@relations.0 //@relations.1 //@relations.2 //@relations.3 //@relations.4"/> 2036 <elements name="o 2" definedInType="//@types.20 //@types.22"/>
2037 <elements name="o 3" definedInType="//@types.24"/>
2038 <elements name="o 4" definedInType="//@types.24"/>
2039 <containmentHierarchies typesOrderedInHierarchy="//@types.8 //@types.4 //@types.6 //@types.12 //@types.0 //@types.1 //@types.9 //@types.2 //@types.10 //@types.11 //@types.5 //@types.3 //@types.7 //@types.16 //@types.17 //@types.18 //@types.19 //@types.20 //@types.21 //@types.22 //@types.23 //@types.24 //@types.25" containmentRelations="//@relations.0 //@relations.1 //@relations.2 //@relations.3 //@relations.4"/>
1707 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" lower="1"/> 2040 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" lower="1"/>
1708 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.0" upper="1"/> 2041 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.0" upper="1"/>
1709 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" lower="2"/> 2042 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" lower="2"/>
@@ -1720,40 +2053,51 @@
1720 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.13" relation="//@relations.7" upper="1"/> 2053 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.13" relation="//@relations.7" upper="1"/>
1721 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.14" relation="//@relations.8" lower="1"/> 2054 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.14" relation="//@relations.8" lower="1"/>
1722 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.15" relation="//@relations.8" upper="1"/> 2055 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.15" relation="//@relations.8" upper="1"/>
1723 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.16" targetRelation="//@relations.0"/> 2056 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.16" relation="//@relations.9" lower="1"/>
1724 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.17" targetRelation="//@relations.2"/> 2057 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.17" relation="//@relations.9" upper="1"/>
1725 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.18" targetRelation="//@relations.7"/> 2058 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.18" targetRelation="//@relations.0"/>
1726 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.19" targetRelation="//@relations.8"/> 2059 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.19" targetRelation="//@relations.2"/>
1727 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.9" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/> 2060 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.20" targetRelation="//@relations.8"/>
1728 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.10" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/> 2061 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.21" targetRelation="//@relations.9"/>
1729 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.11" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads"/> 2062 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.10" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
1730 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.12" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload"/> 2063 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.11" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
1731 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.13" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/> 2064 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.12" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads"/>
1732 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.14" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/> 2065 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.13" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload"/>
1733 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink"/> 2066 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.14" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
1734 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink"/> 2067 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/>
1735 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/> 2068 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectLinkAllowed"/>
1736 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBand"/> 2069 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.linkAllowed"/>
1737 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/> 2070 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingAntenna"/>
1738 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGain"/> 2071 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat3U"/>
1739 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow"/> 2072 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/>
1740 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainLow"/> 2073 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink"/>
1741 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium"/> 2074 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink"/>
1742 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainMedium"/> 2075 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/>
1743 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/> 2076 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBand"/>
1744 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/> 2077 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/>
1745 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBandUhf"/> 2078 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGain"/>
1746 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.28" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork"/> 2079 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow"/>
1747 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.29" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/> 2080 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.28" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainLow"/>
1748 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.30" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/> 2081 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.29" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium"/>
1749 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.20" query="//@annotations.20"/> 2082 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.30" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainMedium"/>
1750 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.21" query="//@annotations.24"/> 2083 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.31" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/>
1751 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.22" query="//@annotations.25"/> 2084 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.32" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/>
1752 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.28"/> 2085 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.33" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBandUhf"/>
1753 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.30"/> 2086 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.34" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork"/>
1754 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.32"/> 2087 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.35" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/>
1755 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.26" query="//@annotations.34"/> 2088 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.36" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/>
1756 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.27" query="//@annotations.36"/> 2089 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.37" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/>
2090 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.22" query="//@annotations.22"/>
2091 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.23"/>
2092 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.26"/>
2093 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.27"/>
2094 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.26" query="//@annotations.32"/>
2095 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.27" query="//@annotations.35"/>
1757 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.28" query="//@annotations.37"/> 2096 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.28" query="//@annotations.37"/>
1758 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.29" query="//@annotations.40"/> 2097 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.29" query="//@annotations.39"/>
2098 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.30" query="//@annotations.41"/>
2099 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.31" query="//@annotations.43"/>
2100 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.32" query="//@annotations.44"/>
2101 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.33" query="//@annotations.47"/>
2102 <annotations xsi:type="viatra2logicannotations:DefinedByDerivedFeature" target="//@relations.7" query="//@annotations.49"/>
1759</language:LogicProblem> 2103</language:LogicProblem>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel
index e458c179..6589a3ca 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel
@@ -1,11 +1,11 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="5" maxNewElements="10"> 2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="16" maxNewElements="32">
3 <problem href="outputs/debug/generation.logicproblem#/"/> 3 <problem href="outputs/debug/generation.logicproblem#/"/>
4 <partialrelationinterpretation> 4 <partialrelationinterpretation>
5 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.0"/> 5 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="outputs/debug/generation.logicproblem#//@elements.6"/> 7 <param1 href="outputs/debug/generation.logicproblem#//@elements.9"/>
8 <param2 href="outputs/debug/generation.logicproblem#//@elements.7"/> 8 <param2 href="outputs/debug/generation.logicproblem#//@elements.10"/>
9 </relationlinks> 9 </relationlinks>
10 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.0"/> 10 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.0"/>
11 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.1"/> 11 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.1"/>
@@ -18,12 +18,12 @@
18 <partialrelationinterpretation> 18 <partialrelationinterpretation>
19 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.2"/> 19 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="outputs/debug/generation.logicproblem#//@elements.7"/> 21 <param1 href="outputs/debug/generation.logicproblem#//@elements.10"/>
22 <param2 href="outputs/debug/generation.logicproblem#//@elements.8"/> 22 <param2 href="outputs/debug/generation.logicproblem#//@elements.11"/>
23 </relationlinks> 23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="outputs/debug/generation.logicproblem#//@elements.7"/> 25 <param1 href="outputs/debug/generation.logicproblem#//@elements.10"/>
26 <param2 href="outputs/debug/generation.logicproblem#//@elements.9"/> 26 <param2 href="outputs/debug/generation.logicproblem#//@elements.12"/>
27 </relationlinks> 27 </relationlinks>
28 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.0"/> 28 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.0"/>
29 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.1"/> 29 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.1"/>
@@ -50,29 +50,34 @@
50 </partialrelationinterpretation> 50 </partialrelationinterpretation>
51 <partialrelationinterpretation> 51 <partialrelationinterpretation>
52 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.7"/> 52 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.7"/>
53 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.0"/>
54 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.1"/>
55 </partialrelationinterpretation>
56 <partialrelationinterpretation>
57 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.8"/>
53 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 58 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
54 <param1 href="outputs/debug/generation.logicproblem#//@elements.8"/> 59 <param1 href="outputs/debug/generation.logicproblem#//@elements.11"/>
55 <param2 href="outputs/debug/generation.logicproblem#//@elements.1"/> 60 <param2 href="outputs/debug/generation.logicproblem#//@elements.1"/>
56 </relationlinks> 61 </relationlinks>
57 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 62 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
58 <param1 href="outputs/debug/generation.logicproblem#//@elements.9"/> 63 <param1 href="outputs/debug/generation.logicproblem#//@elements.12"/>
59 <param2 href="outputs/debug/generation.logicproblem#//@elements.2"/> 64 <param2 href="outputs/debug/generation.logicproblem#//@elements.2"/>
60 </relationlinks> 65 </relationlinks>
61 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.0"/> 66 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.0"/>
62 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.1"/> 67 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.1"/>
63 </partialrelationinterpretation> 68 </partialrelationinterpretation>
64 <partialrelationinterpretation> 69 <partialrelationinterpretation>
65 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.8"/> 70 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.9"/>
66 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 71 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
67 <param1 href="outputs/debug/generation.logicproblem#//@elements.8"/> 72 <param1 href="outputs/debug/generation.logicproblem#//@elements.11"/>
68 <param2 href="outputs/debug/generation.logicproblem#//@elements.4"/> 73 <param2 href="outputs/debug/generation.logicproblem#//@elements.4"/>
69 </relationlinks> 74 </relationlinks>
70 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> 75 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
71 <param1 href="outputs/debug/generation.logicproblem#//@elements.9"/> 76 <param1 href="outputs/debug/generation.logicproblem#//@elements.12"/>
72 <param2 href="outputs/debug/generation.logicproblem#//@elements.5"/> 77 <param2 href="outputs/debug/generation.logicproblem#//@elements.5"/>
73 </relationlinks> 78 </relationlinks>
74 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.0"/> 79 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.9/@parameters.0"/>
75 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.1"/> 80 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.9/@parameters.1"/>
76 </partialrelationinterpretation> 81 </partialrelationinterpretation>
77 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/> 82 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
78 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/> 83 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
@@ -81,62 +86,65 @@
81 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/> 86 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
82 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/> 87 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0"> 88 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
84 <elements href="outputs/debug/generation.logicproblem#//@elements.6"/> 89 <elements href="outputs/debug/generation.logicproblem#//@elements.9"/>
85 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.0"/> 90 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.0"/>
86 </partialtypeinterpratation> 91 </partialtypeinterpratation>
87 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4"> 92 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
88 <elements href="outputs/debug/generation.logicproblem#//@elements.6"/> 93 <elements href="outputs/debug/generation.logicproblem#//@elements.9"/>
89 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.1"/> 94 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.1"/>
90 </partialtypeinterpratation> 95 </partialtypeinterpratation>
91 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2"> 96 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
92 <elements href="outputs/debug/generation.logicproblem#//@elements.7"/> 97 <elements href="outputs/debug/generation.logicproblem#//@elements.10"/>
93 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.2"/> 98 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.2"/>
94 </partialtypeinterpratation> 99 </partialtypeinterpratation>
95 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6"> 100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
96 <elements href="outputs/debug/generation.logicproblem#//@elements.7"/> 101 <elements href="outputs/debug/generation.logicproblem#//@elements.10"/>
97 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.3"/> 102 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.3"/>
98 </partialtypeinterpratation> 103 </partialtypeinterpratation>
99 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.18"> 104 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.19">
100 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.4"/> 105 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.4"/>
101 </partialtypeinterpratation> 106 </partialtypeinterpratation>
102 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18"> 107 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
108 <elements href="outputs/debug/generation.logicproblem#//@elements.11"/>
109 <elements href="outputs/debug/generation.logicproblem#//@elements.12"/>
103 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.5"/> 110 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.5"/>
104 </partialtypeinterpratation> 111 </partialtypeinterpratation>
105 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18"> 112 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6">
106 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.6"/> 113 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.6"/>
107 </partialtypeinterpratation> 114 </partialtypeinterpratation>
108 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18"> 115 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7">
109 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.7"/> 116 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.7"/>
110 </partialtypeinterpratation> 117 </partialtypeinterpratation>
111 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8"> 118 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.11">
112 <elements href="outputs/debug/generation.logicproblem#//@elements.8"/>
113 <elements href="outputs/debug/generation.logicproblem#//@elements.9"/>
114 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.8"/> 119 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.8"/>
115 </partialtypeinterpratation> 120 </partialtypeinterpratation>
116 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9"> 121 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.16 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19">
117 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.9"/> 122 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.9"/>
118 </partialtypeinterpratation> 123 </partialtypeinterpratation>
119 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10"> 124 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.16 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19">
120 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.10"/> 125 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.10"/>
121 </partialtypeinterpratation> 126 </partialtypeinterpratation>
122 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.14"> 127 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19">
123 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.11"/> 128 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.11"/>
124 </partialtypeinterpratation> 129 </partialtypeinterpratation>
125 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.4"> 130 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19">
126 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.15"/> 131 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.12"/>
127 </partialtypeinterpratation> 132 </partialtypeinterpratation>
128 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.16"> 133 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.4">
129 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.17"/> 134 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.17"/>
130 </partialtypeinterpratation> 135 </partialtypeinterpratation>
131 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.6"> 136 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.17">
132 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.19"/> 137 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.19"/>
133 </partialtypeinterpratation> 138 </partialtypeinterpratation>
134 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18"> 139 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.6">
135 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.21"/> 140 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.21"/>
136 </partialtypeinterpratation> 141 </partialtypeinterpratation>
137 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.12"> 142 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19">
138 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.23"/> 143 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.23"/>
139 </partialtypeinterpratation> 144 </partialtypeinterpratation>
145 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.9">
146 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.25"/>
147 </partialtypeinterpratation>
140 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/> 148 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
141 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> 149 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
142 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> 150 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
@@ -158,4 +166,5 @@
158 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/> 166 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
159 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/> 167 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
160 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/> 168 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
169 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
161</partialinterpretation:PartialInterpretation> 170</partialinterpretation:PartialInterpretation>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt
index 67589bd9..1d3c9f62 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt
@@ -1 +1 @@
Model generation finished Model generation started
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml
index b8da662f..59498c9f 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml
@@ -221,6 +221,114 @@ graph
221 id 6 221 id 6
222 graphics 222 graphics
223 [ 223 [
224 w 288.20000000000005
225 h 40
226 type "rectangle"
227 fill "#FFFFFF"
228 fill2 "#FFFFFF"
229 outline "#000000"
230 ]
231 LabelGraphics
232 [
233 text "CubeSat3U literal SpacecraftKind"
234 outline "#000000"
235 fill "#FFFFFF"
236 fontSize 16
237 fontName "Monospace"
238 autoSizePolicy "node_width"
239 anchor "t"
240 borderDistance 0.0
241 ]
242 LabelGraphics
243 [
244 text "
245 SpacecraftKind enum
246 "
247 fontSize 14
248 fontName "Consolas"
249 alignment "left"
250 anchor "tl"
251 borderDistance 6
252 ]
253 ]
254
255 node
256 [
257 id 7
258 graphics
259 [
260 w 288.20000000000005
261 h 40
262 type "rectangle"
263 fill "#FFFFFF"
264 fill2 "#FFFFFF"
265 outline "#000000"
266 ]
267 LabelGraphics
268 [
269 text "CubeSat6U literal SpacecraftKind"
270 outline "#000000"
271 fill "#FFFFFF"
272 fontSize 16
273 fontName "Monospace"
274 autoSizePolicy "node_width"
275 anchor "t"
276 borderDistance 0.0
277 ]
278 LabelGraphics
279 [
280 text "
281 SpacecraftKind enum
282 "
283 fontSize 14
284 fontName "Consolas"
285 alignment "left"
286 anchor "tl"
287 borderDistance 6
288 ]
289 ]
290
291 node
292 [
293 id 8
294 graphics
295 [
296 w 279.40000000000003
297 h 40
298 type "rectangle"
299 fill "#FFFFFF"
300 fill2 "#FFFFFF"
301 outline "#000000"
302 ]
303 LabelGraphics
304 [
305 text "SmallSat literal SpacecraftKind"
306 outline "#000000"
307 fill "#FFFFFF"
308 fontSize 16
309 fontName "Monospace"
310 autoSizePolicy "node_width"
311 anchor "t"
312 borderDistance 0.0
313 ]
314 LabelGraphics
315 [
316 text "
317 SpacecraftKind enum
318 "
319 fontSize 14
320 fontName "Consolas"
321 alignment "left"
322 anchor "tl"
323 borderDistance 6
324 ]
325 ]
326
327 node
328 [
329 id 9
330 graphics
331 [
224 w 315.70000000000005 332 w 315.70000000000005
225 h 82 333 h 82
226 type "rectangle" 334 type "rectangle"
@@ -257,7 +365,7 @@ graph
257 365
258 node 366 node
259 [ 367 [
260 id 7 368 id 10
261 graphics 369 graphics
262 [ 370 [
263 w 308.0 371 w 308.0
@@ -296,7 +404,7 @@ graph
296 404
297 node 405 node
298 [ 406 [
299 id 8 407 id 11
300 graphics 408 graphics
301 [ 409 [
302 w 254.10000000000002 410 w 254.10000000000002
@@ -333,7 +441,7 @@ graph
333 441
334 node 442 node
335 [ 443 [
336 id 9 444 id 12
337 graphics 445 graphics
338 [ 446 [
339 w 254.10000000000002 447 w 254.10000000000002
@@ -370,7 +478,7 @@ graph
370 478
371 node 479 node
372 [ 480 [
373 id 10 481 id 13
374 graphics 482 graphics
375 [ 483 [
376 w 41.800000000000004 484 w 41.800000000000004
@@ -405,7 +513,7 @@ graph
405 513
406 node 514 node
407 [ 515 [
408 id 11 516 id 14
409 graphics 517 graphics
410 [ 518 [
411 w 50.6 519 w 50.6
@@ -440,11 +548,11 @@ graph
440 548
441 node 549 node
442 [ 550 [
443 id 12 551 id 15
444 graphics 552 graphics
445 [ 553 [
446 w 323.40000000000003 554 w 323.40000000000003
447 h 82 555 h 96
448 type "rectangle" 556 type "rectangle"
449 fill "#FFFFFF" 557 fill "#FFFFFF"
450 fill2 "#FFFFFF" 558 fill2 "#FFFFFF"
@@ -467,6 +575,7 @@ graph
467 CommunicatingElement class 575 CommunicatingElement class
468 Spacecraft class 576 Spacecraft class
469 CubeSat6U class 577 CubeSat6U class
578 CubeSat class
470 CommunicatingElement class UndefinedPart 579 CommunicatingElement class UndefinedPart
471 " 580 "
472 fontSize 14 581 fontSize 14
@@ -479,11 +588,11 @@ graph
479 588
480 node 589 node
481 [ 590 [
482 id 13 591 id 16
483 graphics 592 graphics
484 [ 593 [
485 w 223.3 594 w 323.40000000000003
486 h 54 595 h 96
487 type "rectangle" 596 type "rectangle"
488 fill "#FFFFFF" 597 fill "#FFFFFF"
489 fill2 "#FFFFFF" 598 fill2 "#FFFFFF"
@@ -503,8 +612,11 @@ graph
503 LabelGraphics 612 LabelGraphics
504 [ 613 [
505 text " 614 text "
506 Payload class 615 CommunicatingElement class
507 InterferometryPayload class 616 Spacecraft class
617 CubeSat3U class
618 CubeSat class
619 CommunicatingElement class UndefinedPart
508 " 620 "
509 fontSize 14 621 fontSize 14
510 fontName "Consolas" 622 fontName "Consolas"
@@ -516,10 +628,10 @@ graph
516 628
517 node 629 node
518 [ 630 [
519 id 14 631 id 17
520 graphics 632 graphics
521 [ 633 [
522 w 269.5 634 w 223.3
523 h 54 635 h 54
524 type "rectangle" 636 type "rectangle"
525 fill "#FFFFFF" 637 fill "#FFFFFF"
@@ -540,8 +652,8 @@ graph
540 LabelGraphics 652 LabelGraphics
541 [ 653 [
542 text " 654 text "
543 CommSubsystem class 655 Payload class
544 CommSubsystem class UndefinedPart 656 InterferometryPayload class
545 " 657 "
546 fontSize 14 658 fontSize 14
547 fontName "Consolas" 659 fontName "Consolas"
@@ -553,11 +665,11 @@ graph
553 665
554 node 666 node
555 [ 667 [
556 id 15 668 id 18
557 graphics 669 graphics
558 [ 670 [
559 w 323.40000000000003 671 w 269.5
560 h 82 672 h 54
561 type "rectangle" 673 type "rectangle"
562 fill "#FFFFFF" 674 fill "#FFFFFF"
563 fill2 "#FFFFFF" 675 fill2 "#FFFFFF"
@@ -577,10 +689,8 @@ graph
577 LabelGraphics 689 LabelGraphics
578 [ 690 [
579 text " 691 text "
580 CommunicatingElement class 692 CommSubsystem class
581 Spacecraft class 693 CommSubsystem class UndefinedPart
582 SmallSat class
583 CommunicatingElement class UndefinedPart
584 " 694 "
585 fontSize 14 695 fontSize 14
586 fontName "Consolas" 696 fontName "Consolas"
@@ -592,7 +702,7 @@ graph
592 702
593 node 703 node
594 [ 704 [
595 id 16 705 id 19
596 graphics 706 graphics
597 [ 707 [
598 w 223.3 708 w 223.3
@@ -629,7 +739,7 @@ graph
629 739
630 node 740 node
631 [ 741 [
632 id 17 742 id 20
633 graphics 743 graphics
634 [ 744 [
635 w 269.5 745 w 269.5
@@ -666,11 +776,11 @@ graph
666 776
667 node 777 node
668 [ 778 [
669 id 18 779 id 21
670 graphics 780 graphics
671 [ 781 [
672 w 269.5 782 w 254.10000000000002
673 h 54 783 h 40
674 type "rectangle" 784 type "rectangle"
675 fill "#FFFFFF" 785 fill "#FFFFFF"
676 fill2 "#FFFFFF" 786 fill2 "#FFFFFF"
@@ -690,8 +800,7 @@ graph
690 LabelGraphics 800 LabelGraphics
691 [ 801 [
692 text " 802 text "
693 CommSubsystem class 803 DirectedCommunicationLink class
694 CommSubsystem class UndefinedPart
695 " 804 "
696 fontSize 14 805 fontSize 14
697 fontName "Consolas" 806 fontName "Consolas"
@@ -703,11 +812,11 @@ graph
703 812
704 node 813 node
705 [ 814 [
706 id 19 815 id 22
707 graphics 816 graphics
708 [ 817 [
709 w 254.10000000000002 818 w 269.5
710 h 40 819 h 54
711 type "rectangle" 820 type "rectangle"
712 fill "#FFFFFF" 821 fill "#FFFFFF"
713 fill2 "#FFFFFF" 822 fill2 "#FFFFFF"
@@ -727,7 +836,8 @@ graph
727 LabelGraphics 836 LabelGraphics
728 [ 837 [
729 text " 838 text "
730 DirectedCommunicationLink class 839 CommSubsystem class
840 CommSubsystem class UndefinedPart
731 " 841 "
732 fontSize 14 842 fontSize 14
733 fontName "Consolas" 843 fontName "Consolas"
@@ -739,7 +849,7 @@ graph
739 849
740 node 850 node
741 [ 851 [
742 id 20 852 id 23
743 graphics 853 graphics
744 [ 854 [
745 w 269.5 855 w 269.5
@@ -776,7 +886,7 @@ graph
776 886
777 node 887 node
778 [ 888 [
779 id 21 889 id 24
780 graphics 890 graphics
781 [ 891 [
782 w 254.10000000000002 892 w 254.10000000000002
@@ -812,7 +922,7 @@ graph
812 922
813 node 923 node
814 [ 924 [
815 id 22 925 id 25
816 graphics 926 graphics
817 [ 927 [
818 w 112.2 928 w 112.2
@@ -847,7 +957,7 @@ graph
847 957
848 node 958 node
849 [ 959 [
850 id 23 960 id 26
851 graphics 961 graphics
852 [ 962 [
853 w 85.80000000000001 963 w 85.80000000000001
@@ -882,7 +992,7 @@ graph
882 992
883 node 993 node
884 [ 994 [
885 id 24 995 id 27
886 graphics 996 graphics
887 [ 997 [
888 w 103.4 998 w 103.4
@@ -917,7 +1027,7 @@ graph
917 1027
918 node 1028 node
919 [ 1029 [
920 id 25 1030 id 28
921 graphics 1031 graphics
922 [ 1032 [
923 w 103.4 1033 w 103.4
@@ -951,8 +1061,8 @@ graph
951 ] 1061 ]
952 edge 1062 edge
953 [ 1063 [
954 source 6 1064 source 9
955 target 7 1065 target 10
956 graphics 1066 graphics
957 [ 1067 [
958 fill "#000000" 1068 fill "#000000"
@@ -971,8 +1081,8 @@ graph
971 ] 1081 ]
972 edge 1082 edge
973 [ 1083 [
974 source 6 1084 source 9
975 target 12 1085 target 15
976 graphics 1086 graphics
977 [ 1087 [
978 fill "#000000" 1088 fill "#000000"
@@ -991,8 +1101,8 @@ graph
991 ] 1101 ]
992 edge 1102 edge
993 [ 1103 [
994 source 6 1104 source 9
995 target 15 1105 target 16
996 graphics 1106 graphics
997 [ 1107 [
998 fill "#000000" 1108 fill "#000000"
@@ -1011,8 +1121,8 @@ graph
1011 ] 1121 ]
1012 edge 1122 edge
1013 [ 1123 [
1014 source 7 1124 source 10
1015 target 8 1125 target 11
1016 graphics 1126 graphics
1017 [ 1127 [
1018 fill "#000000" 1128 fill "#000000"
@@ -1031,8 +1141,8 @@ graph
1031 ] 1141 ]
1032 edge 1142 edge
1033 [ 1143 [
1034 source 7 1144 source 10
1035 target 9 1145 target 12
1036 graphics 1146 graphics
1037 [ 1147 [
1038 fill "#000000" 1148 fill "#000000"
@@ -1051,8 +1161,8 @@ graph
1051 ] 1161 ]
1052 edge 1162 edge
1053 [ 1163 [
1054 source 12 1164 source 15
1055 target 14 1165 target 18
1056 graphics 1166 graphics
1057 [ 1167 [
1058 fill "#000000" 1168 fill "#000000"
@@ -1071,8 +1181,8 @@ graph
1071 ] 1181 ]
1072 edge 1182 edge
1073 [ 1183 [
1074 source 15 1184 source 16
1075 target 17 1185 target 20
1076 graphics 1186 graphics
1077 [ 1187 [
1078 fill "#000000" 1188 fill "#000000"
@@ -1092,7 +1202,7 @@ graph
1092 edge 1202 edge
1093 [ 1203 [
1094 source 15 1204 source 15
1095 target 18 1205 target 22
1096 graphics 1206 graphics
1097 [ 1207 [
1098 fill "#000000" 1208 fill "#000000"
@@ -1111,8 +1221,8 @@ graph
1111 ] 1221 ]
1112 edge 1222 edge
1113 [ 1223 [
1114 source 12 1224 source 16
1115 target 20 1225 target 23
1116 graphics 1226 graphics
1117 [ 1227 [
1118 fill "#000000" 1228 fill "#000000"
@@ -1132,7 +1242,7 @@ graph
1132 edge 1242 edge
1133 [ 1243 [
1134 source 15 1244 source 15
1135 target 19 1245 target 21
1136 graphics 1246 graphics
1137 [ 1247 [
1138 fill "#000000" 1248 fill "#000000"
@@ -1151,8 +1261,8 @@ graph
1151 ] 1261 ]
1152 edge 1262 edge
1153 [ 1263 [
1154 source 12 1264 source 16
1155 target 21 1265 target 24
1156 graphics 1266 graphics
1157 [ 1267 [
1158 fill "#000000" 1268 fill "#000000"
@@ -1171,8 +1281,8 @@ graph
1171 ] 1281 ]
1172 edge 1282 edge
1173 [ 1283 [
1174 source 12 1284 source 16
1175 target 13 1285 target 17
1176 graphics 1286 graphics
1177 [ 1287 [
1178 fill "#000000" 1288 fill "#000000"
@@ -1192,7 +1302,7 @@ graph
1192 edge 1302 edge
1193 [ 1303 [
1194 source 15 1304 source 15
1195 target 16 1305 target 19
1196 graphics 1306 graphics
1197 [ 1307 [
1198 fill "#000000" 1308 fill "#000000"
@@ -1211,7 +1321,7 @@ graph
1211 ] 1321 ]
1212 edge 1322 edge
1213 [ 1323 [
1214 source 19 1324 source 21
1215 target 18 1325 target 18
1216 graphics 1326 graphics
1217 [ 1327 [
@@ -1230,8 +1340,8 @@ graph
1230 ] 1340 ]
1231 edge 1341 edge
1232 [ 1342 [
1233 source 21 1343 source 24
1234 target 20 1344 target 23
1235 graphics 1345 graphics
1236 [ 1346 [
1237 fill "#000000" 1347 fill "#000000"
@@ -1249,8 +1359,8 @@ graph
1249 ] 1359 ]
1250 edge 1360 edge
1251 [ 1361 [
1252 source 19 1362 source 21
1253 target 8 1363 target 12
1254 graphics 1364 graphics
1255 [ 1365 [
1256 fill "#000000" 1366 fill "#000000"
@@ -1268,8 +1378,8 @@ graph
1268 ] 1378 ]
1269 edge 1379 edge
1270 [ 1380 [
1271 source 21 1381 source 24
1272 target 8 1382 target 11
1273 graphics 1383 graphics
1274 [ 1384 [
1275 fill "#000000" 1385 fill "#000000"
@@ -1287,7 +1397,7 @@ graph
1287 ] 1397 ]
1288 edge 1398 edge
1289 [ 1399 [
1290 source 8 1400 source 11
1291 target 1 1401 target 1
1292 graphics 1402 graphics
1293 [ 1403 [
@@ -1306,7 +1416,7 @@ graph
1306 ] 1416 ]
1307 edge 1417 edge
1308 [ 1418 [
1309 source 9 1419 source 12
1310 target 2 1420 target 2
1311 graphics 1421 graphics
1312 [ 1422 [
@@ -1325,8 +1435,8 @@ graph
1325 ] 1435 ]
1326 edge 1436 edge
1327 [ 1437 [
1328 source 14 1438 source 18
1329 target 0 1439 target 2
1330 graphics 1440 graphics
1331 [ 1441 [
1332 fill "#000000" 1442 fill "#000000"
@@ -1344,7 +1454,7 @@ graph
1344 ] 1454 ]
1345 edge 1455 edge
1346 [ 1456 [
1347 source 17 1457 source 20
1348 target 1 1458 target 1
1349 graphics 1459 graphics
1350 [ 1460 [
@@ -1363,7 +1473,7 @@ graph
1363 ] 1473 ]
1364 edge 1474 edge
1365 [ 1475 [
1366 source 18 1476 source 22
1367 target 1 1477 target 1
1368 graphics 1478 graphics
1369 [ 1479 [
@@ -1382,7 +1492,7 @@ graph
1382 ] 1492 ]
1383 edge 1493 edge
1384 [ 1494 [
1385 source 20 1495 source 23
1386 target 1 1496 target 1
1387 graphics 1497 graphics
1388 [ 1498 [
@@ -1401,7 +1511,7 @@ graph
1401 ] 1511 ]
1402 edge 1512 edge
1403 [ 1513 [
1404 source 8 1514 source 11
1405 target 4 1515 target 4
1406 graphics 1516 graphics
1407 [ 1517 [
@@ -1420,7 +1530,7 @@ graph
1420 ] 1530 ]
1421 edge 1531 edge
1422 [ 1532 [
1423 source 9 1533 source 12
1424 target 5 1534 target 5
1425 graphics 1535 graphics
1426 [ 1536 [
@@ -1439,8 +1549,8 @@ graph
1439 ] 1549 ]
1440 edge 1550 edge
1441 [ 1551 [
1442 source 14 1552 source 18
1443 target 3 1553 target 5
1444 graphics 1554 graphics
1445 [ 1555 [
1446 fill "#000000" 1556 fill "#000000"
@@ -1458,8 +1568,8 @@ graph
1458 ] 1568 ]
1459 edge 1569 edge
1460 [ 1570 [
1461 source 17 1571 source 20
1462 target 3 1572 target 5
1463 graphics 1573 graphics
1464 [ 1574 [
1465 fill "#000000" 1575 fill "#000000"
@@ -1477,8 +1587,8 @@ graph
1477 ] 1587 ]
1478 edge 1588 edge
1479 [ 1589 [
1480 source 18 1590 source 22
1481 target 4 1591 target 5
1482 graphics 1592 graphics
1483 [ 1593 [
1484 fill "#000000" 1594 fill "#000000"
@@ -1496,7 +1606,7 @@ graph
1496 ] 1606 ]
1497 edge 1607 edge
1498 [ 1608 [
1499 source 20 1609 source 23
1500 target 4 1610 target 4
1501 graphics 1611 graphics
1502 [ 1612 [
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.png
index 46fb5138..832f8b42 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.png
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.png
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi
index 5d49f882..44ca2b3e 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi
@@ -4,16 +4,16 @@
4 <commSubsystem band="X" gain="MEDIUM"/> 4 <commSubsystem band="X" gain="MEDIUM"/>
5 <commSubsystem band="Ka" gain="HIGH"/> 5 <commSubsystem band="Ka" gain="HIGH"/>
6 </groundStationNetwork> 6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat"> 7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem band="X" gain="HIGH"/>
8 <commSubsystem band="X" gain="MEDIUM"/> 9 <commSubsystem band="X" gain="MEDIUM"/>
9 <commSubsystem band="X"/> 10 <communicationLink source="//@spacecraft.0/@commSubsystem.1" target="//@groundStationNetwork/@commSubsystem.0"/>
10 <communicationLink source="//@spacecraft.0/@commSubsystem.0" target="//@groundStationNetwork/@commSubsystem.0"/>
11 <payload xsi:type="satellite:InterferometryPayload"/> 11 <payload xsi:type="satellite:InterferometryPayload"/>
12 </spacecraft> 12 </spacecraft>
13 <spacecraft xsi:type="satellite:CubeSat6U"> 13 <spacecraft xsi:type="satellite:CubeSat6U">
14 <commSubsystem/> 14 <commSubsystem band="X" gain="HIGH"/>
15 <commSubsystem band="X" gain="MEDIUM"/> 15 <commSubsystem band="Ka" gain="HIGH"/>
16 <communicationLink source="//@spacecraft.1/@commSubsystem.1" target="//@groundStationNetwork/@commSubsystem.0"/> 16 <communicationLink source="//@spacecraft.1/@commSubsystem.1" target="//@groundStationNetwork/@commSubsystem.1"/>
17 <payload xsi:type="satellite:InterferometryPayload"/> 17 <payload xsi:type="satellite:InterferometryPayload"/>
18 </spacecraft> 18 </spacecraft>
19</satellite:InterferometryMission> 19</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.gml
deleted file mode 100644
index c5fd2a74..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.gml
+++ /dev/null
@@ -1,1983 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 244.20000000000002
9 h 40
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "UHF literal TransceiverBand"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 TransceiverBand enum
30 "
31 fontSize 14
32 fontName "Consolas"
33 alignment "left"
34 anchor "tl"
35 borderDistance 6
36 ]
37 ]
38
39 node
40 [
41 id 1
42 graphics
43 [
44 w 226.60000000000002
45 h 40
46 type "rectangle"
47 fill "#FFFFFF"
48 fill2 "#FFFFFF"
49 outline "#000000"
50 ]
51 LabelGraphics
52 [
53 text "X literal TransceiverBand"
54 outline "#000000"
55 fill "#FFFFFF"
56 fontSize 16
57 fontName "Monospace"
58 autoSizePolicy "node_width"
59 anchor "t"
60 borderDistance 0.0
61 ]
62 LabelGraphics
63 [
64 text "
65 TransceiverBand enum
66 "
67 fontSize 14
68 fontName "Consolas"
69 alignment "left"
70 anchor "tl"
71 borderDistance 6
72 ]
73 ]
74
75 node
76 [
77 id 2
78 graphics
79 [
80 w 235.4
81 h 40
82 type "rectangle"
83 fill "#FFFFFF"
84 fill2 "#FFFFFF"
85 outline "#000000"
86 ]
87 LabelGraphics
88 [
89 text "Ka literal TransceiverBand"
90 outline "#000000"
91 fill "#FFFFFF"
92 fontSize 16
93 fontName "Monospace"
94 autoSizePolicy "node_width"
95 anchor "t"
96 borderDistance 0.0
97 ]
98 LabelGraphics
99 [
100 text "
101 TransceiverBand enum
102 "
103 fontSize 14
104 fontName "Consolas"
105 alignment "left"
106 anchor "tl"
107 borderDistance 6
108 ]
109 ]
110
111 node
112 [
113 id 3
114 graphics
115 [
116 w 209.00000000000003
117 h 40
118 type "rectangle"
119 fill "#FFFFFF"
120 fill2 "#FFFFFF"
121 outline "#000000"
122 ]
123 LabelGraphics
124 [
125 text "LOW literal AntennaGain"
126 outline "#000000"
127 fill "#FFFFFF"
128 fontSize 16
129 fontName "Monospace"
130 autoSizePolicy "node_width"
131 anchor "t"
132 borderDistance 0.0
133 ]
134 LabelGraphics
135 [
136 text "
137 AntennaGain enum
138 "
139 fontSize 14
140 fontName "Consolas"
141 alignment "left"
142 anchor "tl"
143 borderDistance 6
144 ]
145 ]
146
147 node
148 [
149 id 4
150 graphics
151 [
152 w 235.4
153 h 40
154 type "rectangle"
155 fill "#FFFFFF"
156 fill2 "#FFFFFF"
157 outline "#000000"
158 ]
159 LabelGraphics
160 [
161 text "MEDIUM literal AntennaGain"
162 outline "#000000"
163 fill "#FFFFFF"
164 fontSize 16
165 fontName "Monospace"
166 autoSizePolicy "node_width"
167 anchor "t"
168 borderDistance 0.0
169 ]
170 LabelGraphics
171 [
172 text "
173 AntennaGain enum
174 "
175 fontSize 14
176 fontName "Consolas"
177 alignment "left"
178 anchor "tl"
179 borderDistance 6
180 ]
181 ]
182
183 node
184 [
185 id 5
186 graphics
187 [
188 w 217.8
189 h 40
190 type "rectangle"
191 fill "#FFFFFF"
192 fill2 "#FFFFFF"
193 outline "#000000"
194 ]
195 LabelGraphics
196 [
197 text "HIGH literal AntennaGain"
198 outline "#000000"
199 fill "#FFFFFF"
200 fontSize 16
201 fontName "Monospace"
202 autoSizePolicy "node_width"
203 anchor "t"
204 borderDistance 0.0
205 ]
206 LabelGraphics
207 [
208 text "
209 AntennaGain enum
210 "
211 fontSize 14
212 fontName "Consolas"
213 alignment "left"
214 anchor "tl"
215 borderDistance 6
216 ]
217 ]
218
219 node
220 [
221 id 6
222 graphics
223 [
224 w 315.70000000000005
225 h 82
226 type "rectangle"
227 fill "#FFFFFF"
228 fill2 "#FFFFFF"
229 outline "#000000"
230 ]
231 LabelGraphics
232 [
233 text "o 1"
234 outline "#000000"
235 fill "#FFFFFF"
236 fontSize 16
237 fontName "Monospace"
238 autoSizePolicy "node_width"
239 anchor "t"
240 borderDistance 0.0
241 ]
242 LabelGraphics
243 [
244 text "
245 ConstellationMission class DefinedPart
246 InterferometryMission class DefinedPart
247 ConstellationMission class
248 InterferometryMission class
249 "
250 fontSize 14
251 fontName "Consolas"
252 alignment "left"
253 anchor "tl"
254 borderDistance 6
255 ]
256 ]
257
258 node
259 [
260 id 7
261 graphics
262 [
263 w 308.0
264 h 82
265 type "rectangle"
266 fill "#FFFFFF"
267 fill2 "#FFFFFF"
268 outline "#000000"
269 ]
270 LabelGraphics
271 [
272 text "o 2"
273 outline "#000000"
274 fill "#FFFFFF"
275 fontSize 16
276 fontName "Monospace"
277 autoSizePolicy "node_width"
278 anchor "t"
279 borderDistance 0.0
280 ]
281 LabelGraphics
282 [
283 text "
284 CommunicatingElement class DefinedPart
285 GroundStationNetwork class DefinedPart
286 CommunicatingElement class
287 GroundStationNetwork class
288 "
289 fontSize 14
290 fontName "Consolas"
291 alignment "left"
292 anchor "tl"
293 borderDistance 6
294 ]
295 ]
296
297 node
298 [
299 id 8
300 graphics
301 [
302 w 254.10000000000002
303 h 54
304 type "rectangle"
305 fill "#FFFFFF"
306 fill2 "#FFFFFF"
307 outline "#000000"
308 ]
309 LabelGraphics
310 [
311 text "o 3"
312 outline "#000000"
313 fill "#FFFFFF"
314 fontSize 16
315 fontName "Monospace"
316 autoSizePolicy "node_width"
317 anchor "t"
318 borderDistance 0.0
319 ]
320 LabelGraphics
321 [
322 text "
323 CommSubsystem class DefinedPart
324 CommSubsystem class
325 "
326 fontSize 14
327 fontName "Consolas"
328 alignment "left"
329 anchor "tl"
330 borderDistance 6
331 ]
332 ]
333
334 node
335 [
336 id 9
337 graphics
338 [
339 w 254.10000000000002
340 h 54
341 type "rectangle"
342 fill "#FFFFFF"
343 fill2 "#FFFFFF"
344 outline "#000000"
345 ]
346 LabelGraphics
347 [
348 text "o 4"
349 outline "#000000"
350 fill "#FFFFFF"
351 fontSize 16
352 fontName "Monospace"
353 autoSizePolicy "node_width"
354 anchor "t"
355 borderDistance 0.0
356 ]
357 LabelGraphics
358 [
359 text "
360 CommSubsystem class DefinedPart
361 CommSubsystem class
362 "
363 fontSize 14
364 fontName "Consolas"
365 alignment "left"
366 anchor "tl"
367 borderDistance 6
368 ]
369 ]
370
371 node
372 [
373 id 10
374 graphics
375 [
376 w 41.800000000000004
377 h 26
378 type "rectangle"
379 fill "#FFFFFF"
380 fill2 "#FFFFFF"
381 outline "#000000"
382 ]
383 LabelGraphics
384 [
385 text "true"
386 outline "#000000"
387 fill "#FFFFFF"
388 fontSize 16
389 fontName "Monospace"
390 autoSizePolicy "node_width"
391 anchor "t"
392 borderDistance 0.0
393 ]
394 LabelGraphics
395 [
396 text "
397 "
398 fontSize 14
399 fontName "Consolas"
400 alignment "left"
401 anchor "tl"
402 borderDistance 6
403 ]
404 ]
405
406 node
407 [
408 id 11
409 graphics
410 [
411 w 50.6
412 h 26
413 type "rectangle"
414 fill "#FFFFFF"
415 fill2 "#FFFFFF"
416 outline "#000000"
417 ]
418 LabelGraphics
419 [
420 text "false"
421 outline "#000000"
422 fill "#FFFFFF"
423 fontSize 16
424 fontName "Monospace"
425 autoSizePolicy "node_width"
426 anchor "t"
427 borderDistance 0.0
428 ]
429 LabelGraphics
430 [
431 text "
432 "
433 fontSize 14
434 fontName "Consolas"
435 alignment "left"
436 anchor "tl"
437 borderDistance 6
438 ]
439 ]
440
441 node
442 [
443 id 12
444 graphics
445 [
446 w 323.40000000000003
447 h 82
448 type "rectangle"
449 fill "#FFFFFF"
450 fill2 "#FFFFFF"
451 outline "#000000"
452 ]
453 LabelGraphics
454 [
455 text "null"
456 outline "#000000"
457 fill "#FFFFFF"
458 fontSize 16
459 fontName "Monospace"
460 autoSizePolicy "node_width"
461 anchor "t"
462 borderDistance 0.0
463 ]
464 LabelGraphics
465 [
466 text "
467 CommunicatingElement class
468 Spacecraft class
469 SmallSat class
470 CommunicatingElement class UndefinedPart
471 "
472 fontSize 14
473 fontName "Consolas"
474 alignment "left"
475 anchor "tl"
476 borderDistance 6
477 ]
478 ]
479
480 node
481 [
482 id 13
483 graphics
484 [
485 w 323.40000000000003
486 h 82
487 type "rectangle"
488 fill "#FFFFFF"
489 fill2 "#FFFFFF"
490 outline "#000000"
491 ]
492 LabelGraphics
493 [
494 text "null"
495 outline "#000000"
496 fill "#FFFFFF"
497 fontSize 16
498 fontName "Monospace"
499 autoSizePolicy "node_width"
500 anchor "t"
501 borderDistance 0.0
502 ]
503 LabelGraphics
504 [
505 text "
506 CommunicatingElement class
507 Spacecraft class
508 CubeSat6U class
509 CommunicatingElement class UndefinedPart
510 "
511 fontSize 14
512 fontName "Consolas"
513 alignment "left"
514 anchor "tl"
515 borderDistance 6
516 ]
517 ]
518
519 node
520 [
521 id 14
522 graphics
523 [
524 w 269.5
525 h 54
526 type "rectangle"
527 fill "#FFFFFF"
528 fill2 "#FFFFFF"
529 outline "#000000"
530 ]
531 LabelGraphics
532 [
533 text "null"
534 outline "#000000"
535 fill "#FFFFFF"
536 fontSize 16
537 fontName "Monospace"
538 autoSizePolicy "node_width"
539 anchor "t"
540 borderDistance 0.0
541 ]
542 LabelGraphics
543 [
544 text "
545 CommSubsystem class
546 CommSubsystem class UndefinedPart
547 "
548 fontSize 14
549 fontName "Consolas"
550 alignment "left"
551 anchor "tl"
552 borderDistance 6
553 ]
554 ]
555
556 node
557 [
558 id 15
559 graphics
560 [
561 w 223.3
562 h 54
563 type "rectangle"
564 fill "#FFFFFF"
565 fill2 "#FFFFFF"
566 outline "#000000"
567 ]
568 LabelGraphics
569 [
570 text "null"
571 outline "#000000"
572 fill "#FFFFFF"
573 fontSize 16
574 fontName "Monospace"
575 autoSizePolicy "node_width"
576 anchor "t"
577 borderDistance 0.0
578 ]
579 LabelGraphics
580 [
581 text "
582 Payload class
583 InterferometryPayload class
584 "
585 fontSize 14
586 fontName "Consolas"
587 alignment "left"
588 anchor "tl"
589 borderDistance 6
590 ]
591 ]
592
593 node
594 [
595 id 16
596 graphics
597 [
598 w 269.5
599 h 54
600 type "rectangle"
601 fill "#FFFFFF"
602 fill2 "#FFFFFF"
603 outline "#000000"
604 ]
605 LabelGraphics
606 [
607 text "null"
608 outline "#000000"
609 fill "#FFFFFF"
610 fontSize 16
611 fontName "Monospace"
612 autoSizePolicy "node_width"
613 anchor "t"
614 borderDistance 0.0
615 ]
616 LabelGraphics
617 [
618 text "
619 CommSubsystem class
620 CommSubsystem class UndefinedPart
621 "
622 fontSize 14
623 fontName "Consolas"
624 alignment "left"
625 anchor "tl"
626 borderDistance 6
627 ]
628 ]
629
630 node
631 [
632 id 17
633 graphics
634 [
635 w 323.40000000000003
636 h 82
637 type "rectangle"
638 fill "#FFFFFF"
639 fill2 "#FFFFFF"
640 outline "#000000"
641 ]
642 LabelGraphics
643 [
644 text "null"
645 outline "#000000"
646 fill "#FFFFFF"
647 fontSize 16
648 fontName "Monospace"
649 autoSizePolicy "node_width"
650 anchor "t"
651 borderDistance 0.0
652 ]
653 LabelGraphics
654 [
655 text "
656 CommunicatingElement class
657 Spacecraft class
658 SmallSat class
659 CommunicatingElement class UndefinedPart
660 "
661 fontSize 14
662 fontName "Consolas"
663 alignment "left"
664 anchor "tl"
665 borderDistance 6
666 ]
667 ]
668
669 node
670 [
671 id 18
672 graphics
673 [
674 w 223.3
675 h 54
676 type "rectangle"
677 fill "#FFFFFF"
678 fill2 "#FFFFFF"
679 outline "#000000"
680 ]
681 LabelGraphics
682 [
683 text "null"
684 outline "#000000"
685 fill "#FFFFFF"
686 fontSize 16
687 fontName "Monospace"
688 autoSizePolicy "node_width"
689 anchor "t"
690 borderDistance 0.0
691 ]
692 LabelGraphics
693 [
694 text "
695 Payload class
696 InterferometryPayload class
697 "
698 fontSize 14
699 fontName "Consolas"
700 alignment "left"
701 anchor "tl"
702 borderDistance 6
703 ]
704 ]
705
706 node
707 [
708 id 19
709 graphics
710 [
711 w 323.40000000000003
712 h 82
713 type "rectangle"
714 fill "#FFFFFF"
715 fill2 "#FFFFFF"
716 outline "#000000"
717 ]
718 LabelGraphics
719 [
720 text "null"
721 outline "#000000"
722 fill "#FFFFFF"
723 fontSize 16
724 fontName "Monospace"
725 autoSizePolicy "node_width"
726 anchor "t"
727 borderDistance 0.0
728 ]
729 LabelGraphics
730 [
731 text "
732 CommunicatingElement class
733 Spacecraft class
734 SmallSat class
735 CommunicatingElement class UndefinedPart
736 "
737 fontSize 14
738 fontName "Consolas"
739 alignment "left"
740 anchor "tl"
741 borderDistance 6
742 ]
743 ]
744
745 node
746 [
747 id 20
748 graphics
749 [
750 w 223.3
751 h 54
752 type "rectangle"
753 fill "#FFFFFF"
754 fill2 "#FFFFFF"
755 outline "#000000"
756 ]
757 LabelGraphics
758 [
759 text "null"
760 outline "#000000"
761 fill "#FFFFFF"
762 fontSize 16
763 fontName "Monospace"
764 autoSizePolicy "node_width"
765 anchor "t"
766 borderDistance 0.0
767 ]
768 LabelGraphics
769 [
770 text "
771 Payload class
772 InterferometryPayload class
773 "
774 fontSize 14
775 fontName "Consolas"
776 alignment "left"
777 anchor "tl"
778 borderDistance 6
779 ]
780 ]
781
782 node
783 [
784 id 21
785 graphics
786 [
787 w 323.40000000000003
788 h 82
789 type "rectangle"
790 fill "#FFFFFF"
791 fill2 "#FFFFFF"
792 outline "#000000"
793 ]
794 LabelGraphics
795 [
796 text "null"
797 outline "#000000"
798 fill "#FFFFFF"
799 fontSize 16
800 fontName "Monospace"
801 autoSizePolicy "node_width"
802 anchor "t"
803 borderDistance 0.0
804 ]
805 LabelGraphics
806 [
807 text "
808 CommunicatingElement class
809 Spacecraft class
810 CubeSat6U class
811 CommunicatingElement class UndefinedPart
812 "
813 fontSize 14
814 fontName "Consolas"
815 alignment "left"
816 anchor "tl"
817 borderDistance 6
818 ]
819 ]
820
821 node
822 [
823 id 22
824 graphics
825 [
826 w 323.40000000000003
827 h 82
828 type "rectangle"
829 fill "#FFFFFF"
830 fill2 "#FFFFFF"
831 outline "#000000"
832 ]
833 LabelGraphics
834 [
835 text "null"
836 outline "#000000"
837 fill "#FFFFFF"
838 fontSize 16
839 fontName "Monospace"
840 autoSizePolicy "node_width"
841 anchor "t"
842 borderDistance 0.0
843 ]
844 LabelGraphics
845 [
846 text "
847 CommunicatingElement class
848 Spacecraft class
849 SmallSat class
850 CommunicatingElement class UndefinedPart
851 "
852 fontSize 14
853 fontName "Consolas"
854 alignment "left"
855 anchor "tl"
856 borderDistance 6
857 ]
858 ]
859
860 node
861 [
862 id 23
863 graphics
864 [
865 w 269.5
866 h 54
867 type "rectangle"
868 fill "#FFFFFF"
869 fill2 "#FFFFFF"
870 outline "#000000"
871 ]
872 LabelGraphics
873 [
874 text "null"
875 outline "#000000"
876 fill "#FFFFFF"
877 fontSize 16
878 fontName "Monospace"
879 autoSizePolicy "node_width"
880 anchor "t"
881 borderDistance 0.0
882 ]
883 LabelGraphics
884 [
885 text "
886 CommSubsystem class
887 CommSubsystem class UndefinedPart
888 "
889 fontSize 14
890 fontName "Consolas"
891 alignment "left"
892 anchor "tl"
893 borderDistance 6
894 ]
895 ]
896
897 node
898 [
899 id 24
900 graphics
901 [
902 w 269.5
903 h 54
904 type "rectangle"
905 fill "#FFFFFF"
906 fill2 "#FFFFFF"
907 outline "#000000"
908 ]
909 LabelGraphics
910 [
911 text "null"
912 outline "#000000"
913 fill "#FFFFFF"
914 fontSize 16
915 fontName "Monospace"
916 autoSizePolicy "node_width"
917 anchor "t"
918 borderDistance 0.0
919 ]
920 LabelGraphics
921 [
922 text "
923 CommSubsystem class
924 CommSubsystem class UndefinedPart
925 "
926 fontSize 14
927 fontName "Consolas"
928 alignment "left"
929 anchor "tl"
930 borderDistance 6
931 ]
932 ]
933
934 node
935 [
936 id 25
937 graphics
938 [
939 w 223.3
940 h 54
941 type "rectangle"
942 fill "#FFFFFF"
943 fill2 "#FFFFFF"
944 outline "#000000"
945 ]
946 LabelGraphics
947 [
948 text "null"
949 outline "#000000"
950 fill "#FFFFFF"
951 fontSize 16
952 fontName "Monospace"
953 autoSizePolicy "node_width"
954 anchor "t"
955 borderDistance 0.0
956 ]
957 LabelGraphics
958 [
959 text "
960 Payload class
961 InterferometryPayload class
962 "
963 fontSize 14
964 fontName "Consolas"
965 alignment "left"
966 anchor "tl"
967 borderDistance 6
968 ]
969 ]
970
971 node
972 [
973 id 26
974 graphics
975 [
976 w 223.3
977 h 54
978 type "rectangle"
979 fill "#FFFFFF"
980 fill2 "#FFFFFF"
981 outline "#000000"
982 ]
983 LabelGraphics
984 [
985 text "null"
986 outline "#000000"
987 fill "#FFFFFF"
988 fontSize 16
989 fontName "Monospace"
990 autoSizePolicy "node_width"
991 anchor "t"
992 borderDistance 0.0
993 ]
994 LabelGraphics
995 [
996 text "
997 Payload class
998 InterferometryPayload class
999 "
1000 fontSize 14
1001 fontName "Consolas"
1002 alignment "left"
1003 anchor "tl"
1004 borderDistance 6
1005 ]
1006 ]
1007
1008 node
1009 [
1010 id 27
1011 graphics
1012 [
1013 w 269.5
1014 h 54
1015 type "rectangle"
1016 fill "#FFFFFF"
1017 fill2 "#FFFFFF"
1018 outline "#000000"
1019 ]
1020 LabelGraphics
1021 [
1022 text "null"
1023 outline "#000000"
1024 fill "#FFFFFF"
1025 fontSize 16
1026 fontName "Monospace"
1027 autoSizePolicy "node_width"
1028 anchor "t"
1029 borderDistance 0.0
1030 ]
1031 LabelGraphics
1032 [
1033 text "
1034 CommSubsystem class
1035 CommSubsystem class UndefinedPart
1036 "
1037 fontSize 14
1038 fontName "Consolas"
1039 alignment "left"
1040 anchor "tl"
1041 borderDistance 6
1042 ]
1043 ]
1044
1045 node
1046 [
1047 id 28
1048 graphics
1049 [
1050 w 269.5
1051 h 54
1052 type "rectangle"
1053 fill "#FFFFFF"
1054 fill2 "#FFFFFF"
1055 outline "#000000"
1056 ]
1057 LabelGraphics
1058 [
1059 text "null"
1060 outline "#000000"
1061 fill "#FFFFFF"
1062 fontSize 16
1063 fontName "Monospace"
1064 autoSizePolicy "node_width"
1065 anchor "t"
1066 borderDistance 0.0
1067 ]
1068 LabelGraphics
1069 [
1070 text "
1071 CommSubsystem class
1072 CommSubsystem class UndefinedPart
1073 "
1074 fontSize 14
1075 fontName "Consolas"
1076 alignment "left"
1077 anchor "tl"
1078 borderDistance 6
1079 ]
1080 ]
1081
1082 node
1083 [
1084 id 29
1085 graphics
1086 [
1087 w 223.3
1088 h 54
1089 type "rectangle"
1090 fill "#FFFFFF"
1091 fill2 "#FFFFFF"
1092 outline "#000000"
1093 ]
1094 LabelGraphics
1095 [
1096 text "null"
1097 outline "#000000"
1098 fill "#FFFFFF"
1099 fontSize 16
1100 fontName "Monospace"
1101 autoSizePolicy "node_width"
1102 anchor "t"
1103 borderDistance 0.0
1104 ]
1105 LabelGraphics
1106 [
1107 text "
1108 Payload class
1109 InterferometryPayload class
1110 "
1111 fontSize 14
1112 fontName "Consolas"
1113 alignment "left"
1114 anchor "tl"
1115 borderDistance 6
1116 ]
1117 ]
1118
1119 node
1120 [
1121 id 30
1122 graphics
1123 [
1124 w 112.2
1125 h 26
1126 type "rectangle"
1127 fill "#FFFFFF"
1128 fill2 "#FFFFFF"
1129 outline "#000000"
1130 ]
1131 LabelGraphics
1132 [
1133 text "New Integers"
1134 outline "#000000"
1135 fill "#FFFFFF"
1136 fontSize 16
1137 fontName "Monospace"
1138 autoSizePolicy "node_width"
1139 anchor "t"
1140 borderDistance 0.0
1141 ]
1142 LabelGraphics
1143 [
1144 text "
1145 "
1146 fontSize 14
1147 fontName "Consolas"
1148 alignment "left"
1149 anchor "tl"
1150 borderDistance 6
1151 ]
1152 ]
1153
1154 node
1155 [
1156 id 31
1157 graphics
1158 [
1159 w 85.80000000000001
1160 h 26
1161 type "rectangle"
1162 fill "#FFFFFF"
1163 fill2 "#FFFFFF"
1164 outline "#000000"
1165 ]
1166 LabelGraphics
1167 [
1168 text "New Reals"
1169 outline "#000000"
1170 fill "#FFFFFF"
1171 fontSize 16
1172 fontName "Monospace"
1173 autoSizePolicy "node_width"
1174 anchor "t"
1175 borderDistance 0.0
1176 ]
1177 LabelGraphics
1178 [
1179 text "
1180 "
1181 fontSize 14
1182 fontName "Consolas"
1183 alignment "left"
1184 anchor "tl"
1185 borderDistance 6
1186 ]
1187 ]
1188
1189 node
1190 [
1191 id 32
1192 graphics
1193 [
1194 w 103.4
1195 h 26
1196 type "rectangle"
1197 fill "#FFFFFF"
1198 fill2 "#FFFFFF"
1199 outline "#000000"
1200 ]
1201 LabelGraphics
1202 [
1203 text "New Strings"
1204 outline "#000000"
1205 fill "#FFFFFF"
1206 fontSize 16
1207 fontName "Monospace"
1208 autoSizePolicy "node_width"
1209 anchor "t"
1210 borderDistance 0.0
1211 ]
1212 LabelGraphics
1213 [
1214 text "
1215 "
1216 fontSize 14
1217 fontName "Consolas"
1218 alignment "left"
1219 anchor "tl"
1220 borderDistance 6
1221 ]
1222 ]
1223
1224 node
1225 [
1226 id 33
1227 graphics
1228 [
1229 w 103.4
1230 h 26
1231 type "rectangle"
1232 fill "#FFFFFF"
1233 fill2 "#FFFFFF"
1234 outline "#000000"
1235 ]
1236 LabelGraphics
1237 [
1238 text "New Objects"
1239 outline "#000000"
1240 fill "#FFFFFF"
1241 fontSize 16
1242 fontName "Monospace"
1243 autoSizePolicy "node_width"
1244 anchor "t"
1245 borderDistance 0.0
1246 ]
1247 LabelGraphics
1248 [
1249 text "
1250 "
1251 fontSize 14
1252 fontName "Consolas"
1253 alignment "left"
1254 anchor "tl"
1255 borderDistance 6
1256 ]
1257 ]
1258 edge
1259 [
1260 source 6
1261 target 7
1262 graphics
1263 [
1264 fill "#000000"
1265 width 3
1266 targetArrow "standard"
1267 ]
1268 LabelGraphics
1269 [
1270 text "groundStationNetwork reference ConstellationMission"
1271 fontSize 14
1272 fontName "Consolas"
1273 configuration "AutoFlippingLabel"
1274 model "six_pos"
1275 position "thead"
1276 ]
1277 ]
1278 edge
1279 [
1280 source 6
1281 target 12
1282 graphics
1283 [
1284 fill "#000000"
1285 width 3
1286 targetArrow "standard"
1287 ]
1288 LabelGraphics
1289 [
1290 text "spacecraft reference ConstellationMission"
1291 fontSize 14
1292 fontName "Consolas"
1293 configuration "AutoFlippingLabel"
1294 model "six_pos"
1295 position "thead"
1296 ]
1297 ]
1298 edge
1299 [
1300 source 6
1301 target 13
1302 graphics
1303 [
1304 fill "#000000"
1305 width 3
1306 targetArrow "standard"
1307 ]
1308 LabelGraphics
1309 [
1310 text "spacecraft reference ConstellationMission"
1311 fontSize 14
1312 fontName "Consolas"
1313 configuration "AutoFlippingLabel"
1314 model "six_pos"
1315 position "thead"
1316 ]
1317 ]
1318 edge
1319 [
1320 source 6
1321 target 17
1322 graphics
1323 [
1324 fill "#000000"
1325 width 3
1326 targetArrow "standard"
1327 ]
1328 LabelGraphics
1329 [
1330 text "spacecraft reference ConstellationMission"
1331 fontSize 14
1332 fontName "Consolas"
1333 configuration "AutoFlippingLabel"
1334 model "six_pos"
1335 position "thead"
1336 ]
1337 ]
1338 edge
1339 [
1340 source 6
1341 target 19
1342 graphics
1343 [
1344 fill "#000000"
1345 width 3
1346 targetArrow "standard"
1347 ]
1348 LabelGraphics
1349 [
1350 text "spacecraft reference ConstellationMission"
1351 fontSize 14
1352 fontName "Consolas"
1353 configuration "AutoFlippingLabel"
1354 model "six_pos"
1355 position "thead"
1356 ]
1357 ]
1358 edge
1359 [
1360 source 6
1361 target 21
1362 graphics
1363 [
1364 fill "#000000"
1365 width 3
1366 targetArrow "standard"
1367 ]
1368 LabelGraphics
1369 [
1370 text "spacecraft reference ConstellationMission"
1371 fontSize 14
1372 fontName "Consolas"
1373 configuration "AutoFlippingLabel"
1374 model "six_pos"
1375 position "thead"
1376 ]
1377 ]
1378 edge
1379 [
1380 source 6
1381 target 22
1382 graphics
1383 [
1384 fill "#000000"
1385 width 3
1386 targetArrow "standard"
1387 ]
1388 LabelGraphics
1389 [
1390 text "spacecraft reference ConstellationMission"
1391 fontSize 14
1392 fontName "Consolas"
1393 configuration "AutoFlippingLabel"
1394 model "six_pos"
1395 position "thead"
1396 ]
1397 ]
1398 edge
1399 [
1400 source 7
1401 target 8
1402 graphics
1403 [
1404 fill "#000000"
1405 width 3
1406 targetArrow "standard"
1407 ]
1408 LabelGraphics
1409 [
1410 text "commSubsystem reference CommunicatingElement"
1411 fontSize 14
1412 fontName "Consolas"
1413 configuration "AutoFlippingLabel"
1414 model "six_pos"
1415 position "thead"
1416 ]
1417 ]
1418 edge
1419 [
1420 source 7
1421 target 9
1422 graphics
1423 [
1424 fill "#000000"
1425 width 3
1426 targetArrow "standard"
1427 ]
1428 LabelGraphics
1429 [
1430 text "commSubsystem reference CommunicatingElement"
1431 fontSize 14
1432 fontName "Consolas"
1433 configuration "AutoFlippingLabel"
1434 model "six_pos"
1435 position "thead"
1436 ]
1437 ]
1438 edge
1439 [
1440 source 13
1441 target 14
1442 graphics
1443 [
1444 fill "#000000"
1445 width 3
1446 targetArrow "standard"
1447 ]
1448 LabelGraphics
1449 [
1450 text "commSubsystem reference CommunicatingElement"
1451 fontSize 14
1452 fontName "Consolas"
1453 configuration "AutoFlippingLabel"
1454 model "six_pos"
1455 position "thead"
1456 ]
1457 ]
1458 edge
1459 [
1460 source 12
1461 target 16
1462 graphics
1463 [
1464 fill "#000000"
1465 width 3
1466 targetArrow "standard"
1467 ]
1468 LabelGraphics
1469 [
1470 text "commSubsystem reference CommunicatingElement"
1471 fontSize 14
1472 fontName "Consolas"
1473 configuration "AutoFlippingLabel"
1474 model "six_pos"
1475 position "thead"
1476 ]
1477 ]
1478 edge
1479 [
1480 source 21
1481 target 23
1482 graphics
1483 [
1484 fill "#000000"
1485 width 3
1486 targetArrow "standard"
1487 ]
1488 LabelGraphics
1489 [
1490 text "commSubsystem reference CommunicatingElement"
1491 fontSize 14
1492 fontName "Consolas"
1493 configuration "AutoFlippingLabel"
1494 model "six_pos"
1495 position "thead"
1496 ]
1497 ]
1498 edge
1499 [
1500 source 19
1501 target 24
1502 graphics
1503 [
1504 fill "#000000"
1505 width 3
1506 targetArrow "standard"
1507 ]
1508 LabelGraphics
1509 [
1510 text "commSubsystem reference CommunicatingElement"
1511 fontSize 14
1512 fontName "Consolas"
1513 configuration "AutoFlippingLabel"
1514 model "six_pos"
1515 position "thead"
1516 ]
1517 ]
1518 edge
1519 [
1520 source 17
1521 target 27
1522 graphics
1523 [
1524 fill "#000000"
1525 width 3
1526 targetArrow "standard"
1527 ]
1528 LabelGraphics
1529 [
1530 text "commSubsystem reference CommunicatingElement"
1531 fontSize 14
1532 fontName "Consolas"
1533 configuration "AutoFlippingLabel"
1534 model "six_pos"
1535 position "thead"
1536 ]
1537 ]
1538 edge
1539 [
1540 source 22
1541 target 28
1542 graphics
1543 [
1544 fill "#000000"
1545 width 3
1546 targetArrow "standard"
1547 ]
1548 LabelGraphics
1549 [
1550 text "commSubsystem reference CommunicatingElement"
1551 fontSize 14
1552 fontName "Consolas"
1553 configuration "AutoFlippingLabel"
1554 model "six_pos"
1555 position "thead"
1556 ]
1557 ]
1558 edge
1559 [
1560 source 13
1561 target 15
1562 graphics
1563 [
1564 fill "#000000"
1565 width 3
1566 targetArrow "standard"
1567 ]
1568 LabelGraphics
1569 [
1570 text "payload reference Spacecraft"
1571 fontSize 14
1572 fontName "Consolas"
1573 configuration "AutoFlippingLabel"
1574 model "six_pos"
1575 position "thead"
1576 ]
1577 ]
1578 edge
1579 [
1580 source 12
1581 target 18
1582 graphics
1583 [
1584 fill "#000000"
1585 width 3
1586 targetArrow "standard"
1587 ]
1588 LabelGraphics
1589 [
1590 text "payload reference Spacecraft"
1591 fontSize 14
1592 fontName "Consolas"
1593 configuration "AutoFlippingLabel"
1594 model "six_pos"
1595 position "thead"
1596 ]
1597 ]
1598 edge
1599 [
1600 source 17
1601 target 20
1602 graphics
1603 [
1604 fill "#000000"
1605 width 3
1606 targetArrow "standard"
1607 ]
1608 LabelGraphics
1609 [
1610 text "payload reference Spacecraft"
1611 fontSize 14
1612 fontName "Consolas"
1613 configuration "AutoFlippingLabel"
1614 model "six_pos"
1615 position "thead"
1616 ]
1617 ]
1618 edge
1619 [
1620 source 19
1621 target 25
1622 graphics
1623 [
1624 fill "#000000"
1625 width 3
1626 targetArrow "standard"
1627 ]
1628 LabelGraphics
1629 [
1630 text "payload reference Spacecraft"
1631 fontSize 14
1632 fontName "Consolas"
1633 configuration "AutoFlippingLabel"
1634 model "six_pos"
1635 position "thead"
1636 ]
1637 ]
1638 edge
1639 [
1640 source 22
1641 target 26
1642 graphics
1643 [
1644 fill "#000000"
1645 width 3
1646 targetArrow "standard"
1647 ]
1648 LabelGraphics
1649 [
1650 text "payload reference Spacecraft"
1651 fontSize 14
1652 fontName "Consolas"
1653 configuration "AutoFlippingLabel"
1654 model "six_pos"
1655 position "thead"
1656 ]
1657 ]
1658 edge
1659 [
1660 source 21
1661 target 29
1662 graphics
1663 [
1664 fill "#000000"
1665 width 3
1666 targetArrow "standard"
1667 ]
1668 LabelGraphics
1669 [
1670 text "payload reference Spacecraft"
1671 fontSize 14
1672 fontName "Consolas"
1673 configuration "AutoFlippingLabel"
1674 model "six_pos"
1675 position "thead"
1676 ]
1677 ]
1678 edge
1679 [
1680 source 8
1681 target 1
1682 graphics
1683 [
1684 fill "#000000"
1685 targetArrow "standard"
1686 ]
1687 LabelGraphics
1688 [
1689 text "band attribute CommSubsystem"
1690 fontSize 14
1691 fontName "Consolas"
1692 configuration "AutoFlippingLabel"
1693 model "six_pos"
1694 position "thead"
1695 ]
1696 ]
1697 edge
1698 [
1699 source 9
1700 target 2
1701 graphics
1702 [
1703 fill "#000000"
1704 targetArrow "standard"
1705 ]
1706 LabelGraphics
1707 [
1708 text "band attribute CommSubsystem"
1709 fontSize 14
1710 fontName "Consolas"
1711 configuration "AutoFlippingLabel"
1712 model "six_pos"
1713 position "thead"
1714 ]
1715 ]
1716 edge
1717 [
1718 source 14
1719 target 0
1720 graphics
1721 [
1722 fill "#000000"
1723 targetArrow "standard"
1724 ]
1725 LabelGraphics
1726 [
1727 text "band attribute CommSubsystem"
1728 fontSize 14
1729 fontName "Consolas"
1730 configuration "AutoFlippingLabel"
1731 model "six_pos"
1732 position "thead"
1733 ]
1734 ]
1735 edge
1736 [
1737 source 16
1738 target 2
1739 graphics
1740 [
1741 fill "#000000"
1742 targetArrow "standard"
1743 ]
1744 LabelGraphics
1745 [
1746 text "band attribute CommSubsystem"
1747 fontSize 14
1748 fontName "Consolas"
1749 configuration "AutoFlippingLabel"
1750 model "six_pos"
1751 position "thead"
1752 ]
1753 ]
1754 edge
1755 [
1756 source 23
1757 target 1
1758 graphics
1759 [
1760 fill "#000000"
1761 targetArrow "standard"
1762 ]
1763 LabelGraphics
1764 [
1765 text "band attribute CommSubsystem"
1766 fontSize 14
1767 fontName "Consolas"
1768 configuration "AutoFlippingLabel"
1769 model "six_pos"
1770 position "thead"
1771 ]
1772 ]
1773 edge
1774 [
1775 source 24
1776 target 2
1777 graphics
1778 [
1779 fill "#000000"
1780 targetArrow "standard"
1781 ]
1782 LabelGraphics
1783 [
1784 text "band attribute CommSubsystem"
1785 fontSize 14
1786 fontName "Consolas"
1787 configuration "AutoFlippingLabel"
1788 model "six_pos"
1789 position "thead"
1790 ]
1791 ]
1792 edge
1793 [
1794 source 27
1795 target 1
1796 graphics
1797 [
1798 fill "#000000"
1799 targetArrow "standard"
1800 ]
1801 LabelGraphics
1802 [
1803 text "band attribute CommSubsystem"
1804 fontSize 14
1805 fontName "Consolas"
1806 configuration "AutoFlippingLabel"
1807 model "six_pos"
1808 position "thead"
1809 ]
1810 ]
1811 edge
1812 [
1813 source 28
1814 target 2
1815 graphics
1816 [
1817 fill "#000000"
1818 targetArrow "standard"
1819 ]
1820 LabelGraphics
1821 [
1822 text "band attribute CommSubsystem"
1823 fontSize 14
1824 fontName "Consolas"
1825 configuration "AutoFlippingLabel"
1826 model "six_pos"
1827 position "thead"
1828 ]
1829 ]
1830 edge
1831 [
1832 source 8
1833 target 4
1834 graphics
1835 [
1836 fill "#000000"
1837 targetArrow "standard"
1838 ]
1839 LabelGraphics
1840 [
1841 text "gain attribute CommSubsystem"
1842 fontSize 14
1843 fontName "Consolas"
1844 configuration "AutoFlippingLabel"
1845 model "six_pos"
1846 position "thead"
1847 ]
1848 ]
1849 edge
1850 [
1851 source 9
1852 target 5
1853 graphics
1854 [
1855 fill "#000000"
1856 targetArrow "standard"
1857 ]
1858 LabelGraphics
1859 [
1860 text "gain attribute CommSubsystem"
1861 fontSize 14
1862 fontName "Consolas"
1863 configuration "AutoFlippingLabel"
1864 model "six_pos"
1865 position "thead"
1866 ]
1867 ]
1868 edge
1869 [
1870 source 14
1871 target 5
1872 graphics
1873 [
1874 fill "#000000"
1875 targetArrow "standard"
1876 ]
1877 LabelGraphics
1878 [
1879 text "gain attribute CommSubsystem"
1880 fontSize 14
1881 fontName "Consolas"
1882 configuration "AutoFlippingLabel"
1883 model "six_pos"
1884 position "thead"
1885 ]
1886 ]
1887 edge
1888 [
1889 source 16
1890 target 3
1891 graphics
1892 [
1893 fill "#000000"
1894 targetArrow "standard"
1895 ]
1896 LabelGraphics
1897 [
1898 text "gain attribute CommSubsystem"
1899 fontSize 14
1900 fontName "Consolas"
1901 configuration "AutoFlippingLabel"
1902 model "six_pos"
1903 position "thead"
1904 ]
1905 ]
1906 edge
1907 [
1908 source 24
1909 target 4
1910 graphics
1911 [
1912 fill "#000000"
1913 targetArrow "standard"
1914 ]
1915 LabelGraphics
1916 [
1917 text "gain attribute CommSubsystem"
1918 fontSize 14
1919 fontName "Consolas"
1920 configuration "AutoFlippingLabel"
1921 model "six_pos"
1922 position "thead"
1923 ]
1924 ]
1925 edge
1926 [
1927 source 23
1928 target 4
1929 graphics
1930 [
1931 fill "#000000"
1932 targetArrow "standard"
1933 ]
1934 LabelGraphics
1935 [
1936 text "gain attribute CommSubsystem"
1937 fontSize 14
1938 fontName "Consolas"
1939 configuration "AutoFlippingLabel"
1940 model "six_pos"
1941 position "thead"
1942 ]
1943 ]
1944 edge
1945 [
1946 source 27
1947 target 4
1948 graphics
1949 [
1950 fill "#000000"
1951 targetArrow "standard"
1952 ]
1953 LabelGraphics
1954 [
1955 text "gain attribute CommSubsystem"
1956 fontSize 14
1957 fontName "Consolas"
1958 configuration "AutoFlippingLabel"
1959 model "six_pos"
1960 position "thead"
1961 ]
1962 ]
1963 edge
1964 [
1965 source 28
1966 target 3
1967 graphics
1968 [
1969 fill "#000000"
1970 targetArrow "standard"
1971 ]
1972 LabelGraphics
1973 [
1974 text "gain attribute CommSubsystem"
1975 fontSize 14
1976 fontName "Consolas"
1977 configuration "AutoFlippingLabel"
1978 model "six_pos"
1979 position "thead"
1980 ]
1981 ]
1982]
1983
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.png
deleted file mode 100644
index 791ec34e..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.xmi
deleted file mode 100644
index 14a9208d..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.xmi
+++ /dev/null
@@ -1,31 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem band="X" gain="MEDIUM"/>
5 <commSubsystem band="Ka" gain="HIGH"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem band="X" gain="MEDIUM"/>
9 <payload xsi:type="satellite:InterferometryPayload"/>
10 </spacecraft>
11 <spacecraft xsi:type="satellite:CubeSat6U">
12 <commSubsystem gain="HIGH"/>
13 <payload xsi:type="satellite:InterferometryPayload"/>
14 </spacecraft>
15 <spacecraft xsi:type="satellite:SmallSat">
16 <commSubsystem band="X" gain="MEDIUM"/>
17 <payload xsi:type="satellite:InterferometryPayload"/>
18 </spacecraft>
19 <spacecraft xsi:type="satellite:SmallSat">
20 <commSubsystem band="Ka" gain="MEDIUM"/>
21 <payload xsi:type="satellite:InterferometryPayload"/>
22 </spacecraft>
23 <spacecraft xsi:type="satellite:SmallSat">
24 <commSubsystem band="Ka"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:SmallSat">
28 <commSubsystem band="Ka"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.gml
deleted file mode 100644
index caae7300..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.gml
+++ /dev/null
@@ -1,1926 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 244.20000000000002
9 h 40
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "UHF literal TransceiverBand"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 TransceiverBand enum
30 "
31 fontSize 14
32 fontName "Consolas"
33 alignment "left"
34 anchor "tl"
35 borderDistance 6
36 ]
37 ]
38
39 node
40 [
41 id 1
42 graphics
43 [
44 w 226.60000000000002
45 h 40
46 type "rectangle"
47 fill "#FFFFFF"
48 fill2 "#FFFFFF"
49 outline "#000000"
50 ]
51 LabelGraphics
52 [
53 text "X literal TransceiverBand"
54 outline "#000000"
55 fill "#FFFFFF"
56 fontSize 16
57 fontName "Monospace"
58 autoSizePolicy "node_width"
59 anchor "t"
60 borderDistance 0.0
61 ]
62 LabelGraphics
63 [
64 text "
65 TransceiverBand enum
66 "
67 fontSize 14
68 fontName "Consolas"
69 alignment "left"
70 anchor "tl"
71 borderDistance 6
72 ]
73 ]
74
75 node
76 [
77 id 2
78 graphics
79 [
80 w 235.4
81 h 40
82 type "rectangle"
83 fill "#FFFFFF"
84 fill2 "#FFFFFF"
85 outline "#000000"
86 ]
87 LabelGraphics
88 [
89 text "Ka literal TransceiverBand"
90 outline "#000000"
91 fill "#FFFFFF"
92 fontSize 16
93 fontName "Monospace"
94 autoSizePolicy "node_width"
95 anchor "t"
96 borderDistance 0.0
97 ]
98 LabelGraphics
99 [
100 text "
101 TransceiverBand enum
102 "
103 fontSize 14
104 fontName "Consolas"
105 alignment "left"
106 anchor "tl"
107 borderDistance 6
108 ]
109 ]
110
111 node
112 [
113 id 3
114 graphics
115 [
116 w 209.00000000000003
117 h 40
118 type "rectangle"
119 fill "#FFFFFF"
120 fill2 "#FFFFFF"
121 outline "#000000"
122 ]
123 LabelGraphics
124 [
125 text "LOW literal AntennaGain"
126 outline "#000000"
127 fill "#FFFFFF"
128 fontSize 16
129 fontName "Monospace"
130 autoSizePolicy "node_width"
131 anchor "t"
132 borderDistance 0.0
133 ]
134 LabelGraphics
135 [
136 text "
137 AntennaGain enum
138 "
139 fontSize 14
140 fontName "Consolas"
141 alignment "left"
142 anchor "tl"
143 borderDistance 6
144 ]
145 ]
146
147 node
148 [
149 id 4
150 graphics
151 [
152 w 235.4
153 h 40
154 type "rectangle"
155 fill "#FFFFFF"
156 fill2 "#FFFFFF"
157 outline "#000000"
158 ]
159 LabelGraphics
160 [
161 text "MEDIUM literal AntennaGain"
162 outline "#000000"
163 fill "#FFFFFF"
164 fontSize 16
165 fontName "Monospace"
166 autoSizePolicy "node_width"
167 anchor "t"
168 borderDistance 0.0
169 ]
170 LabelGraphics
171 [
172 text "
173 AntennaGain enum
174 "
175 fontSize 14
176 fontName "Consolas"
177 alignment "left"
178 anchor "tl"
179 borderDistance 6
180 ]
181 ]
182
183 node
184 [
185 id 5
186 graphics
187 [
188 w 217.8
189 h 40
190 type "rectangle"
191 fill "#FFFFFF"
192 fill2 "#FFFFFF"
193 outline "#000000"
194 ]
195 LabelGraphics
196 [
197 text "HIGH literal AntennaGain"
198 outline "#000000"
199 fill "#FFFFFF"
200 fontSize 16
201 fontName "Monospace"
202 autoSizePolicy "node_width"
203 anchor "t"
204 borderDistance 0.0
205 ]
206 LabelGraphics
207 [
208 text "
209 AntennaGain enum
210 "
211 fontSize 14
212 fontName "Consolas"
213 alignment "left"
214 anchor "tl"
215 borderDistance 6
216 ]
217 ]
218
219 node
220 [
221 id 6
222 graphics
223 [
224 w 315.70000000000005
225 h 82
226 type "rectangle"
227 fill "#FFFFFF"
228 fill2 "#FFFFFF"
229 outline "#000000"
230 ]
231 LabelGraphics
232 [
233 text "o 1"
234 outline "#000000"
235 fill "#FFFFFF"
236 fontSize 16
237 fontName "Monospace"
238 autoSizePolicy "node_width"
239 anchor "t"
240 borderDistance 0.0
241 ]
242 LabelGraphics
243 [
244 text "
245 ConstellationMission class DefinedPart
246 InterferometryMission class DefinedPart
247 ConstellationMission class
248 InterferometryMission class
249 "
250 fontSize 14
251 fontName "Consolas"
252 alignment "left"
253 anchor "tl"
254 borderDistance 6
255 ]
256 ]
257
258 node
259 [
260 id 7
261 graphics
262 [
263 w 308.0
264 h 82
265 type "rectangle"
266 fill "#FFFFFF"
267 fill2 "#FFFFFF"
268 outline "#000000"
269 ]
270 LabelGraphics
271 [
272 text "o 2"
273 outline "#000000"
274 fill "#FFFFFF"
275 fontSize 16
276 fontName "Monospace"
277 autoSizePolicy "node_width"
278 anchor "t"
279 borderDistance 0.0
280 ]
281 LabelGraphics
282 [
283 text "
284 CommunicatingElement class DefinedPart
285 GroundStationNetwork class DefinedPart
286 CommunicatingElement class
287 GroundStationNetwork class
288 "
289 fontSize 14
290 fontName "Consolas"
291 alignment "left"
292 anchor "tl"
293 borderDistance 6
294 ]
295 ]
296
297 node
298 [
299 id 8
300 graphics
301 [
302 w 254.10000000000002
303 h 54
304 type "rectangle"
305 fill "#FFFFFF"
306 fill2 "#FFFFFF"
307 outline "#000000"
308 ]
309 LabelGraphics
310 [
311 text "o 3"
312 outline "#000000"
313 fill "#FFFFFF"
314 fontSize 16
315 fontName "Monospace"
316 autoSizePolicy "node_width"
317 anchor "t"
318 borderDistance 0.0
319 ]
320 LabelGraphics
321 [
322 text "
323 CommSubsystem class DefinedPart
324 CommSubsystem class
325 "
326 fontSize 14
327 fontName "Consolas"
328 alignment "left"
329 anchor "tl"
330 borderDistance 6
331 ]
332 ]
333
334 node
335 [
336 id 9
337 graphics
338 [
339 w 254.10000000000002
340 h 54
341 type "rectangle"
342 fill "#FFFFFF"
343 fill2 "#FFFFFF"
344 outline "#000000"
345 ]
346 LabelGraphics
347 [
348 text "o 4"
349 outline "#000000"
350 fill "#FFFFFF"
351 fontSize 16
352 fontName "Monospace"
353 autoSizePolicy "node_width"
354 anchor "t"
355 borderDistance 0.0
356 ]
357 LabelGraphics
358 [
359 text "
360 CommSubsystem class DefinedPart
361 CommSubsystem class
362 "
363 fontSize 14
364 fontName "Consolas"
365 alignment "left"
366 anchor "tl"
367 borderDistance 6
368 ]
369 ]
370
371 node
372 [
373 id 10
374 graphics
375 [
376 w 41.800000000000004
377 h 26
378 type "rectangle"
379 fill "#FFFFFF"
380 fill2 "#FFFFFF"
381 outline "#000000"
382 ]
383 LabelGraphics
384 [
385 text "true"
386 outline "#000000"
387 fill "#FFFFFF"
388 fontSize 16
389 fontName "Monospace"
390 autoSizePolicy "node_width"
391 anchor "t"
392 borderDistance 0.0
393 ]
394 LabelGraphics
395 [
396 text "
397 "
398 fontSize 14
399 fontName "Consolas"
400 alignment "left"
401 anchor "tl"
402 borderDistance 6
403 ]
404 ]
405
406 node
407 [
408 id 11
409 graphics
410 [
411 w 50.6
412 h 26
413 type "rectangle"
414 fill "#FFFFFF"
415 fill2 "#FFFFFF"
416 outline "#000000"
417 ]
418 LabelGraphics
419 [
420 text "false"
421 outline "#000000"
422 fill "#FFFFFF"
423 fontSize 16
424 fontName "Monospace"
425 autoSizePolicy "node_width"
426 anchor "t"
427 borderDistance 0.0
428 ]
429 LabelGraphics
430 [
431 text "
432 "
433 fontSize 14
434 fontName "Consolas"
435 alignment "left"
436 anchor "tl"
437 borderDistance 6
438 ]
439 ]
440
441 node
442 [
443 id 12
444 graphics
445 [
446 w 323.40000000000003
447 h 82
448 type "rectangle"
449 fill "#FFFFFF"
450 fill2 "#FFFFFF"
451 outline "#000000"
452 ]
453 LabelGraphics
454 [
455 text "null"
456 outline "#000000"
457 fill "#FFFFFF"
458 fontSize 16
459 fontName "Monospace"
460 autoSizePolicy "node_width"
461 anchor "t"
462 borderDistance 0.0
463 ]
464 LabelGraphics
465 [
466 text "
467 CommunicatingElement class
468 Spacecraft class
469 SmallSat class
470 CommunicatingElement class UndefinedPart
471 "
472 fontSize 14
473 fontName "Consolas"
474 alignment "left"
475 anchor "tl"
476 borderDistance 6
477 ]
478 ]
479
480 node
481 [
482 id 13
483 graphics
484 [
485 w 323.40000000000003
486 h 82
487 type "rectangle"
488 fill "#FFFFFF"
489 fill2 "#FFFFFF"
490 outline "#000000"
491 ]
492 LabelGraphics
493 [
494 text "null"
495 outline "#000000"
496 fill "#FFFFFF"
497 fontSize 16
498 fontName "Monospace"
499 autoSizePolicy "node_width"
500 anchor "t"
501 borderDistance 0.0
502 ]
503 LabelGraphics
504 [
505 text "
506 CommunicatingElement class
507 Spacecraft class
508 CubeSat6U class
509 CommunicatingElement class UndefinedPart
510 "
511 fontSize 14
512 fontName "Consolas"
513 alignment "left"
514 anchor "tl"
515 borderDistance 6
516 ]
517 ]
518
519 node
520 [
521 id 14
522 graphics
523 [
524 w 269.5
525 h 54
526 type "rectangle"
527 fill "#FFFFFF"
528 fill2 "#FFFFFF"
529 outline "#000000"
530 ]
531 LabelGraphics
532 [
533 text "null"
534 outline "#000000"
535 fill "#FFFFFF"
536 fontSize 16
537 fontName "Monospace"
538 autoSizePolicy "node_width"
539 anchor "t"
540 borderDistance 0.0
541 ]
542 LabelGraphics
543 [
544 text "
545 CommSubsystem class
546 CommSubsystem class UndefinedPart
547 "
548 fontSize 14
549 fontName "Consolas"
550 alignment "left"
551 anchor "tl"
552 borderDistance 6
553 ]
554 ]
555
556 node
557 [
558 id 15
559 graphics
560 [
561 w 223.3
562 h 54
563 type "rectangle"
564 fill "#FFFFFF"
565 fill2 "#FFFFFF"
566 outline "#000000"
567 ]
568 LabelGraphics
569 [
570 text "null"
571 outline "#000000"
572 fill "#FFFFFF"
573 fontSize 16
574 fontName "Monospace"
575 autoSizePolicy "node_width"
576 anchor "t"
577 borderDistance 0.0
578 ]
579 LabelGraphics
580 [
581 text "
582 Payload class
583 InterferometryPayload class
584 "
585 fontSize 14
586 fontName "Consolas"
587 alignment "left"
588 anchor "tl"
589 borderDistance 6
590 ]
591 ]
592
593 node
594 [
595 id 16
596 graphics
597 [
598 w 269.5
599 h 54
600 type "rectangle"
601 fill "#FFFFFF"
602 fill2 "#FFFFFF"
603 outline "#000000"
604 ]
605 LabelGraphics
606 [
607 text "null"
608 outline "#000000"
609 fill "#FFFFFF"
610 fontSize 16
611 fontName "Monospace"
612 autoSizePolicy "node_width"
613 anchor "t"
614 borderDistance 0.0
615 ]
616 LabelGraphics
617 [
618 text "
619 CommSubsystem class
620 CommSubsystem class UndefinedPart
621 "
622 fontSize 14
623 fontName "Consolas"
624 alignment "left"
625 anchor "tl"
626 borderDistance 6
627 ]
628 ]
629
630 node
631 [
632 id 17
633 graphics
634 [
635 w 323.40000000000003
636 h 82
637 type "rectangle"
638 fill "#FFFFFF"
639 fill2 "#FFFFFF"
640 outline "#000000"
641 ]
642 LabelGraphics
643 [
644 text "null"
645 outline "#000000"
646 fill "#FFFFFF"
647 fontSize 16
648 fontName "Monospace"
649 autoSizePolicy "node_width"
650 anchor "t"
651 borderDistance 0.0
652 ]
653 LabelGraphics
654 [
655 text "
656 CommunicatingElement class
657 Spacecraft class
658 SmallSat class
659 CommunicatingElement class UndefinedPart
660 "
661 fontSize 14
662 fontName "Consolas"
663 alignment "left"
664 anchor "tl"
665 borderDistance 6
666 ]
667 ]
668
669 node
670 [
671 id 18
672 graphics
673 [
674 w 223.3
675 h 54
676 type "rectangle"
677 fill "#FFFFFF"
678 fill2 "#FFFFFF"
679 outline "#000000"
680 ]
681 LabelGraphics
682 [
683 text "null"
684 outline "#000000"
685 fill "#FFFFFF"
686 fontSize 16
687 fontName "Monospace"
688 autoSizePolicy "node_width"
689 anchor "t"
690 borderDistance 0.0
691 ]
692 LabelGraphics
693 [
694 text "
695 Payload class
696 InterferometryPayload class
697 "
698 fontSize 14
699 fontName "Consolas"
700 alignment "left"
701 anchor "tl"
702 borderDistance 6
703 ]
704 ]
705
706 node
707 [
708 id 19
709 graphics
710 [
711 w 323.40000000000003
712 h 82
713 type "rectangle"
714 fill "#FFFFFF"
715 fill2 "#FFFFFF"
716 outline "#000000"
717 ]
718 LabelGraphics
719 [
720 text "null"
721 outline "#000000"
722 fill "#FFFFFF"
723 fontSize 16
724 fontName "Monospace"
725 autoSizePolicy "node_width"
726 anchor "t"
727 borderDistance 0.0
728 ]
729 LabelGraphics
730 [
731 text "
732 CommunicatingElement class
733 Spacecraft class
734 SmallSat class
735 CommunicatingElement class UndefinedPart
736 "
737 fontSize 14
738 fontName "Consolas"
739 alignment "left"
740 anchor "tl"
741 borderDistance 6
742 ]
743 ]
744
745 node
746 [
747 id 20
748 graphics
749 [
750 w 223.3
751 h 54
752 type "rectangle"
753 fill "#FFFFFF"
754 fill2 "#FFFFFF"
755 outline "#000000"
756 ]
757 LabelGraphics
758 [
759 text "null"
760 outline "#000000"
761 fill "#FFFFFF"
762 fontSize 16
763 fontName "Monospace"
764 autoSizePolicy "node_width"
765 anchor "t"
766 borderDistance 0.0
767 ]
768 LabelGraphics
769 [
770 text "
771 Payload class
772 InterferometryPayload class
773 "
774 fontSize 14
775 fontName "Consolas"
776 alignment "left"
777 anchor "tl"
778 borderDistance 6
779 ]
780 ]
781
782 node
783 [
784 id 21
785 graphics
786 [
787 w 323.40000000000003
788 h 82
789 type "rectangle"
790 fill "#FFFFFF"
791 fill2 "#FFFFFF"
792 outline "#000000"
793 ]
794 LabelGraphics
795 [
796 text "null"
797 outline "#000000"
798 fill "#FFFFFF"
799 fontSize 16
800 fontName "Monospace"
801 autoSizePolicy "node_width"
802 anchor "t"
803 borderDistance 0.0
804 ]
805 LabelGraphics
806 [
807 text "
808 CommunicatingElement class
809 Spacecraft class
810 CubeSat6U class
811 CommunicatingElement class UndefinedPart
812 "
813 fontSize 14
814 fontName "Consolas"
815 alignment "left"
816 anchor "tl"
817 borderDistance 6
818 ]
819 ]
820
821 node
822 [
823 id 22
824 graphics
825 [
826 w 323.40000000000003
827 h 82
828 type "rectangle"
829 fill "#FFFFFF"
830 fill2 "#FFFFFF"
831 outline "#000000"
832 ]
833 LabelGraphics
834 [
835 text "null"
836 outline "#000000"
837 fill "#FFFFFF"
838 fontSize 16
839 fontName "Monospace"
840 autoSizePolicy "node_width"
841 anchor "t"
842 borderDistance 0.0
843 ]
844 LabelGraphics
845 [
846 text "
847 CommunicatingElement class
848 Spacecraft class
849 SmallSat class
850 CommunicatingElement class UndefinedPart
851 "
852 fontSize 14
853 fontName "Consolas"
854 alignment "left"
855 anchor "tl"
856 borderDistance 6
857 ]
858 ]
859
860 node
861 [
862 id 23
863 graphics
864 [
865 w 269.5
866 h 54
867 type "rectangle"
868 fill "#FFFFFF"
869 fill2 "#FFFFFF"
870 outline "#000000"
871 ]
872 LabelGraphics
873 [
874 text "null"
875 outline "#000000"
876 fill "#FFFFFF"
877 fontSize 16
878 fontName "Monospace"
879 autoSizePolicy "node_width"
880 anchor "t"
881 borderDistance 0.0
882 ]
883 LabelGraphics
884 [
885 text "
886 CommSubsystem class
887 CommSubsystem class UndefinedPart
888 "
889 fontSize 14
890 fontName "Consolas"
891 alignment "left"
892 anchor "tl"
893 borderDistance 6
894 ]
895 ]
896
897 node
898 [
899 id 24
900 graphics
901 [
902 w 269.5
903 h 54
904 type "rectangle"
905 fill "#FFFFFF"
906 fill2 "#FFFFFF"
907 outline "#000000"
908 ]
909 LabelGraphics
910 [
911 text "null"
912 outline "#000000"
913 fill "#FFFFFF"
914 fontSize 16
915 fontName "Monospace"
916 autoSizePolicy "node_width"
917 anchor "t"
918 borderDistance 0.0
919 ]
920 LabelGraphics
921 [
922 text "
923 CommSubsystem class
924 CommSubsystem class UndefinedPart
925 "
926 fontSize 14
927 fontName "Consolas"
928 alignment "left"
929 anchor "tl"
930 borderDistance 6
931 ]
932 ]
933
934 node
935 [
936 id 25
937 graphics
938 [
939 w 223.3
940 h 54
941 type "rectangle"
942 fill "#FFFFFF"
943 fill2 "#FFFFFF"
944 outline "#000000"
945 ]
946 LabelGraphics
947 [
948 text "null"
949 outline "#000000"
950 fill "#FFFFFF"
951 fontSize 16
952 fontName "Monospace"
953 autoSizePolicy "node_width"
954 anchor "t"
955 borderDistance 0.0
956 ]
957 LabelGraphics
958 [
959 text "
960 Payload class
961 InterferometryPayload class
962 "
963 fontSize 14
964 fontName "Consolas"
965 alignment "left"
966 anchor "tl"
967 borderDistance 6
968 ]
969 ]
970
971 node
972 [
973 id 26
974 graphics
975 [
976 w 223.3
977 h 54
978 type "rectangle"
979 fill "#FFFFFF"
980 fill2 "#FFFFFF"
981 outline "#000000"
982 ]
983 LabelGraphics
984 [
985 text "null"
986 outline "#000000"
987 fill "#FFFFFF"
988 fontSize 16
989 fontName "Monospace"
990 autoSizePolicy "node_width"
991 anchor "t"
992 borderDistance 0.0
993 ]
994 LabelGraphics
995 [
996 text "
997 Payload class
998 InterferometryPayload class
999 "
1000 fontSize 14
1001 fontName "Consolas"
1002 alignment "left"
1003 anchor "tl"
1004 borderDistance 6
1005 ]
1006 ]
1007
1008 node
1009 [
1010 id 27
1011 graphics
1012 [
1013 w 269.5
1014 h 54
1015 type "rectangle"
1016 fill "#FFFFFF"
1017 fill2 "#FFFFFF"
1018 outline "#000000"
1019 ]
1020 LabelGraphics
1021 [
1022 text "null"
1023 outline "#000000"
1024 fill "#FFFFFF"
1025 fontSize 16
1026 fontName "Monospace"
1027 autoSizePolicy "node_width"
1028 anchor "t"
1029 borderDistance 0.0
1030 ]
1031 LabelGraphics
1032 [
1033 text "
1034 CommSubsystem class
1035 CommSubsystem class UndefinedPart
1036 "
1037 fontSize 14
1038 fontName "Consolas"
1039 alignment "left"
1040 anchor "tl"
1041 borderDistance 6
1042 ]
1043 ]
1044
1045 node
1046 [
1047 id 28
1048 graphics
1049 [
1050 w 269.5
1051 h 54
1052 type "rectangle"
1053 fill "#FFFFFF"
1054 fill2 "#FFFFFF"
1055 outline "#000000"
1056 ]
1057 LabelGraphics
1058 [
1059 text "null"
1060 outline "#000000"
1061 fill "#FFFFFF"
1062 fontSize 16
1063 fontName "Monospace"
1064 autoSizePolicy "node_width"
1065 anchor "t"
1066 borderDistance 0.0
1067 ]
1068 LabelGraphics
1069 [
1070 text "
1071 CommSubsystem class
1072 CommSubsystem class UndefinedPart
1073 "
1074 fontSize 14
1075 fontName "Consolas"
1076 alignment "left"
1077 anchor "tl"
1078 borderDistance 6
1079 ]
1080 ]
1081
1082 node
1083 [
1084 id 29
1085 graphics
1086 [
1087 w 112.2
1088 h 26
1089 type "rectangle"
1090 fill "#FFFFFF"
1091 fill2 "#FFFFFF"
1092 outline "#000000"
1093 ]
1094 LabelGraphics
1095 [
1096 text "New Integers"
1097 outline "#000000"
1098 fill "#FFFFFF"
1099 fontSize 16
1100 fontName "Monospace"
1101 autoSizePolicy "node_width"
1102 anchor "t"
1103 borderDistance 0.0
1104 ]
1105 LabelGraphics
1106 [
1107 text "
1108 "
1109 fontSize 14
1110 fontName "Consolas"
1111 alignment "left"
1112 anchor "tl"
1113 borderDistance 6
1114 ]
1115 ]
1116
1117 node
1118 [
1119 id 30
1120 graphics
1121 [
1122 w 85.80000000000001
1123 h 26
1124 type "rectangle"
1125 fill "#FFFFFF"
1126 fill2 "#FFFFFF"
1127 outline "#000000"
1128 ]
1129 LabelGraphics
1130 [
1131 text "New Reals"
1132 outline "#000000"
1133 fill "#FFFFFF"
1134 fontSize 16
1135 fontName "Monospace"
1136 autoSizePolicy "node_width"
1137 anchor "t"
1138 borderDistance 0.0
1139 ]
1140 LabelGraphics
1141 [
1142 text "
1143 "
1144 fontSize 14
1145 fontName "Consolas"
1146 alignment "left"
1147 anchor "tl"
1148 borderDistance 6
1149 ]
1150 ]
1151
1152 node
1153 [
1154 id 31
1155 graphics
1156 [
1157 w 103.4
1158 h 26
1159 type "rectangle"
1160 fill "#FFFFFF"
1161 fill2 "#FFFFFF"
1162 outline "#000000"
1163 ]
1164 LabelGraphics
1165 [
1166 text "New Strings"
1167 outline "#000000"
1168 fill "#FFFFFF"
1169 fontSize 16
1170 fontName "Monospace"
1171 autoSizePolicy "node_width"
1172 anchor "t"
1173 borderDistance 0.0
1174 ]
1175 LabelGraphics
1176 [
1177 text "
1178 "
1179 fontSize 14
1180 fontName "Consolas"
1181 alignment "left"
1182 anchor "tl"
1183 borderDistance 6
1184 ]
1185 ]
1186
1187 node
1188 [
1189 id 32
1190 graphics
1191 [
1192 w 103.4
1193 h 26
1194 type "rectangle"
1195 fill "#FFFFFF"
1196 fill2 "#FFFFFF"
1197 outline "#000000"
1198 ]
1199 LabelGraphics
1200 [
1201 text "New Objects"
1202 outline "#000000"
1203 fill "#FFFFFF"
1204 fontSize 16
1205 fontName "Monospace"
1206 autoSizePolicy "node_width"
1207 anchor "t"
1208 borderDistance 0.0
1209 ]
1210 LabelGraphics
1211 [
1212 text "
1213 "
1214 fontSize 14
1215 fontName "Consolas"
1216 alignment "left"
1217 anchor "tl"
1218 borderDistance 6
1219 ]
1220 ]
1221 edge
1222 [
1223 source 6
1224 target 7
1225 graphics
1226 [
1227 fill "#000000"
1228 width 3
1229 targetArrow "standard"
1230 ]
1231 LabelGraphics
1232 [
1233 text "groundStationNetwork reference ConstellationMission"
1234 fontSize 14
1235 fontName "Consolas"
1236 configuration "AutoFlippingLabel"
1237 model "six_pos"
1238 position "thead"
1239 ]
1240 ]
1241 edge
1242 [
1243 source 6
1244 target 12
1245 graphics
1246 [
1247 fill "#000000"
1248 width 3
1249 targetArrow "standard"
1250 ]
1251 LabelGraphics
1252 [
1253 text "spacecraft reference ConstellationMission"
1254 fontSize 14
1255 fontName "Consolas"
1256 configuration "AutoFlippingLabel"
1257 model "six_pos"
1258 position "thead"
1259 ]
1260 ]
1261 edge
1262 [
1263 source 6
1264 target 13
1265 graphics
1266 [
1267 fill "#000000"
1268 width 3
1269 targetArrow "standard"
1270 ]
1271 LabelGraphics
1272 [
1273 text "spacecraft reference ConstellationMission"
1274 fontSize 14
1275 fontName "Consolas"
1276 configuration "AutoFlippingLabel"
1277 model "six_pos"
1278 position "thead"
1279 ]
1280 ]
1281 edge
1282 [
1283 source 6
1284 target 17
1285 graphics
1286 [
1287 fill "#000000"
1288 width 3
1289 targetArrow "standard"
1290 ]
1291 LabelGraphics
1292 [
1293 text "spacecraft reference ConstellationMission"
1294 fontSize 14
1295 fontName "Consolas"
1296 configuration "AutoFlippingLabel"
1297 model "six_pos"
1298 position "thead"
1299 ]
1300 ]
1301 edge
1302 [
1303 source 6
1304 target 19
1305 graphics
1306 [
1307 fill "#000000"
1308 width 3
1309 targetArrow "standard"
1310 ]
1311 LabelGraphics
1312 [
1313 text "spacecraft reference ConstellationMission"
1314 fontSize 14
1315 fontName "Consolas"
1316 configuration "AutoFlippingLabel"
1317 model "six_pos"
1318 position "thead"
1319 ]
1320 ]
1321 edge
1322 [
1323 source 6
1324 target 21
1325 graphics
1326 [
1327 fill "#000000"
1328 width 3
1329 targetArrow "standard"
1330 ]
1331 LabelGraphics
1332 [
1333 text "spacecraft reference ConstellationMission"
1334 fontSize 14
1335 fontName "Consolas"
1336 configuration "AutoFlippingLabel"
1337 model "six_pos"
1338 position "thead"
1339 ]
1340 ]
1341 edge
1342 [
1343 source 6
1344 target 22
1345 graphics
1346 [
1347 fill "#000000"
1348 width 3
1349 targetArrow "standard"
1350 ]
1351 LabelGraphics
1352 [
1353 text "spacecraft reference ConstellationMission"
1354 fontSize 14
1355 fontName "Consolas"
1356 configuration "AutoFlippingLabel"
1357 model "six_pos"
1358 position "thead"
1359 ]
1360 ]
1361 edge
1362 [
1363 source 7
1364 target 8
1365 graphics
1366 [
1367 fill "#000000"
1368 width 3
1369 targetArrow "standard"
1370 ]
1371 LabelGraphics
1372 [
1373 text "commSubsystem reference CommunicatingElement"
1374 fontSize 14
1375 fontName "Consolas"
1376 configuration "AutoFlippingLabel"
1377 model "six_pos"
1378 position "thead"
1379 ]
1380 ]
1381 edge
1382 [
1383 source 7
1384 target 9
1385 graphics
1386 [
1387 fill "#000000"
1388 width 3
1389 targetArrow "standard"
1390 ]
1391 LabelGraphics
1392 [
1393 text "commSubsystem reference CommunicatingElement"
1394 fontSize 14
1395 fontName "Consolas"
1396 configuration "AutoFlippingLabel"
1397 model "six_pos"
1398 position "thead"
1399 ]
1400 ]
1401 edge
1402 [
1403 source 13
1404 target 14
1405 graphics
1406 [
1407 fill "#000000"
1408 width 3
1409 targetArrow "standard"
1410 ]
1411 LabelGraphics
1412 [
1413 text "commSubsystem reference CommunicatingElement"
1414 fontSize 14
1415 fontName "Consolas"
1416 configuration "AutoFlippingLabel"
1417 model "six_pos"
1418 position "thead"
1419 ]
1420 ]
1421 edge
1422 [
1423 source 12
1424 target 16
1425 graphics
1426 [
1427 fill "#000000"
1428 width 3
1429 targetArrow "standard"
1430 ]
1431 LabelGraphics
1432 [
1433 text "commSubsystem reference CommunicatingElement"
1434 fontSize 14
1435 fontName "Consolas"
1436 configuration "AutoFlippingLabel"
1437 model "six_pos"
1438 position "thead"
1439 ]
1440 ]
1441 edge
1442 [
1443 source 21
1444 target 23
1445 graphics
1446 [
1447 fill "#000000"
1448 width 3
1449 targetArrow "standard"
1450 ]
1451 LabelGraphics
1452 [
1453 text "commSubsystem reference CommunicatingElement"
1454 fontSize 14
1455 fontName "Consolas"
1456 configuration "AutoFlippingLabel"
1457 model "six_pos"
1458 position "thead"
1459 ]
1460 ]
1461 edge
1462 [
1463 source 19
1464 target 24
1465 graphics
1466 [
1467 fill "#000000"
1468 width 3
1469 targetArrow "standard"
1470 ]
1471 LabelGraphics
1472 [
1473 text "commSubsystem reference CommunicatingElement"
1474 fontSize 14
1475 fontName "Consolas"
1476 configuration "AutoFlippingLabel"
1477 model "six_pos"
1478 position "thead"
1479 ]
1480 ]
1481 edge
1482 [
1483 source 17
1484 target 27
1485 graphics
1486 [
1487 fill "#000000"
1488 width 3
1489 targetArrow "standard"
1490 ]
1491 LabelGraphics
1492 [
1493 text "commSubsystem reference CommunicatingElement"
1494 fontSize 14
1495 fontName "Consolas"
1496 configuration "AutoFlippingLabel"
1497 model "six_pos"
1498 position "thead"
1499 ]
1500 ]
1501 edge
1502 [
1503 source 22
1504 target 28
1505 graphics
1506 [
1507 fill "#000000"
1508 width 3
1509 targetArrow "standard"
1510 ]
1511 LabelGraphics
1512 [
1513 text "commSubsystem reference CommunicatingElement"
1514 fontSize 14
1515 fontName "Consolas"
1516 configuration "AutoFlippingLabel"
1517 model "six_pos"
1518 position "thead"
1519 ]
1520 ]
1521 edge
1522 [
1523 source 13
1524 target 15
1525 graphics
1526 [
1527 fill "#000000"
1528 width 3
1529 targetArrow "standard"
1530 ]
1531 LabelGraphics
1532 [
1533 text "payload reference Spacecraft"
1534 fontSize 14
1535 fontName "Consolas"
1536 configuration "AutoFlippingLabel"
1537 model "six_pos"
1538 position "thead"
1539 ]
1540 ]
1541 edge
1542 [
1543 source 12
1544 target 18
1545 graphics
1546 [
1547 fill "#000000"
1548 width 3
1549 targetArrow "standard"
1550 ]
1551 LabelGraphics
1552 [
1553 text "payload reference Spacecraft"
1554 fontSize 14
1555 fontName "Consolas"
1556 configuration "AutoFlippingLabel"
1557 model "six_pos"
1558 position "thead"
1559 ]
1560 ]
1561 edge
1562 [
1563 source 17
1564 target 20
1565 graphics
1566 [
1567 fill "#000000"
1568 width 3
1569 targetArrow "standard"
1570 ]
1571 LabelGraphics
1572 [
1573 text "payload reference Spacecraft"
1574 fontSize 14
1575 fontName "Consolas"
1576 configuration "AutoFlippingLabel"
1577 model "six_pos"
1578 position "thead"
1579 ]
1580 ]
1581 edge
1582 [
1583 source 19
1584 target 25
1585 graphics
1586 [
1587 fill "#000000"
1588 width 3
1589 targetArrow "standard"
1590 ]
1591 LabelGraphics
1592 [
1593 text "payload reference Spacecraft"
1594 fontSize 14
1595 fontName "Consolas"
1596 configuration "AutoFlippingLabel"
1597 model "six_pos"
1598 position "thead"
1599 ]
1600 ]
1601 edge
1602 [
1603 source 22
1604 target 26
1605 graphics
1606 [
1607 fill "#000000"
1608 width 3
1609 targetArrow "standard"
1610 ]
1611 LabelGraphics
1612 [
1613 text "payload reference Spacecraft"
1614 fontSize 14
1615 fontName "Consolas"
1616 configuration "AutoFlippingLabel"
1617 model "six_pos"
1618 position "thead"
1619 ]
1620 ]
1621 edge
1622 [
1623 source 8
1624 target 1
1625 graphics
1626 [
1627 fill "#000000"
1628 targetArrow "standard"
1629 ]
1630 LabelGraphics
1631 [
1632 text "band attribute CommSubsystem"
1633 fontSize 14
1634 fontName "Consolas"
1635 configuration "AutoFlippingLabel"
1636 model "six_pos"
1637 position "thead"
1638 ]
1639 ]
1640 edge
1641 [
1642 source 9
1643 target 2
1644 graphics
1645 [
1646 fill "#000000"
1647 targetArrow "standard"
1648 ]
1649 LabelGraphics
1650 [
1651 text "band attribute CommSubsystem"
1652 fontSize 14
1653 fontName "Consolas"
1654 configuration "AutoFlippingLabel"
1655 model "six_pos"
1656 position "thead"
1657 ]
1658 ]
1659 edge
1660 [
1661 source 14
1662 target 0
1663 graphics
1664 [
1665 fill "#000000"
1666 targetArrow "standard"
1667 ]
1668 LabelGraphics
1669 [
1670 text "band attribute CommSubsystem"
1671 fontSize 14
1672 fontName "Consolas"
1673 configuration "AutoFlippingLabel"
1674 model "six_pos"
1675 position "thead"
1676 ]
1677 ]
1678 edge
1679 [
1680 source 16
1681 target 2
1682 graphics
1683 [
1684 fill "#000000"
1685 targetArrow "standard"
1686 ]
1687 LabelGraphics
1688 [
1689 text "band attribute CommSubsystem"
1690 fontSize 14
1691 fontName "Consolas"
1692 configuration "AutoFlippingLabel"
1693 model "six_pos"
1694 position "thead"
1695 ]
1696 ]
1697 edge
1698 [
1699 source 23
1700 target 1
1701 graphics
1702 [
1703 fill "#000000"
1704 targetArrow "standard"
1705 ]
1706 LabelGraphics
1707 [
1708 text "band attribute CommSubsystem"
1709 fontSize 14
1710 fontName "Consolas"
1711 configuration "AutoFlippingLabel"
1712 model "six_pos"
1713 position "thead"
1714 ]
1715 ]
1716 edge
1717 [
1718 source 24
1719 target 2
1720 graphics
1721 [
1722 fill "#000000"
1723 targetArrow "standard"
1724 ]
1725 LabelGraphics
1726 [
1727 text "band attribute CommSubsystem"
1728 fontSize 14
1729 fontName "Consolas"
1730 configuration "AutoFlippingLabel"
1731 model "six_pos"
1732 position "thead"
1733 ]
1734 ]
1735 edge
1736 [
1737 source 27
1738 target 1
1739 graphics
1740 [
1741 fill "#000000"
1742 targetArrow "standard"
1743 ]
1744 LabelGraphics
1745 [
1746 text "band attribute CommSubsystem"
1747 fontSize 14
1748 fontName "Consolas"
1749 configuration "AutoFlippingLabel"
1750 model "six_pos"
1751 position "thead"
1752 ]
1753 ]
1754 edge
1755 [
1756 source 28
1757 target 0
1758 graphics
1759 [
1760 fill "#000000"
1761 targetArrow "standard"
1762 ]
1763 LabelGraphics
1764 [
1765 text "band attribute CommSubsystem"
1766 fontSize 14
1767 fontName "Consolas"
1768 configuration "AutoFlippingLabel"
1769 model "six_pos"
1770 position "thead"
1771 ]
1772 ]
1773 edge
1774 [
1775 source 8
1776 target 4
1777 graphics
1778 [
1779 fill "#000000"
1780 targetArrow "standard"
1781 ]
1782 LabelGraphics
1783 [
1784 text "gain attribute CommSubsystem"
1785 fontSize 14
1786 fontName "Consolas"
1787 configuration "AutoFlippingLabel"
1788 model "six_pos"
1789 position "thead"
1790 ]
1791 ]
1792 edge
1793 [
1794 source 9
1795 target 5
1796 graphics
1797 [
1798 fill "#000000"
1799 targetArrow "standard"
1800 ]
1801 LabelGraphics
1802 [
1803 text "gain attribute CommSubsystem"
1804 fontSize 14
1805 fontName "Consolas"
1806 configuration "AutoFlippingLabel"
1807 model "six_pos"
1808 position "thead"
1809 ]
1810 ]
1811 edge
1812 [
1813 source 14
1814 target 5
1815 graphics
1816 [
1817 fill "#000000"
1818 targetArrow "standard"
1819 ]
1820 LabelGraphics
1821 [
1822 text "gain attribute CommSubsystem"
1823 fontSize 14
1824 fontName "Consolas"
1825 configuration "AutoFlippingLabel"
1826 model "six_pos"
1827 position "thead"
1828 ]
1829 ]
1830 edge
1831 [
1832 source 16
1833 target 3
1834 graphics
1835 [
1836 fill "#000000"
1837 targetArrow "standard"
1838 ]
1839 LabelGraphics
1840 [
1841 text "gain attribute CommSubsystem"
1842 fontSize 14
1843 fontName "Consolas"
1844 configuration "AutoFlippingLabel"
1845 model "six_pos"
1846 position "thead"
1847 ]
1848 ]
1849 edge
1850 [
1851 source 24
1852 target 4
1853 graphics
1854 [
1855 fill "#000000"
1856 targetArrow "standard"
1857 ]
1858 LabelGraphics
1859 [
1860 text "gain attribute CommSubsystem"
1861 fontSize 14
1862 fontName "Consolas"
1863 configuration "AutoFlippingLabel"
1864 model "six_pos"
1865 position "thead"
1866 ]
1867 ]
1868 edge
1869 [
1870 source 23
1871 target 4
1872 graphics
1873 [
1874 fill "#000000"
1875 targetArrow "standard"
1876 ]
1877 LabelGraphics
1878 [
1879 text "gain attribute CommSubsystem"
1880 fontSize 14
1881 fontName "Consolas"
1882 configuration "AutoFlippingLabel"
1883 model "six_pos"
1884 position "thead"
1885 ]
1886 ]
1887 edge
1888 [
1889 source 27
1890 target 4
1891 graphics
1892 [
1893 fill "#000000"
1894 targetArrow "standard"
1895 ]
1896 LabelGraphics
1897 [
1898 text "gain attribute CommSubsystem"
1899 fontSize 14
1900 fontName "Consolas"
1901 configuration "AutoFlippingLabel"
1902 model "six_pos"
1903 position "thead"
1904 ]
1905 ]
1906 edge
1907 [
1908 source 28
1909 target 3
1910 graphics
1911 [
1912 fill "#000000"
1913 targetArrow "standard"
1914 ]
1915 LabelGraphics
1916 [
1917 text "gain attribute CommSubsystem"
1918 fontSize 14
1919 fontName "Consolas"
1920 configuration "AutoFlippingLabel"
1921 model "six_pos"
1922 position "thead"
1923 ]
1924 ]
1925]
1926
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.png
deleted file mode 100644
index 38901d43..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.xmi
deleted file mode 100644
index d0a119b9..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.xmi
+++ /dev/null
@@ -1,30 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem band="X" gain="MEDIUM"/>
5 <commSubsystem band="Ka" gain="HIGH"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem band="X" gain="MEDIUM"/>
9 </spacecraft>
10 <spacecraft xsi:type="satellite:CubeSat6U">
11 <commSubsystem gain="HIGH"/>
12 <payload xsi:type="satellite:InterferometryPayload"/>
13 </spacecraft>
14 <spacecraft xsi:type="satellite:SmallSat">
15 <commSubsystem band="X" gain="MEDIUM"/>
16 <payload xsi:type="satellite:InterferometryPayload"/>
17 </spacecraft>
18 <spacecraft xsi:type="satellite:SmallSat">
19 <commSubsystem band="Ka" gain="MEDIUM"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:SmallSat">
23 <commSubsystem band="Ka"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:SmallSat">
27 <commSubsystem/>
28 <payload xsi:type="satellite:InterferometryPayload"/>
29 </spacecraft>
30</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.gml
deleted file mode 100644
index eef67577..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.gml
+++ /dev/null
@@ -1,1983 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 244.20000000000002
9 h 40
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "UHF literal TransceiverBand"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 TransceiverBand enum
30 "
31 fontSize 14
32 fontName "Consolas"
33 alignment "left"
34 anchor "tl"
35 borderDistance 6
36 ]
37 ]
38
39 node
40 [
41 id 1
42 graphics
43 [
44 w 226.60000000000002
45 h 40
46 type "rectangle"
47 fill "#FFFFFF"
48 fill2 "#FFFFFF"
49 outline "#000000"
50 ]
51 LabelGraphics
52 [
53 text "X literal TransceiverBand"
54 outline "#000000"
55 fill "#FFFFFF"
56 fontSize 16
57 fontName "Monospace"
58 autoSizePolicy "node_width"
59 anchor "t"
60 borderDistance 0.0
61 ]
62 LabelGraphics
63 [
64 text "
65 TransceiverBand enum
66 "
67 fontSize 14
68 fontName "Consolas"
69 alignment "left"
70 anchor "tl"
71 borderDistance 6
72 ]
73 ]
74
75 node
76 [
77 id 2
78 graphics
79 [
80 w 235.4
81 h 40
82 type "rectangle"
83 fill "#FFFFFF"
84 fill2 "#FFFFFF"
85 outline "#000000"
86 ]
87 LabelGraphics
88 [
89 text "Ka literal TransceiverBand"
90 outline "#000000"
91 fill "#FFFFFF"
92 fontSize 16
93 fontName "Monospace"
94 autoSizePolicy "node_width"
95 anchor "t"
96 borderDistance 0.0
97 ]
98 LabelGraphics
99 [
100 text "
101 TransceiverBand enum
102 "
103 fontSize 14
104 fontName "Consolas"
105 alignment "left"
106 anchor "tl"
107 borderDistance 6
108 ]
109 ]
110
111 node
112 [
113 id 3
114 graphics
115 [
116 w 209.00000000000003
117 h 40
118 type "rectangle"
119 fill "#FFFFFF"
120 fill2 "#FFFFFF"
121 outline "#000000"
122 ]
123 LabelGraphics
124 [
125 text "LOW literal AntennaGain"
126 outline "#000000"
127 fill "#FFFFFF"
128 fontSize 16
129 fontName "Monospace"
130 autoSizePolicy "node_width"
131 anchor "t"
132 borderDistance 0.0
133 ]
134 LabelGraphics
135 [
136 text "
137 AntennaGain enum
138 "
139 fontSize 14
140 fontName "Consolas"
141 alignment "left"
142 anchor "tl"
143 borderDistance 6
144 ]
145 ]
146
147 node
148 [
149 id 4
150 graphics
151 [
152 w 235.4
153 h 40
154 type "rectangle"
155 fill "#FFFFFF"
156 fill2 "#FFFFFF"
157 outline "#000000"
158 ]
159 LabelGraphics
160 [
161 text "MEDIUM literal AntennaGain"
162 outline "#000000"
163 fill "#FFFFFF"
164 fontSize 16
165 fontName "Monospace"
166 autoSizePolicy "node_width"
167 anchor "t"
168 borderDistance 0.0
169 ]
170 LabelGraphics
171 [
172 text "
173 AntennaGain enum
174 "
175 fontSize 14
176 fontName "Consolas"
177 alignment "left"
178 anchor "tl"
179 borderDistance 6
180 ]
181 ]
182
183 node
184 [
185 id 5
186 graphics
187 [
188 w 217.8
189 h 40
190 type "rectangle"
191 fill "#FFFFFF"
192 fill2 "#FFFFFF"
193 outline "#000000"
194 ]
195 LabelGraphics
196 [
197 text "HIGH literal AntennaGain"
198 outline "#000000"
199 fill "#FFFFFF"
200 fontSize 16
201 fontName "Monospace"
202 autoSizePolicy "node_width"
203 anchor "t"
204 borderDistance 0.0
205 ]
206 LabelGraphics
207 [
208 text "
209 AntennaGain enum
210 "
211 fontSize 14
212 fontName "Consolas"
213 alignment "left"
214 anchor "tl"
215 borderDistance 6
216 ]
217 ]
218
219 node
220 [
221 id 6
222 graphics
223 [
224 w 315.70000000000005
225 h 82
226 type "rectangle"
227 fill "#FFFFFF"
228 fill2 "#FFFFFF"
229 outline "#000000"
230 ]
231 LabelGraphics
232 [
233 text "o 1"
234 outline "#000000"
235 fill "#FFFFFF"
236 fontSize 16
237 fontName "Monospace"
238 autoSizePolicy "node_width"
239 anchor "t"
240 borderDistance 0.0
241 ]
242 LabelGraphics
243 [
244 text "
245 ConstellationMission class DefinedPart
246 InterferometryMission class DefinedPart
247 ConstellationMission class
248 InterferometryMission class
249 "
250 fontSize 14
251 fontName "Consolas"
252 alignment "left"
253 anchor "tl"
254 borderDistance 6
255 ]
256 ]
257
258 node
259 [
260 id 7
261 graphics
262 [
263 w 308.0
264 h 82
265 type "rectangle"
266 fill "#FFFFFF"
267 fill2 "#FFFFFF"
268 outline "#000000"
269 ]
270 LabelGraphics
271 [
272 text "o 2"
273 outline "#000000"
274 fill "#FFFFFF"
275 fontSize 16
276 fontName "Monospace"
277 autoSizePolicy "node_width"
278 anchor "t"
279 borderDistance 0.0
280 ]
281 LabelGraphics
282 [
283 text "
284 CommunicatingElement class DefinedPart
285 GroundStationNetwork class DefinedPart
286 CommunicatingElement class
287 GroundStationNetwork class
288 "
289 fontSize 14
290 fontName "Consolas"
291 alignment "left"
292 anchor "tl"
293 borderDistance 6
294 ]
295 ]
296
297 node
298 [
299 id 8
300 graphics
301 [
302 w 254.10000000000002
303 h 54
304 type "rectangle"
305 fill "#FFFFFF"
306 fill2 "#FFFFFF"
307 outline "#000000"
308 ]
309 LabelGraphics
310 [
311 text "o 3"
312 outline "#000000"
313 fill "#FFFFFF"
314 fontSize 16
315 fontName "Monospace"
316 autoSizePolicy "node_width"
317 anchor "t"
318 borderDistance 0.0
319 ]
320 LabelGraphics
321 [
322 text "
323 CommSubsystem class DefinedPart
324 CommSubsystem class
325 "
326 fontSize 14
327 fontName "Consolas"
328 alignment "left"
329 anchor "tl"
330 borderDistance 6
331 ]
332 ]
333
334 node
335 [
336 id 9
337 graphics
338 [
339 w 254.10000000000002
340 h 54
341 type "rectangle"
342 fill "#FFFFFF"
343 fill2 "#FFFFFF"
344 outline "#000000"
345 ]
346 LabelGraphics
347 [
348 text "o 4"
349 outline "#000000"
350 fill "#FFFFFF"
351 fontSize 16
352 fontName "Monospace"
353 autoSizePolicy "node_width"
354 anchor "t"
355 borderDistance 0.0
356 ]
357 LabelGraphics
358 [
359 text "
360 CommSubsystem class DefinedPart
361 CommSubsystem class
362 "
363 fontSize 14
364 fontName "Consolas"
365 alignment "left"
366 anchor "tl"
367 borderDistance 6
368 ]
369 ]
370
371 node
372 [
373 id 10
374 graphics
375 [
376 w 41.800000000000004
377 h 26
378 type "rectangle"
379 fill "#FFFFFF"
380 fill2 "#FFFFFF"
381 outline "#000000"
382 ]
383 LabelGraphics
384 [
385 text "true"
386 outline "#000000"
387 fill "#FFFFFF"
388 fontSize 16
389 fontName "Monospace"
390 autoSizePolicy "node_width"
391 anchor "t"
392 borderDistance 0.0
393 ]
394 LabelGraphics
395 [
396 text "
397 "
398 fontSize 14
399 fontName "Consolas"
400 alignment "left"
401 anchor "tl"
402 borderDistance 6
403 ]
404 ]
405
406 node
407 [
408 id 11
409 graphics
410 [
411 w 50.6
412 h 26
413 type "rectangle"
414 fill "#FFFFFF"
415 fill2 "#FFFFFF"
416 outline "#000000"
417 ]
418 LabelGraphics
419 [
420 text "false"
421 outline "#000000"
422 fill "#FFFFFF"
423 fontSize 16
424 fontName "Monospace"
425 autoSizePolicy "node_width"
426 anchor "t"
427 borderDistance 0.0
428 ]
429 LabelGraphics
430 [
431 text "
432 "
433 fontSize 14
434 fontName "Consolas"
435 alignment "left"
436 anchor "tl"
437 borderDistance 6
438 ]
439 ]
440
441 node
442 [
443 id 12
444 graphics
445 [
446 w 323.40000000000003
447 h 82
448 type "rectangle"
449 fill "#FFFFFF"
450 fill2 "#FFFFFF"
451 outline "#000000"
452 ]
453 LabelGraphics
454 [
455 text "null"
456 outline "#000000"
457 fill "#FFFFFF"
458 fontSize 16
459 fontName "Monospace"
460 autoSizePolicy "node_width"
461 anchor "t"
462 borderDistance 0.0
463 ]
464 LabelGraphics
465 [
466 text "
467 CommunicatingElement class
468 Spacecraft class
469 SmallSat class
470 CommunicatingElement class UndefinedPart
471 "
472 fontSize 14
473 fontName "Consolas"
474 alignment "left"
475 anchor "tl"
476 borderDistance 6
477 ]
478 ]
479
480 node
481 [
482 id 13
483 graphics
484 [
485 w 323.40000000000003
486 h 82
487 type "rectangle"
488 fill "#FFFFFF"
489 fill2 "#FFFFFF"
490 outline "#000000"
491 ]
492 LabelGraphics
493 [
494 text "null"
495 outline "#000000"
496 fill "#FFFFFF"
497 fontSize 16
498 fontName "Monospace"
499 autoSizePolicy "node_width"
500 anchor "t"
501 borderDistance 0.0
502 ]
503 LabelGraphics
504 [
505 text "
506 CommunicatingElement class
507 Spacecraft class
508 CubeSat6U class
509 CommunicatingElement class UndefinedPart
510 "
511 fontSize 14
512 fontName "Consolas"
513 alignment "left"
514 anchor "tl"
515 borderDistance 6
516 ]
517 ]
518
519 node
520 [
521 id 14
522 graphics
523 [
524 w 269.5
525 h 54
526 type "rectangle"
527 fill "#FFFFFF"
528 fill2 "#FFFFFF"
529 outline "#000000"
530 ]
531 LabelGraphics
532 [
533 text "null"
534 outline "#000000"
535 fill "#FFFFFF"
536 fontSize 16
537 fontName "Monospace"
538 autoSizePolicy "node_width"
539 anchor "t"
540 borderDistance 0.0
541 ]
542 LabelGraphics
543 [
544 text "
545 CommSubsystem class
546 CommSubsystem class UndefinedPart
547 "
548 fontSize 14
549 fontName "Consolas"
550 alignment "left"
551 anchor "tl"
552 borderDistance 6
553 ]
554 ]
555
556 node
557 [
558 id 15
559 graphics
560 [
561 w 223.3
562 h 54
563 type "rectangle"
564 fill "#FFFFFF"
565 fill2 "#FFFFFF"
566 outline "#000000"
567 ]
568 LabelGraphics
569 [
570 text "null"
571 outline "#000000"
572 fill "#FFFFFF"
573 fontSize 16
574 fontName "Monospace"
575 autoSizePolicy "node_width"
576 anchor "t"
577 borderDistance 0.0
578 ]
579 LabelGraphics
580 [
581 text "
582 Payload class
583 InterferometryPayload class
584 "
585 fontSize 14
586 fontName "Consolas"
587 alignment "left"
588 anchor "tl"
589 borderDistance 6
590 ]
591 ]
592
593 node
594 [
595 id 16
596 graphics
597 [
598 w 269.5
599 h 54
600 type "rectangle"
601 fill "#FFFFFF"
602 fill2 "#FFFFFF"
603 outline "#000000"
604 ]
605 LabelGraphics
606 [
607 text "null"
608 outline "#000000"
609 fill "#FFFFFF"
610 fontSize 16
611 fontName "Monospace"
612 autoSizePolicy "node_width"
613 anchor "t"
614 borderDistance 0.0
615 ]
616 LabelGraphics
617 [
618 text "
619 CommSubsystem class
620 CommSubsystem class UndefinedPart
621 "
622 fontSize 14
623 fontName "Consolas"
624 alignment "left"
625 anchor "tl"
626 borderDistance 6
627 ]
628 ]
629
630 node
631 [
632 id 17
633 graphics
634 [
635 w 323.40000000000003
636 h 82
637 type "rectangle"
638 fill "#FFFFFF"
639 fill2 "#FFFFFF"
640 outline "#000000"
641 ]
642 LabelGraphics
643 [
644 text "null"
645 outline "#000000"
646 fill "#FFFFFF"
647 fontSize 16
648 fontName "Monospace"
649 autoSizePolicy "node_width"
650 anchor "t"
651 borderDistance 0.0
652 ]
653 LabelGraphics
654 [
655 text "
656 CommunicatingElement class
657 Spacecraft class
658 SmallSat class
659 CommunicatingElement class UndefinedPart
660 "
661 fontSize 14
662 fontName "Consolas"
663 alignment "left"
664 anchor "tl"
665 borderDistance 6
666 ]
667 ]
668
669 node
670 [
671 id 18
672 graphics
673 [
674 w 223.3
675 h 54
676 type "rectangle"
677 fill "#FFFFFF"
678 fill2 "#FFFFFF"
679 outline "#000000"
680 ]
681 LabelGraphics
682 [
683 text "null"
684 outline "#000000"
685 fill "#FFFFFF"
686 fontSize 16
687 fontName "Monospace"
688 autoSizePolicy "node_width"
689 anchor "t"
690 borderDistance 0.0
691 ]
692 LabelGraphics
693 [
694 text "
695 Payload class
696 InterferometryPayload class
697 "
698 fontSize 14
699 fontName "Consolas"
700 alignment "left"
701 anchor "tl"
702 borderDistance 6
703 ]
704 ]
705
706 node
707 [
708 id 19
709 graphics
710 [
711 w 323.40000000000003
712 h 82
713 type "rectangle"
714 fill "#FFFFFF"
715 fill2 "#FFFFFF"
716 outline "#000000"
717 ]
718 LabelGraphics
719 [
720 text "null"
721 outline "#000000"
722 fill "#FFFFFF"
723 fontSize 16
724 fontName "Monospace"
725 autoSizePolicy "node_width"
726 anchor "t"
727 borderDistance 0.0
728 ]
729 LabelGraphics
730 [
731 text "
732 CommunicatingElement class
733 Spacecraft class
734 SmallSat class
735 CommunicatingElement class UndefinedPart
736 "
737 fontSize 14
738 fontName "Consolas"
739 alignment "left"
740 anchor "tl"
741 borderDistance 6
742 ]
743 ]
744
745 node
746 [
747 id 20
748 graphics
749 [
750 w 223.3
751 h 54
752 type "rectangle"
753 fill "#FFFFFF"
754 fill2 "#FFFFFF"
755 outline "#000000"
756 ]
757 LabelGraphics
758 [
759 text "null"
760 outline "#000000"
761 fill "#FFFFFF"
762 fontSize 16
763 fontName "Monospace"
764 autoSizePolicy "node_width"
765 anchor "t"
766 borderDistance 0.0
767 ]
768 LabelGraphics
769 [
770 text "
771 Payload class
772 InterferometryPayload class
773 "
774 fontSize 14
775 fontName "Consolas"
776 alignment "left"
777 anchor "tl"
778 borderDistance 6
779 ]
780 ]
781
782 node
783 [
784 id 21
785 graphics
786 [
787 w 323.40000000000003
788 h 82
789 type "rectangle"
790 fill "#FFFFFF"
791 fill2 "#FFFFFF"
792 outline "#000000"
793 ]
794 LabelGraphics
795 [
796 text "null"
797 outline "#000000"
798 fill "#FFFFFF"
799 fontSize 16
800 fontName "Monospace"
801 autoSizePolicy "node_width"
802 anchor "t"
803 borderDistance 0.0
804 ]
805 LabelGraphics
806 [
807 text "
808 CommunicatingElement class
809 Spacecraft class
810 CubeSat6U class
811 CommunicatingElement class UndefinedPart
812 "
813 fontSize 14
814 fontName "Consolas"
815 alignment "left"
816 anchor "tl"
817 borderDistance 6
818 ]
819 ]
820
821 node
822 [
823 id 22
824 graphics
825 [
826 w 323.40000000000003
827 h 82
828 type "rectangle"
829 fill "#FFFFFF"
830 fill2 "#FFFFFF"
831 outline "#000000"
832 ]
833 LabelGraphics
834 [
835 text "null"
836 outline "#000000"
837 fill "#FFFFFF"
838 fontSize 16
839 fontName "Monospace"
840 autoSizePolicy "node_width"
841 anchor "t"
842 borderDistance 0.0
843 ]
844 LabelGraphics
845 [
846 text "
847 CommunicatingElement class
848 Spacecraft class
849 SmallSat class
850 CommunicatingElement class UndefinedPart
851 "
852 fontSize 14
853 fontName "Consolas"
854 alignment "left"
855 anchor "tl"
856 borderDistance 6
857 ]
858 ]
859
860 node
861 [
862 id 23
863 graphics
864 [
865 w 269.5
866 h 54
867 type "rectangle"
868 fill "#FFFFFF"
869 fill2 "#FFFFFF"
870 outline "#000000"
871 ]
872 LabelGraphics
873 [
874 text "null"
875 outline "#000000"
876 fill "#FFFFFF"
877 fontSize 16
878 fontName "Monospace"
879 autoSizePolicy "node_width"
880 anchor "t"
881 borderDistance 0.0
882 ]
883 LabelGraphics
884 [
885 text "
886 CommSubsystem class
887 CommSubsystem class UndefinedPart
888 "
889 fontSize 14
890 fontName "Consolas"
891 alignment "left"
892 anchor "tl"
893 borderDistance 6
894 ]
895 ]
896
897 node
898 [
899 id 24
900 graphics
901 [
902 w 269.5
903 h 54
904 type "rectangle"
905 fill "#FFFFFF"
906 fill2 "#FFFFFF"
907 outline "#000000"
908 ]
909 LabelGraphics
910 [
911 text "null"
912 outline "#000000"
913 fill "#FFFFFF"
914 fontSize 16
915 fontName "Monospace"
916 autoSizePolicy "node_width"
917 anchor "t"
918 borderDistance 0.0
919 ]
920 LabelGraphics
921 [
922 text "
923 CommSubsystem class
924 CommSubsystem class UndefinedPart
925 "
926 fontSize 14
927 fontName "Consolas"
928 alignment "left"
929 anchor "tl"
930 borderDistance 6
931 ]
932 ]
933
934 node
935 [
936 id 25
937 graphics
938 [
939 w 223.3
940 h 54
941 type "rectangle"
942 fill "#FFFFFF"
943 fill2 "#FFFFFF"
944 outline "#000000"
945 ]
946 LabelGraphics
947 [
948 text "null"
949 outline "#000000"
950 fill "#FFFFFF"
951 fontSize 16
952 fontName "Monospace"
953 autoSizePolicy "node_width"
954 anchor "t"
955 borderDistance 0.0
956 ]
957 LabelGraphics
958 [
959 text "
960 Payload class
961 InterferometryPayload class
962 "
963 fontSize 14
964 fontName "Consolas"
965 alignment "left"
966 anchor "tl"
967 borderDistance 6
968 ]
969 ]
970
971 node
972 [
973 id 26
974 graphics
975 [
976 w 223.3
977 h 54
978 type "rectangle"
979 fill "#FFFFFF"
980 fill2 "#FFFFFF"
981 outline "#000000"
982 ]
983 LabelGraphics
984 [
985 text "null"
986 outline "#000000"
987 fill "#FFFFFF"
988 fontSize 16
989 fontName "Monospace"
990 autoSizePolicy "node_width"
991 anchor "t"
992 borderDistance 0.0
993 ]
994 LabelGraphics
995 [
996 text "
997 Payload class
998 InterferometryPayload class
999 "
1000 fontSize 14
1001 fontName "Consolas"
1002 alignment "left"
1003 anchor "tl"
1004 borderDistance 6
1005 ]
1006 ]
1007
1008 node
1009 [
1010 id 27
1011 graphics
1012 [
1013 w 269.5
1014 h 54
1015 type "rectangle"
1016 fill "#FFFFFF"
1017 fill2 "#FFFFFF"
1018 outline "#000000"
1019 ]
1020 LabelGraphics
1021 [
1022 text "null"
1023 outline "#000000"
1024 fill "#FFFFFF"
1025 fontSize 16
1026 fontName "Monospace"
1027 autoSizePolicy "node_width"
1028 anchor "t"
1029 borderDistance 0.0
1030 ]
1031 LabelGraphics
1032 [
1033 text "
1034 CommSubsystem class
1035 CommSubsystem class UndefinedPart
1036 "
1037 fontSize 14
1038 fontName "Consolas"
1039 alignment "left"
1040 anchor "tl"
1041 borderDistance 6
1042 ]
1043 ]
1044
1045 node
1046 [
1047 id 28
1048 graphics
1049 [
1050 w 269.5
1051 h 54
1052 type "rectangle"
1053 fill "#FFFFFF"
1054 fill2 "#FFFFFF"
1055 outline "#000000"
1056 ]
1057 LabelGraphics
1058 [
1059 text "null"
1060 outline "#000000"
1061 fill "#FFFFFF"
1062 fontSize 16
1063 fontName "Monospace"
1064 autoSizePolicy "node_width"
1065 anchor "t"
1066 borderDistance 0.0
1067 ]
1068 LabelGraphics
1069 [
1070 text "
1071 CommSubsystem class
1072 CommSubsystem class UndefinedPart
1073 "
1074 fontSize 14
1075 fontName "Consolas"
1076 alignment "left"
1077 anchor "tl"
1078 borderDistance 6
1079 ]
1080 ]
1081
1082 node
1083 [
1084 id 29
1085 graphics
1086 [
1087 w 223.3
1088 h 54
1089 type "rectangle"
1090 fill "#FFFFFF"
1091 fill2 "#FFFFFF"
1092 outline "#000000"
1093 ]
1094 LabelGraphics
1095 [
1096 text "null"
1097 outline "#000000"
1098 fill "#FFFFFF"
1099 fontSize 16
1100 fontName "Monospace"
1101 autoSizePolicy "node_width"
1102 anchor "t"
1103 borderDistance 0.0
1104 ]
1105 LabelGraphics
1106 [
1107 text "
1108 Payload class
1109 InterferometryPayload class
1110 "
1111 fontSize 14
1112 fontName "Consolas"
1113 alignment "left"
1114 anchor "tl"
1115 borderDistance 6
1116 ]
1117 ]
1118
1119 node
1120 [
1121 id 30
1122 graphics
1123 [
1124 w 112.2
1125 h 26
1126 type "rectangle"
1127 fill "#FFFFFF"
1128 fill2 "#FFFFFF"
1129 outline "#000000"
1130 ]
1131 LabelGraphics
1132 [
1133 text "New Integers"
1134 outline "#000000"
1135 fill "#FFFFFF"
1136 fontSize 16
1137 fontName "Monospace"
1138 autoSizePolicy "node_width"
1139 anchor "t"
1140 borderDistance 0.0
1141 ]
1142 LabelGraphics
1143 [
1144 text "
1145 "
1146 fontSize 14
1147 fontName "Consolas"
1148 alignment "left"
1149 anchor "tl"
1150 borderDistance 6
1151 ]
1152 ]
1153
1154 node
1155 [
1156 id 31
1157 graphics
1158 [
1159 w 85.80000000000001
1160 h 26
1161 type "rectangle"
1162 fill "#FFFFFF"
1163 fill2 "#FFFFFF"
1164 outline "#000000"
1165 ]
1166 LabelGraphics
1167 [
1168 text "New Reals"
1169 outline "#000000"
1170 fill "#FFFFFF"
1171 fontSize 16
1172 fontName "Monospace"
1173 autoSizePolicy "node_width"
1174 anchor "t"
1175 borderDistance 0.0
1176 ]
1177 LabelGraphics
1178 [
1179 text "
1180 "
1181 fontSize 14
1182 fontName "Consolas"
1183 alignment "left"
1184 anchor "tl"
1185 borderDistance 6
1186 ]
1187 ]
1188
1189 node
1190 [
1191 id 32
1192 graphics
1193 [
1194 w 103.4
1195 h 26
1196 type "rectangle"
1197 fill "#FFFFFF"
1198 fill2 "#FFFFFF"
1199 outline "#000000"
1200 ]
1201 LabelGraphics
1202 [
1203 text "New Strings"
1204 outline "#000000"
1205 fill "#FFFFFF"
1206 fontSize 16
1207 fontName "Monospace"
1208 autoSizePolicy "node_width"
1209 anchor "t"
1210 borderDistance 0.0
1211 ]
1212 LabelGraphics
1213 [
1214 text "
1215 "
1216 fontSize 14
1217 fontName "Consolas"
1218 alignment "left"
1219 anchor "tl"
1220 borderDistance 6
1221 ]
1222 ]
1223
1224 node
1225 [
1226 id 33
1227 graphics
1228 [
1229 w 103.4
1230 h 26
1231 type "rectangle"
1232 fill "#FFFFFF"
1233 fill2 "#FFFFFF"
1234 outline "#000000"
1235 ]
1236 LabelGraphics
1237 [
1238 text "New Objects"
1239 outline "#000000"
1240 fill "#FFFFFF"
1241 fontSize 16
1242 fontName "Monospace"
1243 autoSizePolicy "node_width"
1244 anchor "t"
1245 borderDistance 0.0
1246 ]
1247 LabelGraphics
1248 [
1249 text "
1250 "
1251 fontSize 14
1252 fontName "Consolas"
1253 alignment "left"
1254 anchor "tl"
1255 borderDistance 6
1256 ]
1257 ]
1258 edge
1259 [
1260 source 6
1261 target 7
1262 graphics
1263 [
1264 fill "#000000"
1265 width 3
1266 targetArrow "standard"
1267 ]
1268 LabelGraphics
1269 [
1270 text "groundStationNetwork reference ConstellationMission"
1271 fontSize 14
1272 fontName "Consolas"
1273 configuration "AutoFlippingLabel"
1274 model "six_pos"
1275 position "thead"
1276 ]
1277 ]
1278 edge
1279 [
1280 source 6
1281 target 12
1282 graphics
1283 [
1284 fill "#000000"
1285 width 3
1286 targetArrow "standard"
1287 ]
1288 LabelGraphics
1289 [
1290 text "spacecraft reference ConstellationMission"
1291 fontSize 14
1292 fontName "Consolas"
1293 configuration "AutoFlippingLabel"
1294 model "six_pos"
1295 position "thead"
1296 ]
1297 ]
1298 edge
1299 [
1300 source 6
1301 target 13
1302 graphics
1303 [
1304 fill "#000000"
1305 width 3
1306 targetArrow "standard"
1307 ]
1308 LabelGraphics
1309 [
1310 text "spacecraft reference ConstellationMission"
1311 fontSize 14
1312 fontName "Consolas"
1313 configuration "AutoFlippingLabel"
1314 model "six_pos"
1315 position "thead"
1316 ]
1317 ]
1318 edge
1319 [
1320 source 6
1321 target 17
1322 graphics
1323 [
1324 fill "#000000"
1325 width 3
1326 targetArrow "standard"
1327 ]
1328 LabelGraphics
1329 [
1330 text "spacecraft reference ConstellationMission"
1331 fontSize 14
1332 fontName "Consolas"
1333 configuration "AutoFlippingLabel"
1334 model "six_pos"
1335 position "thead"
1336 ]
1337 ]
1338 edge
1339 [
1340 source 6
1341 target 19
1342 graphics
1343 [
1344 fill "#000000"
1345 width 3
1346 targetArrow "standard"
1347 ]
1348 LabelGraphics
1349 [
1350 text "spacecraft reference ConstellationMission"
1351 fontSize 14
1352 fontName "Consolas"
1353 configuration "AutoFlippingLabel"
1354 model "six_pos"
1355 position "thead"
1356 ]
1357 ]
1358 edge
1359 [
1360 source 6
1361 target 21
1362 graphics
1363 [
1364 fill "#000000"
1365 width 3
1366 targetArrow "standard"
1367 ]
1368 LabelGraphics
1369 [
1370 text "spacecraft reference ConstellationMission"
1371 fontSize 14
1372 fontName "Consolas"
1373 configuration "AutoFlippingLabel"
1374 model "six_pos"
1375 position "thead"
1376 ]
1377 ]
1378 edge
1379 [
1380 source 6
1381 target 22
1382 graphics
1383 [
1384 fill "#000000"
1385 width 3
1386 targetArrow "standard"
1387 ]
1388 LabelGraphics
1389 [
1390 text "spacecraft reference ConstellationMission"
1391 fontSize 14
1392 fontName "Consolas"
1393 configuration "AutoFlippingLabel"
1394 model "six_pos"
1395 position "thead"
1396 ]
1397 ]
1398 edge
1399 [
1400 source 7
1401 target 8
1402 graphics
1403 [
1404 fill "#000000"
1405 width 3
1406 targetArrow "standard"
1407 ]
1408 LabelGraphics
1409 [
1410 text "commSubsystem reference CommunicatingElement"
1411 fontSize 14
1412 fontName "Consolas"
1413 configuration "AutoFlippingLabel"
1414 model "six_pos"
1415 position "thead"
1416 ]
1417 ]
1418 edge
1419 [
1420 source 7
1421 target 9
1422 graphics
1423 [
1424 fill "#000000"
1425 width 3
1426 targetArrow "standard"
1427 ]
1428 LabelGraphics
1429 [
1430 text "commSubsystem reference CommunicatingElement"
1431 fontSize 14
1432 fontName "Consolas"
1433 configuration "AutoFlippingLabel"
1434 model "six_pos"
1435 position "thead"
1436 ]
1437 ]
1438 edge
1439 [
1440 source 13
1441 target 14
1442 graphics
1443 [
1444 fill "#000000"
1445 width 3
1446 targetArrow "standard"
1447 ]
1448 LabelGraphics
1449 [
1450 text "commSubsystem reference CommunicatingElement"
1451 fontSize 14
1452 fontName "Consolas"
1453 configuration "AutoFlippingLabel"
1454 model "six_pos"
1455 position "thead"
1456 ]
1457 ]
1458 edge
1459 [
1460 source 12
1461 target 16
1462 graphics
1463 [
1464 fill "#000000"
1465 width 3
1466 targetArrow "standard"
1467 ]
1468 LabelGraphics
1469 [
1470 text "commSubsystem reference CommunicatingElement"
1471 fontSize 14
1472 fontName "Consolas"
1473 configuration "AutoFlippingLabel"
1474 model "six_pos"
1475 position "thead"
1476 ]
1477 ]
1478 edge
1479 [
1480 source 21
1481 target 23
1482 graphics
1483 [
1484 fill "#000000"
1485 width 3
1486 targetArrow "standard"
1487 ]
1488 LabelGraphics
1489 [
1490 text "commSubsystem reference CommunicatingElement"
1491 fontSize 14
1492 fontName "Consolas"
1493 configuration "AutoFlippingLabel"
1494 model "six_pos"
1495 position "thead"
1496 ]
1497 ]
1498 edge
1499 [
1500 source 19
1501 target 24
1502 graphics
1503 [
1504 fill "#000000"
1505 width 3
1506 targetArrow "standard"
1507 ]
1508 LabelGraphics
1509 [
1510 text "commSubsystem reference CommunicatingElement"
1511 fontSize 14
1512 fontName "Consolas"
1513 configuration "AutoFlippingLabel"
1514 model "six_pos"
1515 position "thead"
1516 ]
1517 ]
1518 edge
1519 [
1520 source 17
1521 target 27
1522 graphics
1523 [
1524 fill "#000000"
1525 width 3
1526 targetArrow "standard"
1527 ]
1528 LabelGraphics
1529 [
1530 text "commSubsystem reference CommunicatingElement"
1531 fontSize 14
1532 fontName "Consolas"
1533 configuration "AutoFlippingLabel"
1534 model "six_pos"
1535 position "thead"
1536 ]
1537 ]
1538 edge
1539 [
1540 source 22
1541 target 28
1542 graphics
1543 [
1544 fill "#000000"
1545 width 3
1546 targetArrow "standard"
1547 ]
1548 LabelGraphics
1549 [
1550 text "commSubsystem reference CommunicatingElement"
1551 fontSize 14
1552 fontName "Consolas"
1553 configuration "AutoFlippingLabel"
1554 model "six_pos"
1555 position "thead"
1556 ]
1557 ]
1558 edge
1559 [
1560 source 13
1561 target 15
1562 graphics
1563 [
1564 fill "#000000"
1565 width 3
1566 targetArrow "standard"
1567 ]
1568 LabelGraphics
1569 [
1570 text "payload reference Spacecraft"
1571 fontSize 14
1572 fontName "Consolas"
1573 configuration "AutoFlippingLabel"
1574 model "six_pos"
1575 position "thead"
1576 ]
1577 ]
1578 edge
1579 [
1580 source 12
1581 target 18
1582 graphics
1583 [
1584 fill "#000000"
1585 width 3
1586 targetArrow "standard"
1587 ]
1588 LabelGraphics
1589 [
1590 text "payload reference Spacecraft"
1591 fontSize 14
1592 fontName "Consolas"
1593 configuration "AutoFlippingLabel"
1594 model "six_pos"
1595 position "thead"
1596 ]
1597 ]
1598 edge
1599 [
1600 source 17
1601 target 20
1602 graphics
1603 [
1604 fill "#000000"
1605 width 3
1606 targetArrow "standard"
1607 ]
1608 LabelGraphics
1609 [
1610 text "payload reference Spacecraft"
1611 fontSize 14
1612 fontName "Consolas"
1613 configuration "AutoFlippingLabel"
1614 model "six_pos"
1615 position "thead"
1616 ]
1617 ]
1618 edge
1619 [
1620 source 19
1621 target 25
1622 graphics
1623 [
1624 fill "#000000"
1625 width 3
1626 targetArrow "standard"
1627 ]
1628 LabelGraphics
1629 [
1630 text "payload reference Spacecraft"
1631 fontSize 14
1632 fontName "Consolas"
1633 configuration "AutoFlippingLabel"
1634 model "six_pos"
1635 position "thead"
1636 ]
1637 ]
1638 edge
1639 [
1640 source 22
1641 target 26
1642 graphics
1643 [
1644 fill "#000000"
1645 width 3
1646 targetArrow "standard"
1647 ]
1648 LabelGraphics
1649 [
1650 text "payload reference Spacecraft"
1651 fontSize 14
1652 fontName "Consolas"
1653 configuration "AutoFlippingLabel"
1654 model "six_pos"
1655 position "thead"
1656 ]
1657 ]
1658 edge
1659 [
1660 source 21
1661 target 29
1662 graphics
1663 [
1664 fill "#000000"
1665 width 3
1666 targetArrow "standard"
1667 ]
1668 LabelGraphics
1669 [
1670 text "payload reference Spacecraft"
1671 fontSize 14
1672 fontName "Consolas"
1673 configuration "AutoFlippingLabel"
1674 model "six_pos"
1675 position "thead"
1676 ]
1677 ]
1678 edge
1679 [
1680 source 8
1681 target 1
1682 graphics
1683 [
1684 fill "#000000"
1685 targetArrow "standard"
1686 ]
1687 LabelGraphics
1688 [
1689 text "band attribute CommSubsystem"
1690 fontSize 14
1691 fontName "Consolas"
1692 configuration "AutoFlippingLabel"
1693 model "six_pos"
1694 position "thead"
1695 ]
1696 ]
1697 edge
1698 [
1699 source 9
1700 target 2
1701 graphics
1702 [
1703 fill "#000000"
1704 targetArrow "standard"
1705 ]
1706 LabelGraphics
1707 [
1708 text "band attribute CommSubsystem"
1709 fontSize 14
1710 fontName "Consolas"
1711 configuration "AutoFlippingLabel"
1712 model "six_pos"
1713 position "thead"
1714 ]
1715 ]
1716 edge
1717 [
1718 source 14
1719 target 0
1720 graphics
1721 [
1722 fill "#000000"
1723 targetArrow "standard"
1724 ]
1725 LabelGraphics
1726 [
1727 text "band attribute CommSubsystem"
1728 fontSize 14
1729 fontName "Consolas"
1730 configuration "AutoFlippingLabel"
1731 model "six_pos"
1732 position "thead"
1733 ]
1734 ]
1735 edge
1736 [
1737 source 16
1738 target 2
1739 graphics
1740 [
1741 fill "#000000"
1742 targetArrow "standard"
1743 ]
1744 LabelGraphics
1745 [
1746 text "band attribute CommSubsystem"
1747 fontSize 14
1748 fontName "Consolas"
1749 configuration "AutoFlippingLabel"
1750 model "six_pos"
1751 position "thead"
1752 ]
1753 ]
1754 edge
1755 [
1756 source 23
1757 target 1
1758 graphics
1759 [
1760 fill "#000000"
1761 targetArrow "standard"
1762 ]
1763 LabelGraphics
1764 [
1765 text "band attribute CommSubsystem"
1766 fontSize 14
1767 fontName "Consolas"
1768 configuration "AutoFlippingLabel"
1769 model "six_pos"
1770 position "thead"
1771 ]
1772 ]
1773 edge
1774 [
1775 source 24
1776 target 2
1777 graphics
1778 [
1779 fill "#000000"
1780 targetArrow "standard"
1781 ]
1782 LabelGraphics
1783 [
1784 text "band attribute CommSubsystem"
1785 fontSize 14
1786 fontName "Consolas"
1787 configuration "AutoFlippingLabel"
1788 model "six_pos"
1789 position "thead"
1790 ]
1791 ]
1792 edge
1793 [
1794 source 27
1795 target 1
1796 graphics
1797 [
1798 fill "#000000"
1799 targetArrow "standard"
1800 ]
1801 LabelGraphics
1802 [
1803 text "band attribute CommSubsystem"
1804 fontSize 14
1805 fontName "Consolas"
1806 configuration "AutoFlippingLabel"
1807 model "six_pos"
1808 position "thead"
1809 ]
1810 ]
1811 edge
1812 [
1813 source 28
1814 target 0
1815 graphics
1816 [
1817 fill "#000000"
1818 targetArrow "standard"
1819 ]
1820 LabelGraphics
1821 [
1822 text "band attribute CommSubsystem"
1823 fontSize 14
1824 fontName "Consolas"
1825 configuration "AutoFlippingLabel"
1826 model "six_pos"
1827 position "thead"
1828 ]
1829 ]
1830 edge
1831 [
1832 source 8
1833 target 4
1834 graphics
1835 [
1836 fill "#000000"
1837 targetArrow "standard"
1838 ]
1839 LabelGraphics
1840 [
1841 text "gain attribute CommSubsystem"
1842 fontSize 14
1843 fontName "Consolas"
1844 configuration "AutoFlippingLabel"
1845 model "six_pos"
1846 position "thead"
1847 ]
1848 ]
1849 edge
1850 [
1851 source 9
1852 target 5
1853 graphics
1854 [
1855 fill "#000000"
1856 targetArrow "standard"
1857 ]
1858 LabelGraphics
1859 [
1860 text "gain attribute CommSubsystem"
1861 fontSize 14
1862 fontName "Consolas"
1863 configuration "AutoFlippingLabel"
1864 model "six_pos"
1865 position "thead"
1866 ]
1867 ]
1868 edge
1869 [
1870 source 14
1871 target 5
1872 graphics
1873 [
1874 fill "#000000"
1875 targetArrow "standard"
1876 ]
1877 LabelGraphics
1878 [
1879 text "gain attribute CommSubsystem"
1880 fontSize 14
1881 fontName "Consolas"
1882 configuration "AutoFlippingLabel"
1883 model "six_pos"
1884 position "thead"
1885 ]
1886 ]
1887 edge
1888 [
1889 source 16
1890 target 3
1891 graphics
1892 [
1893 fill "#000000"
1894 targetArrow "standard"
1895 ]
1896 LabelGraphics
1897 [
1898 text "gain attribute CommSubsystem"
1899 fontSize 14
1900 fontName "Consolas"
1901 configuration "AutoFlippingLabel"
1902 model "six_pos"
1903 position "thead"
1904 ]
1905 ]
1906 edge
1907 [
1908 source 24
1909 target 4
1910 graphics
1911 [
1912 fill "#000000"
1913 targetArrow "standard"
1914 ]
1915 LabelGraphics
1916 [
1917 text "gain attribute CommSubsystem"
1918 fontSize 14
1919 fontName "Consolas"
1920 configuration "AutoFlippingLabel"
1921 model "six_pos"
1922 position "thead"
1923 ]
1924 ]
1925 edge
1926 [
1927 source 23
1928 target 4
1929 graphics
1930 [
1931 fill "#000000"
1932 targetArrow "standard"
1933 ]
1934 LabelGraphics
1935 [
1936 text "gain attribute CommSubsystem"
1937 fontSize 14
1938 fontName "Consolas"
1939 configuration "AutoFlippingLabel"
1940 model "six_pos"
1941 position "thead"
1942 ]
1943 ]
1944 edge
1945 [
1946 source 27
1947 target 4
1948 graphics
1949 [
1950 fill "#000000"
1951 targetArrow "standard"
1952 ]
1953 LabelGraphics
1954 [
1955 text "gain attribute CommSubsystem"
1956 fontSize 14
1957 fontName "Consolas"
1958 configuration "AutoFlippingLabel"
1959 model "six_pos"
1960 position "thead"
1961 ]
1962 ]
1963 edge
1964 [
1965 source 28
1966 target 3
1967 graphics
1968 [
1969 fill "#000000"
1970 targetArrow "standard"
1971 ]
1972 LabelGraphics
1973 [
1974 text "gain attribute CommSubsystem"
1975 fontSize 14
1976 fontName "Consolas"
1977 configuration "AutoFlippingLabel"
1978 model "six_pos"
1979 position "thead"
1980 ]
1981 ]
1982]
1983
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.png
deleted file mode 100644
index e378a9fb..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.xmi
deleted file mode 100644
index 4dcf0982..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.xmi
+++ /dev/null
@@ -1,31 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem band="X" gain="MEDIUM"/>
5 <commSubsystem band="Ka" gain="HIGH"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem band="X" gain="MEDIUM"/>
9 <payload xsi:type="satellite:InterferometryPayload"/>
10 </spacecraft>
11 <spacecraft xsi:type="satellite:CubeSat6U">
12 <commSubsystem gain="HIGH"/>
13 <payload xsi:type="satellite:InterferometryPayload"/>
14 </spacecraft>
15 <spacecraft xsi:type="satellite:SmallSat">
16 <commSubsystem band="X" gain="MEDIUM"/>
17 <payload xsi:type="satellite:InterferometryPayload"/>
18 </spacecraft>
19 <spacecraft xsi:type="satellite:SmallSat">
20 <commSubsystem band="Ka" gain="MEDIUM"/>
21 <payload xsi:type="satellite:InterferometryPayload"/>
22 </spacecraft>
23 <spacecraft xsi:type="satellite:SmallSat">
24 <commSubsystem band="Ka"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:SmallSat">
28 <commSubsystem/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.gml
deleted file mode 100644
index 3f21efdc..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.gml
+++ /dev/null
@@ -1,1926 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 244.20000000000002
9 h 40
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "UHF literal TransceiverBand"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 TransceiverBand enum
30 "
31 fontSize 14
32 fontName "Consolas"
33 alignment "left"
34 anchor "tl"
35 borderDistance 6
36 ]
37 ]
38
39 node
40 [
41 id 1
42 graphics
43 [
44 w 226.60000000000002
45 h 40
46 type "rectangle"
47 fill "#FFFFFF"
48 fill2 "#FFFFFF"
49 outline "#000000"
50 ]
51 LabelGraphics
52 [
53 text "X literal TransceiverBand"
54 outline "#000000"
55 fill "#FFFFFF"
56 fontSize 16
57 fontName "Monospace"
58 autoSizePolicy "node_width"
59 anchor "t"
60 borderDistance 0.0
61 ]
62 LabelGraphics
63 [
64 text "
65 TransceiverBand enum
66 "
67 fontSize 14
68 fontName "Consolas"
69 alignment "left"
70 anchor "tl"
71 borderDistance 6
72 ]
73 ]
74
75 node
76 [
77 id 2
78 graphics
79 [
80 w 235.4
81 h 40
82 type "rectangle"
83 fill "#FFFFFF"
84 fill2 "#FFFFFF"
85 outline "#000000"
86 ]
87 LabelGraphics
88 [
89 text "Ka literal TransceiverBand"
90 outline "#000000"
91 fill "#FFFFFF"
92 fontSize 16
93 fontName "Monospace"
94 autoSizePolicy "node_width"
95 anchor "t"
96 borderDistance 0.0
97 ]
98 LabelGraphics
99 [
100 text "
101 TransceiverBand enum
102 "
103 fontSize 14
104 fontName "Consolas"
105 alignment "left"
106 anchor "tl"
107 borderDistance 6
108 ]
109 ]
110
111 node
112 [
113 id 3
114 graphics
115 [
116 w 209.00000000000003
117 h 40
118 type "rectangle"
119 fill "#FFFFFF"
120 fill2 "#FFFFFF"
121 outline "#000000"
122 ]
123 LabelGraphics
124 [
125 text "LOW literal AntennaGain"
126 outline "#000000"
127 fill "#FFFFFF"
128 fontSize 16
129 fontName "Monospace"
130 autoSizePolicy "node_width"
131 anchor "t"
132 borderDistance 0.0
133 ]
134 LabelGraphics
135 [
136 text "
137 AntennaGain enum
138 "
139 fontSize 14
140 fontName "Consolas"
141 alignment "left"
142 anchor "tl"
143 borderDistance 6
144 ]
145 ]
146
147 node
148 [
149 id 4
150 graphics
151 [
152 w 235.4
153 h 40
154 type "rectangle"
155 fill "#FFFFFF"
156 fill2 "#FFFFFF"
157 outline "#000000"
158 ]
159 LabelGraphics
160 [
161 text "MEDIUM literal AntennaGain"
162 outline "#000000"
163 fill "#FFFFFF"
164 fontSize 16
165 fontName "Monospace"
166 autoSizePolicy "node_width"
167 anchor "t"
168 borderDistance 0.0
169 ]
170 LabelGraphics
171 [
172 text "
173 AntennaGain enum
174 "
175 fontSize 14
176 fontName "Consolas"
177 alignment "left"
178 anchor "tl"
179 borderDistance 6
180 ]
181 ]
182
183 node
184 [
185 id 5
186 graphics
187 [
188 w 217.8
189 h 40
190 type "rectangle"
191 fill "#FFFFFF"
192 fill2 "#FFFFFF"
193 outline "#000000"
194 ]
195 LabelGraphics
196 [
197 text "HIGH literal AntennaGain"
198 outline "#000000"
199 fill "#FFFFFF"
200 fontSize 16
201 fontName "Monospace"
202 autoSizePolicy "node_width"
203 anchor "t"
204 borderDistance 0.0
205 ]
206 LabelGraphics
207 [
208 text "
209 AntennaGain enum
210 "
211 fontSize 14
212 fontName "Consolas"
213 alignment "left"
214 anchor "tl"
215 borderDistance 6
216 ]
217 ]
218
219 node
220 [
221 id 6
222 graphics
223 [
224 w 315.70000000000005
225 h 82
226 type "rectangle"
227 fill "#FFFFFF"
228 fill2 "#FFFFFF"
229 outline "#000000"
230 ]
231 LabelGraphics
232 [
233 text "o 1"
234 outline "#000000"
235 fill "#FFFFFF"
236 fontSize 16
237 fontName "Monospace"
238 autoSizePolicy "node_width"
239 anchor "t"
240 borderDistance 0.0
241 ]
242 LabelGraphics
243 [
244 text "
245 ConstellationMission class DefinedPart
246 InterferometryMission class DefinedPart
247 ConstellationMission class
248 InterferometryMission class
249 "
250 fontSize 14
251 fontName "Consolas"
252 alignment "left"
253 anchor "tl"
254 borderDistance 6
255 ]
256 ]
257
258 node
259 [
260 id 7
261 graphics
262 [
263 w 308.0
264 h 82
265 type "rectangle"
266 fill "#FFFFFF"
267 fill2 "#FFFFFF"
268 outline "#000000"
269 ]
270 LabelGraphics
271 [
272 text "o 2"
273 outline "#000000"
274 fill "#FFFFFF"
275 fontSize 16
276 fontName "Monospace"
277 autoSizePolicy "node_width"
278 anchor "t"
279 borderDistance 0.0
280 ]
281 LabelGraphics
282 [
283 text "
284 CommunicatingElement class DefinedPart
285 GroundStationNetwork class DefinedPart
286 CommunicatingElement class
287 GroundStationNetwork class
288 "
289 fontSize 14
290 fontName "Consolas"
291 alignment "left"
292 anchor "tl"
293 borderDistance 6
294 ]
295 ]
296
297 node
298 [
299 id 8
300 graphics
301 [
302 w 254.10000000000002
303 h 54
304 type "rectangle"
305 fill "#FFFFFF"
306 fill2 "#FFFFFF"
307 outline "#000000"
308 ]
309 LabelGraphics
310 [
311 text "o 3"
312 outline "#000000"
313 fill "#FFFFFF"
314 fontSize 16
315 fontName "Monospace"
316 autoSizePolicy "node_width"
317 anchor "t"
318 borderDistance 0.0
319 ]
320 LabelGraphics
321 [
322 text "
323 CommSubsystem class DefinedPart
324 CommSubsystem class
325 "
326 fontSize 14
327 fontName "Consolas"
328 alignment "left"
329 anchor "tl"
330 borderDistance 6
331 ]
332 ]
333
334 node
335 [
336 id 9
337 graphics
338 [
339 w 254.10000000000002
340 h 54
341 type "rectangle"
342 fill "#FFFFFF"
343 fill2 "#FFFFFF"
344 outline "#000000"
345 ]
346 LabelGraphics
347 [
348 text "o 4"
349 outline "#000000"
350 fill "#FFFFFF"
351 fontSize 16
352 fontName "Monospace"
353 autoSizePolicy "node_width"
354 anchor "t"
355 borderDistance 0.0
356 ]
357 LabelGraphics
358 [
359 text "
360 CommSubsystem class DefinedPart
361 CommSubsystem class
362 "
363 fontSize 14
364 fontName "Consolas"
365 alignment "left"
366 anchor "tl"
367 borderDistance 6
368 ]
369 ]
370
371 node
372 [
373 id 10
374 graphics
375 [
376 w 41.800000000000004
377 h 26
378 type "rectangle"
379 fill "#FFFFFF"
380 fill2 "#FFFFFF"
381 outline "#000000"
382 ]
383 LabelGraphics
384 [
385 text "true"
386 outline "#000000"
387 fill "#FFFFFF"
388 fontSize 16
389 fontName "Monospace"
390 autoSizePolicy "node_width"
391 anchor "t"
392 borderDistance 0.0
393 ]
394 LabelGraphics
395 [
396 text "
397 "
398 fontSize 14
399 fontName "Consolas"
400 alignment "left"
401 anchor "tl"
402 borderDistance 6
403 ]
404 ]
405
406 node
407 [
408 id 11
409 graphics
410 [
411 w 50.6
412 h 26
413 type "rectangle"
414 fill "#FFFFFF"
415 fill2 "#FFFFFF"
416 outline "#000000"
417 ]
418 LabelGraphics
419 [
420 text "false"
421 outline "#000000"
422 fill "#FFFFFF"
423 fontSize 16
424 fontName "Monospace"
425 autoSizePolicy "node_width"
426 anchor "t"
427 borderDistance 0.0
428 ]
429 LabelGraphics
430 [
431 text "
432 "
433 fontSize 14
434 fontName "Consolas"
435 alignment "left"
436 anchor "tl"
437 borderDistance 6
438 ]
439 ]
440
441 node
442 [
443 id 12
444 graphics
445 [
446 w 323.40000000000003
447 h 82
448 type "rectangle"
449 fill "#FFFFFF"
450 fill2 "#FFFFFF"
451 outline "#000000"
452 ]
453 LabelGraphics
454 [
455 text "null"
456 outline "#000000"
457 fill "#FFFFFF"
458 fontSize 16
459 fontName "Monospace"
460 autoSizePolicy "node_width"
461 anchor "t"
462 borderDistance 0.0
463 ]
464 LabelGraphics
465 [
466 text "
467 CommunicatingElement class
468 Spacecraft class
469 SmallSat class
470 CommunicatingElement class UndefinedPart
471 "
472 fontSize 14
473 fontName "Consolas"
474 alignment "left"
475 anchor "tl"
476 borderDistance 6
477 ]
478 ]
479
480 node
481 [
482 id 13
483 graphics
484 [
485 w 323.40000000000003
486 h 82
487 type "rectangle"
488 fill "#FFFFFF"
489 fill2 "#FFFFFF"
490 outline "#000000"
491 ]
492 LabelGraphics
493 [
494 text "null"
495 outline "#000000"
496 fill "#FFFFFF"
497 fontSize 16
498 fontName "Monospace"
499 autoSizePolicy "node_width"
500 anchor "t"
501 borderDistance 0.0
502 ]
503 LabelGraphics
504 [
505 text "
506 CommunicatingElement class
507 Spacecraft class
508 CubeSat6U class
509 CommunicatingElement class UndefinedPart
510 "
511 fontSize 14
512 fontName "Consolas"
513 alignment "left"
514 anchor "tl"
515 borderDistance 6
516 ]
517 ]
518
519 node
520 [
521 id 14
522 graphics
523 [
524 w 269.5
525 h 54
526 type "rectangle"
527 fill "#FFFFFF"
528 fill2 "#FFFFFF"
529 outline "#000000"
530 ]
531 LabelGraphics
532 [
533 text "null"
534 outline "#000000"
535 fill "#FFFFFF"
536 fontSize 16
537 fontName "Monospace"
538 autoSizePolicy "node_width"
539 anchor "t"
540 borderDistance 0.0
541 ]
542 LabelGraphics
543 [
544 text "
545 CommSubsystem class
546 CommSubsystem class UndefinedPart
547 "
548 fontSize 14
549 fontName "Consolas"
550 alignment "left"
551 anchor "tl"
552 borderDistance 6
553 ]
554 ]
555
556 node
557 [
558 id 15
559 graphics
560 [
561 w 223.3
562 h 54
563 type "rectangle"
564 fill "#FFFFFF"
565 fill2 "#FFFFFF"
566 outline "#000000"
567 ]
568 LabelGraphics
569 [
570 text "null"
571 outline "#000000"
572 fill "#FFFFFF"
573 fontSize 16
574 fontName "Monospace"
575 autoSizePolicy "node_width"
576 anchor "t"
577 borderDistance 0.0
578 ]
579 LabelGraphics
580 [
581 text "
582 Payload class
583 InterferometryPayload class
584 "
585 fontSize 14
586 fontName "Consolas"
587 alignment "left"
588 anchor "tl"
589 borderDistance 6
590 ]
591 ]
592
593 node
594 [
595 id 16
596 graphics
597 [
598 w 269.5
599 h 54
600 type "rectangle"
601 fill "#FFFFFF"
602 fill2 "#FFFFFF"
603 outline "#000000"
604 ]
605 LabelGraphics
606 [
607 text "null"
608 outline "#000000"
609 fill "#FFFFFF"
610 fontSize 16
611 fontName "Monospace"
612 autoSizePolicy "node_width"
613 anchor "t"
614 borderDistance 0.0
615 ]
616 LabelGraphics
617 [
618 text "
619 CommSubsystem class
620 CommSubsystem class UndefinedPart
621 "
622 fontSize 14
623 fontName "Consolas"
624 alignment "left"
625 anchor "tl"
626 borderDistance 6
627 ]
628 ]
629
630 node
631 [
632 id 17
633 graphics
634 [
635 w 323.40000000000003
636 h 82
637 type "rectangle"
638 fill "#FFFFFF"
639 fill2 "#FFFFFF"
640 outline "#000000"
641 ]
642 LabelGraphics
643 [
644 text "null"
645 outline "#000000"
646 fill "#FFFFFF"
647 fontSize 16
648 fontName "Monospace"
649 autoSizePolicy "node_width"
650 anchor "t"
651 borderDistance 0.0
652 ]
653 LabelGraphics
654 [
655 text "
656 CommunicatingElement class
657 Spacecraft class
658 SmallSat class
659 CommunicatingElement class UndefinedPart
660 "
661 fontSize 14
662 fontName "Consolas"
663 alignment "left"
664 anchor "tl"
665 borderDistance 6
666 ]
667 ]
668
669 node
670 [
671 id 18
672 graphics
673 [
674 w 223.3
675 h 54
676 type "rectangle"
677 fill "#FFFFFF"
678 fill2 "#FFFFFF"
679 outline "#000000"
680 ]
681 LabelGraphics
682 [
683 text "null"
684 outline "#000000"
685 fill "#FFFFFF"
686 fontSize 16
687 fontName "Monospace"
688 autoSizePolicy "node_width"
689 anchor "t"
690 borderDistance 0.0
691 ]
692 LabelGraphics
693 [
694 text "
695 Payload class
696 InterferometryPayload class
697 "
698 fontSize 14
699 fontName "Consolas"
700 alignment "left"
701 anchor "tl"
702 borderDistance 6
703 ]
704 ]
705
706 node
707 [
708 id 19
709 graphics
710 [
711 w 323.40000000000003
712 h 82
713 type "rectangle"
714 fill "#FFFFFF"
715 fill2 "#FFFFFF"
716 outline "#000000"
717 ]
718 LabelGraphics
719 [
720 text "null"
721 outline "#000000"
722 fill "#FFFFFF"
723 fontSize 16
724 fontName "Monospace"
725 autoSizePolicy "node_width"
726 anchor "t"
727 borderDistance 0.0
728 ]
729 LabelGraphics
730 [
731 text "
732 CommunicatingElement class
733 Spacecraft class
734 SmallSat class
735 CommunicatingElement class UndefinedPart
736 "
737 fontSize 14
738 fontName "Consolas"
739 alignment "left"
740 anchor "tl"
741 borderDistance 6
742 ]
743 ]
744
745 node
746 [
747 id 20
748 graphics
749 [
750 w 223.3
751 h 54
752 type "rectangle"
753 fill "#FFFFFF"
754 fill2 "#FFFFFF"
755 outline "#000000"
756 ]
757 LabelGraphics
758 [
759 text "null"
760 outline "#000000"
761 fill "#FFFFFF"
762 fontSize 16
763 fontName "Monospace"
764 autoSizePolicy "node_width"
765 anchor "t"
766 borderDistance 0.0
767 ]
768 LabelGraphics
769 [
770 text "
771 Payload class
772 InterferometryPayload class
773 "
774 fontSize 14
775 fontName "Consolas"
776 alignment "left"
777 anchor "tl"
778 borderDistance 6
779 ]
780 ]
781
782 node
783 [
784 id 21
785 graphics
786 [
787 w 323.40000000000003
788 h 82
789 type "rectangle"
790 fill "#FFFFFF"
791 fill2 "#FFFFFF"
792 outline "#000000"
793 ]
794 LabelGraphics
795 [
796 text "null"
797 outline "#000000"
798 fill "#FFFFFF"
799 fontSize 16
800 fontName "Monospace"
801 autoSizePolicy "node_width"
802 anchor "t"
803 borderDistance 0.0
804 ]
805 LabelGraphics
806 [
807 text "
808 CommunicatingElement class
809 Spacecraft class
810 CubeSat6U class
811 CommunicatingElement class UndefinedPart
812 "
813 fontSize 14
814 fontName "Consolas"
815 alignment "left"
816 anchor "tl"
817 borderDistance 6
818 ]
819 ]
820
821 node
822 [
823 id 22
824 graphics
825 [
826 w 323.40000000000003
827 h 82
828 type "rectangle"
829 fill "#FFFFFF"
830 fill2 "#FFFFFF"
831 outline "#000000"
832 ]
833 LabelGraphics
834 [
835 text "null"
836 outline "#000000"
837 fill "#FFFFFF"
838 fontSize 16
839 fontName "Monospace"
840 autoSizePolicy "node_width"
841 anchor "t"
842 borderDistance 0.0
843 ]
844 LabelGraphics
845 [
846 text "
847 CommunicatingElement class
848 Spacecraft class
849 SmallSat class
850 CommunicatingElement class UndefinedPart
851 "
852 fontSize 14
853 fontName "Consolas"
854 alignment "left"
855 anchor "tl"
856 borderDistance 6
857 ]
858 ]
859
860 node
861 [
862 id 23
863 graphics
864 [
865 w 269.5
866 h 54
867 type "rectangle"
868 fill "#FFFFFF"
869 fill2 "#FFFFFF"
870 outline "#000000"
871 ]
872 LabelGraphics
873 [
874 text "null"
875 outline "#000000"
876 fill "#FFFFFF"
877 fontSize 16
878 fontName "Monospace"
879 autoSizePolicy "node_width"
880 anchor "t"
881 borderDistance 0.0
882 ]
883 LabelGraphics
884 [
885 text "
886 CommSubsystem class
887 CommSubsystem class UndefinedPart
888 "
889 fontSize 14
890 fontName "Consolas"
891 alignment "left"
892 anchor "tl"
893 borderDistance 6
894 ]
895 ]
896
897 node
898 [
899 id 24
900 graphics
901 [
902 w 269.5
903 h 54
904 type "rectangle"
905 fill "#FFFFFF"
906 fill2 "#FFFFFF"
907 outline "#000000"
908 ]
909 LabelGraphics
910 [
911 text "null"
912 outline "#000000"
913 fill "#FFFFFF"
914 fontSize 16
915 fontName "Monospace"
916 autoSizePolicy "node_width"
917 anchor "t"
918 borderDistance 0.0
919 ]
920 LabelGraphics
921 [
922 text "
923 CommSubsystem class
924 CommSubsystem class UndefinedPart
925 "
926 fontSize 14
927 fontName "Consolas"
928 alignment "left"
929 anchor "tl"
930 borderDistance 6
931 ]
932 ]
933
934 node
935 [
936 id 25
937 graphics
938 [
939 w 223.3
940 h 54
941 type "rectangle"
942 fill "#FFFFFF"
943 fill2 "#FFFFFF"
944 outline "#000000"
945 ]
946 LabelGraphics
947 [
948 text "null"
949 outline "#000000"
950 fill "#FFFFFF"
951 fontSize 16
952 fontName "Monospace"
953 autoSizePolicy "node_width"
954 anchor "t"
955 borderDistance 0.0
956 ]
957 LabelGraphics
958 [
959 text "
960 Payload class
961 InterferometryPayload class
962 "
963 fontSize 14
964 fontName "Consolas"
965 alignment "left"
966 anchor "tl"
967 borderDistance 6
968 ]
969 ]
970
971 node
972 [
973 id 26
974 graphics
975 [
976 w 223.3
977 h 54
978 type "rectangle"
979 fill "#FFFFFF"
980 fill2 "#FFFFFF"
981 outline "#000000"
982 ]
983 LabelGraphics
984 [
985 text "null"
986 outline "#000000"
987 fill "#FFFFFF"
988 fontSize 16
989 fontName "Monospace"
990 autoSizePolicy "node_width"
991 anchor "t"
992 borderDistance 0.0
993 ]
994 LabelGraphics
995 [
996 text "
997 Payload class
998 InterferometryPayload class
999 "
1000 fontSize 14
1001 fontName "Consolas"
1002 alignment "left"
1003 anchor "tl"
1004 borderDistance 6
1005 ]
1006 ]
1007
1008 node
1009 [
1010 id 27
1011 graphics
1012 [
1013 w 269.5
1014 h 54
1015 type "rectangle"
1016 fill "#FFFFFF"
1017 fill2 "#FFFFFF"
1018 outline "#000000"
1019 ]
1020 LabelGraphics
1021 [
1022 text "null"
1023 outline "#000000"
1024 fill "#FFFFFF"
1025 fontSize 16
1026 fontName "Monospace"
1027 autoSizePolicy "node_width"
1028 anchor "t"
1029 borderDistance 0.0
1030 ]
1031 LabelGraphics
1032 [
1033 text "
1034 CommSubsystem class
1035 CommSubsystem class UndefinedPart
1036 "
1037 fontSize 14
1038 fontName "Consolas"
1039 alignment "left"
1040 anchor "tl"
1041 borderDistance 6
1042 ]
1043 ]
1044
1045 node
1046 [
1047 id 28
1048 graphics
1049 [
1050 w 269.5
1051 h 54
1052 type "rectangle"
1053 fill "#FFFFFF"
1054 fill2 "#FFFFFF"
1055 outline "#000000"
1056 ]
1057 LabelGraphics
1058 [
1059 text "null"
1060 outline "#000000"
1061 fill "#FFFFFF"
1062 fontSize 16
1063 fontName "Monospace"
1064 autoSizePolicy "node_width"
1065 anchor "t"
1066 borderDistance 0.0
1067 ]
1068 LabelGraphics
1069 [
1070 text "
1071 CommSubsystem class
1072 CommSubsystem class UndefinedPart
1073 "
1074 fontSize 14
1075 fontName "Consolas"
1076 alignment "left"
1077 anchor "tl"
1078 borderDistance 6
1079 ]
1080 ]
1081
1082 node
1083 [
1084 id 29
1085 graphics
1086 [
1087 w 112.2
1088 h 26
1089 type "rectangle"
1090 fill "#FFFFFF"
1091 fill2 "#FFFFFF"
1092 outline "#000000"
1093 ]
1094 LabelGraphics
1095 [
1096 text "New Integers"
1097 outline "#000000"
1098 fill "#FFFFFF"
1099 fontSize 16
1100 fontName "Monospace"
1101 autoSizePolicy "node_width"
1102 anchor "t"
1103 borderDistance 0.0
1104 ]
1105 LabelGraphics
1106 [
1107 text "
1108 "
1109 fontSize 14
1110 fontName "Consolas"
1111 alignment "left"
1112 anchor "tl"
1113 borderDistance 6
1114 ]
1115 ]
1116
1117 node
1118 [
1119 id 30
1120 graphics
1121 [
1122 w 85.80000000000001
1123 h 26
1124 type "rectangle"
1125 fill "#FFFFFF"
1126 fill2 "#FFFFFF"
1127 outline "#000000"
1128 ]
1129 LabelGraphics
1130 [
1131 text "New Reals"
1132 outline "#000000"
1133 fill "#FFFFFF"
1134 fontSize 16
1135 fontName "Monospace"
1136 autoSizePolicy "node_width"
1137 anchor "t"
1138 borderDistance 0.0
1139 ]
1140 LabelGraphics
1141 [
1142 text "
1143 "
1144 fontSize 14
1145 fontName "Consolas"
1146 alignment "left"
1147 anchor "tl"
1148 borderDistance 6
1149 ]
1150 ]
1151
1152 node
1153 [
1154 id 31
1155 graphics
1156 [
1157 w 103.4
1158 h 26
1159 type "rectangle"
1160 fill "#FFFFFF"
1161 fill2 "#FFFFFF"
1162 outline "#000000"
1163 ]
1164 LabelGraphics
1165 [
1166 text "New Strings"
1167 outline "#000000"
1168 fill "#FFFFFF"
1169 fontSize 16
1170 fontName "Monospace"
1171 autoSizePolicy "node_width"
1172 anchor "t"
1173 borderDistance 0.0
1174 ]
1175 LabelGraphics
1176 [
1177 text "
1178 "
1179 fontSize 14
1180 fontName "Consolas"
1181 alignment "left"
1182 anchor "tl"
1183 borderDistance 6
1184 ]
1185 ]
1186
1187 node
1188 [
1189 id 32
1190 graphics
1191 [
1192 w 103.4
1193 h 26
1194 type "rectangle"
1195 fill "#FFFFFF"
1196 fill2 "#FFFFFF"
1197 outline "#000000"
1198 ]
1199 LabelGraphics
1200 [
1201 text "New Objects"
1202 outline "#000000"
1203 fill "#FFFFFF"
1204 fontSize 16
1205 fontName "Monospace"
1206 autoSizePolicy "node_width"
1207 anchor "t"
1208 borderDistance 0.0
1209 ]
1210 LabelGraphics
1211 [
1212 text "
1213 "
1214 fontSize 14
1215 fontName "Consolas"
1216 alignment "left"
1217 anchor "tl"
1218 borderDistance 6
1219 ]
1220 ]
1221 edge
1222 [
1223 source 6
1224 target 7
1225 graphics
1226 [
1227 fill "#000000"
1228 width 3
1229 targetArrow "standard"
1230 ]
1231 LabelGraphics
1232 [
1233 text "groundStationNetwork reference ConstellationMission"
1234 fontSize 14
1235 fontName "Consolas"
1236 configuration "AutoFlippingLabel"
1237 model "six_pos"
1238 position "thead"
1239 ]
1240 ]
1241 edge
1242 [
1243 source 6
1244 target 12
1245 graphics
1246 [
1247 fill "#000000"
1248 width 3
1249 targetArrow "standard"
1250 ]
1251 LabelGraphics
1252 [
1253 text "spacecraft reference ConstellationMission"
1254 fontSize 14
1255 fontName "Consolas"
1256 configuration "AutoFlippingLabel"
1257 model "six_pos"
1258 position "thead"
1259 ]
1260 ]
1261 edge
1262 [
1263 source 6
1264 target 13
1265 graphics
1266 [
1267 fill "#000000"
1268 width 3
1269 targetArrow "standard"
1270 ]
1271 LabelGraphics
1272 [
1273 text "spacecraft reference ConstellationMission"
1274 fontSize 14
1275 fontName "Consolas"
1276 configuration "AutoFlippingLabel"
1277 model "six_pos"
1278 position "thead"
1279 ]
1280 ]
1281 edge
1282 [
1283 source 6
1284 target 17
1285 graphics
1286 [
1287 fill "#000000"
1288 width 3
1289 targetArrow "standard"
1290 ]
1291 LabelGraphics
1292 [
1293 text "spacecraft reference ConstellationMission"
1294 fontSize 14
1295 fontName "Consolas"
1296 configuration "AutoFlippingLabel"
1297 model "six_pos"
1298 position "thead"
1299 ]
1300 ]
1301 edge
1302 [
1303 source 6
1304 target 19
1305 graphics
1306 [
1307 fill "#000000"
1308 width 3
1309 targetArrow "standard"
1310 ]
1311 LabelGraphics
1312 [
1313 text "spacecraft reference ConstellationMission"
1314 fontSize 14
1315 fontName "Consolas"
1316 configuration "AutoFlippingLabel"
1317 model "six_pos"
1318 position "thead"
1319 ]
1320 ]
1321 edge
1322 [
1323 source 6
1324 target 21
1325 graphics
1326 [
1327 fill "#000000"
1328 width 3
1329 targetArrow "standard"
1330 ]
1331 LabelGraphics
1332 [
1333 text "spacecraft reference ConstellationMission"
1334 fontSize 14
1335 fontName "Consolas"
1336 configuration "AutoFlippingLabel"
1337 model "six_pos"
1338 position "thead"
1339 ]
1340 ]
1341 edge
1342 [
1343 source 6
1344 target 22
1345 graphics
1346 [
1347 fill "#000000"
1348 width 3
1349 targetArrow "standard"
1350 ]
1351 LabelGraphics
1352 [
1353 text "spacecraft reference ConstellationMission"
1354 fontSize 14
1355 fontName "Consolas"
1356 configuration "AutoFlippingLabel"
1357 model "six_pos"
1358 position "thead"
1359 ]
1360 ]
1361 edge
1362 [
1363 source 7
1364 target 8
1365 graphics
1366 [
1367 fill "#000000"
1368 width 3
1369 targetArrow "standard"
1370 ]
1371 LabelGraphics
1372 [
1373 text "commSubsystem reference CommunicatingElement"
1374 fontSize 14
1375 fontName "Consolas"
1376 configuration "AutoFlippingLabel"
1377 model "six_pos"
1378 position "thead"
1379 ]
1380 ]
1381 edge
1382 [
1383 source 7
1384 target 9
1385 graphics
1386 [
1387 fill "#000000"
1388 width 3
1389 targetArrow "standard"
1390 ]
1391 LabelGraphics
1392 [
1393 text "commSubsystem reference CommunicatingElement"
1394 fontSize 14
1395 fontName "Consolas"
1396 configuration "AutoFlippingLabel"
1397 model "six_pos"
1398 position "thead"
1399 ]
1400 ]
1401 edge
1402 [
1403 source 13
1404 target 14
1405 graphics
1406 [
1407 fill "#000000"
1408 width 3
1409 targetArrow "standard"
1410 ]
1411 LabelGraphics
1412 [
1413 text "commSubsystem reference CommunicatingElement"
1414 fontSize 14
1415 fontName "Consolas"
1416 configuration "AutoFlippingLabel"
1417 model "six_pos"
1418 position "thead"
1419 ]
1420 ]
1421 edge
1422 [
1423 source 12
1424 target 16
1425 graphics
1426 [
1427 fill "#000000"
1428 width 3
1429 targetArrow "standard"
1430 ]
1431 LabelGraphics
1432 [
1433 text "commSubsystem reference CommunicatingElement"
1434 fontSize 14
1435 fontName "Consolas"
1436 configuration "AutoFlippingLabel"
1437 model "six_pos"
1438 position "thead"
1439 ]
1440 ]
1441 edge
1442 [
1443 source 21
1444 target 23
1445 graphics
1446 [
1447 fill "#000000"
1448 width 3
1449 targetArrow "standard"
1450 ]
1451 LabelGraphics
1452 [
1453 text "commSubsystem reference CommunicatingElement"
1454 fontSize 14
1455 fontName "Consolas"
1456 configuration "AutoFlippingLabel"
1457 model "six_pos"
1458 position "thead"
1459 ]
1460 ]
1461 edge
1462 [
1463 source 19
1464 target 24
1465 graphics
1466 [
1467 fill "#000000"
1468 width 3
1469 targetArrow "standard"
1470 ]
1471 LabelGraphics
1472 [
1473 text "commSubsystem reference CommunicatingElement"
1474 fontSize 14
1475 fontName "Consolas"
1476 configuration "AutoFlippingLabel"
1477 model "six_pos"
1478 position "thead"
1479 ]
1480 ]
1481 edge
1482 [
1483 source 17
1484 target 27
1485 graphics
1486 [
1487 fill "#000000"
1488 width 3
1489 targetArrow "standard"
1490 ]
1491 LabelGraphics
1492 [
1493 text "commSubsystem reference CommunicatingElement"
1494 fontSize 14
1495 fontName "Consolas"
1496 configuration "AutoFlippingLabel"
1497 model "six_pos"
1498 position "thead"
1499 ]
1500 ]
1501 edge
1502 [
1503 source 22
1504 target 28
1505 graphics
1506 [
1507 fill "#000000"
1508 width 3
1509 targetArrow "standard"
1510 ]
1511 LabelGraphics
1512 [
1513 text "commSubsystem reference CommunicatingElement"
1514 fontSize 14
1515 fontName "Consolas"
1516 configuration "AutoFlippingLabel"
1517 model "six_pos"
1518 position "thead"
1519 ]
1520 ]
1521 edge
1522 [
1523 source 13
1524 target 15
1525 graphics
1526 [
1527 fill "#000000"
1528 width 3
1529 targetArrow "standard"
1530 ]
1531 LabelGraphics
1532 [
1533 text "payload reference Spacecraft"
1534 fontSize 14
1535 fontName "Consolas"
1536 configuration "AutoFlippingLabel"
1537 model "six_pos"
1538 position "thead"
1539 ]
1540 ]
1541 edge
1542 [
1543 source 12
1544 target 18
1545 graphics
1546 [
1547 fill "#000000"
1548 width 3
1549 targetArrow "standard"
1550 ]
1551 LabelGraphics
1552 [
1553 text "payload reference Spacecraft"
1554 fontSize 14
1555 fontName "Consolas"
1556 configuration "AutoFlippingLabel"
1557 model "six_pos"
1558 position "thead"
1559 ]
1560 ]
1561 edge
1562 [
1563 source 17
1564 target 20
1565 graphics
1566 [
1567 fill "#000000"
1568 width 3
1569 targetArrow "standard"
1570 ]
1571 LabelGraphics
1572 [
1573 text "payload reference Spacecraft"
1574 fontSize 14
1575 fontName "Consolas"
1576 configuration "AutoFlippingLabel"
1577 model "six_pos"
1578 position "thead"
1579 ]
1580 ]
1581 edge
1582 [
1583 source 19
1584 target 25
1585 graphics
1586 [
1587 fill "#000000"
1588 width 3
1589 targetArrow "standard"
1590 ]
1591 LabelGraphics
1592 [
1593 text "payload reference Spacecraft"
1594 fontSize 14
1595 fontName "Consolas"
1596 configuration "AutoFlippingLabel"
1597 model "six_pos"
1598 position "thead"
1599 ]
1600 ]
1601 edge
1602 [
1603 source 22
1604 target 26
1605 graphics
1606 [
1607 fill "#000000"
1608 width 3
1609 targetArrow "standard"
1610 ]
1611 LabelGraphics
1612 [
1613 text "payload reference Spacecraft"
1614 fontSize 14
1615 fontName "Consolas"
1616 configuration "AutoFlippingLabel"
1617 model "six_pos"
1618 position "thead"
1619 ]
1620 ]
1621 edge
1622 [
1623 source 8
1624 target 1
1625 graphics
1626 [
1627 fill "#000000"
1628 targetArrow "standard"
1629 ]
1630 LabelGraphics
1631 [
1632 text "band attribute CommSubsystem"
1633 fontSize 14
1634 fontName "Consolas"
1635 configuration "AutoFlippingLabel"
1636 model "six_pos"
1637 position "thead"
1638 ]
1639 ]
1640 edge
1641 [
1642 source 9
1643 target 2
1644 graphics
1645 [
1646 fill "#000000"
1647 targetArrow "standard"
1648 ]
1649 LabelGraphics
1650 [
1651 text "band attribute CommSubsystem"
1652 fontSize 14
1653 fontName "Consolas"
1654 configuration "AutoFlippingLabel"
1655 model "six_pos"
1656 position "thead"
1657 ]
1658 ]
1659 edge
1660 [
1661 source 14
1662 target 0
1663 graphics
1664 [
1665 fill "#000000"
1666 targetArrow "standard"
1667 ]
1668 LabelGraphics
1669 [
1670 text "band attribute CommSubsystem"
1671 fontSize 14
1672 fontName "Consolas"
1673 configuration "AutoFlippingLabel"
1674 model "six_pos"
1675 position "thead"
1676 ]
1677 ]
1678 edge
1679 [
1680 source 16
1681 target 2
1682 graphics
1683 [
1684 fill "#000000"
1685 targetArrow "standard"
1686 ]
1687 LabelGraphics
1688 [
1689 text "band attribute CommSubsystem"
1690 fontSize 14
1691 fontName "Consolas"
1692 configuration "AutoFlippingLabel"
1693 model "six_pos"
1694 position "thead"
1695 ]
1696 ]
1697 edge
1698 [
1699 source 23
1700 target 1
1701 graphics
1702 [
1703 fill "#000000"
1704 targetArrow "standard"
1705 ]
1706 LabelGraphics
1707 [
1708 text "band attribute CommSubsystem"
1709 fontSize 14
1710 fontName "Consolas"
1711 configuration "AutoFlippingLabel"
1712 model "six_pos"
1713 position "thead"
1714 ]
1715 ]
1716 edge
1717 [
1718 source 24
1719 target 2
1720 graphics
1721 [
1722 fill "#000000"
1723 targetArrow "standard"
1724 ]
1725 LabelGraphics
1726 [
1727 text "band attribute CommSubsystem"
1728 fontSize 14
1729 fontName "Consolas"
1730 configuration "AutoFlippingLabel"
1731 model "six_pos"
1732 position "thead"
1733 ]
1734 ]
1735 edge
1736 [
1737 source 27
1738 target 1
1739 graphics
1740 [
1741 fill "#000000"
1742 targetArrow "standard"
1743 ]
1744 LabelGraphics
1745 [
1746 text "band attribute CommSubsystem"
1747 fontSize 14
1748 fontName "Consolas"
1749 configuration "AutoFlippingLabel"
1750 model "six_pos"
1751 position "thead"
1752 ]
1753 ]
1754 edge
1755 [
1756 source 28
1757 target 1
1758 graphics
1759 [
1760 fill "#000000"
1761 targetArrow "standard"
1762 ]
1763 LabelGraphics
1764 [
1765 text "band attribute CommSubsystem"
1766 fontSize 14
1767 fontName "Consolas"
1768 configuration "AutoFlippingLabel"
1769 model "six_pos"
1770 position "thead"
1771 ]
1772 ]
1773 edge
1774 [
1775 source 8
1776 target 4
1777 graphics
1778 [
1779 fill "#000000"
1780 targetArrow "standard"
1781 ]
1782 LabelGraphics
1783 [
1784 text "gain attribute CommSubsystem"
1785 fontSize 14
1786 fontName "Consolas"
1787 configuration "AutoFlippingLabel"
1788 model "six_pos"
1789 position "thead"
1790 ]
1791 ]
1792 edge
1793 [
1794 source 9
1795 target 5
1796 graphics
1797 [
1798 fill "#000000"
1799 targetArrow "standard"
1800 ]
1801 LabelGraphics
1802 [
1803 text "gain attribute CommSubsystem"
1804 fontSize 14
1805 fontName "Consolas"
1806 configuration "AutoFlippingLabel"
1807 model "six_pos"
1808 position "thead"
1809 ]
1810 ]
1811 edge
1812 [
1813 source 14
1814 target 5
1815 graphics
1816 [
1817 fill "#000000"
1818 targetArrow "standard"
1819 ]
1820 LabelGraphics
1821 [
1822 text "gain attribute CommSubsystem"
1823 fontSize 14
1824 fontName "Consolas"
1825 configuration "AutoFlippingLabel"
1826 model "six_pos"
1827 position "thead"
1828 ]
1829 ]
1830 edge
1831 [
1832 source 16
1833 target 3
1834 graphics
1835 [
1836 fill "#000000"
1837 targetArrow "standard"
1838 ]
1839 LabelGraphics
1840 [
1841 text "gain attribute CommSubsystem"
1842 fontSize 14
1843 fontName "Consolas"
1844 configuration "AutoFlippingLabel"
1845 model "six_pos"
1846 position "thead"
1847 ]
1848 ]
1849 edge
1850 [
1851 source 24
1852 target 4
1853 graphics
1854 [
1855 fill "#000000"
1856 targetArrow "standard"
1857 ]
1858 LabelGraphics
1859 [
1860 text "gain attribute CommSubsystem"
1861 fontSize 14
1862 fontName "Consolas"
1863 configuration "AutoFlippingLabel"
1864 model "six_pos"
1865 position "thead"
1866 ]
1867 ]
1868 edge
1869 [
1870 source 23
1871 target 4
1872 graphics
1873 [
1874 fill "#000000"
1875 targetArrow "standard"
1876 ]
1877 LabelGraphics
1878 [
1879 text "gain attribute CommSubsystem"
1880 fontSize 14
1881 fontName "Consolas"
1882 configuration "AutoFlippingLabel"
1883 model "six_pos"
1884 position "thead"
1885 ]
1886 ]
1887 edge
1888 [
1889 source 27
1890 target 4
1891 graphics
1892 [
1893 fill "#000000"
1894 targetArrow "standard"
1895 ]
1896 LabelGraphics
1897 [
1898 text "gain attribute CommSubsystem"
1899 fontSize 14
1900 fontName "Consolas"
1901 configuration "AutoFlippingLabel"
1902 model "six_pos"
1903 position "thead"
1904 ]
1905 ]
1906 edge
1907 [
1908 source 28
1909 target 3
1910 graphics
1911 [
1912 fill "#000000"
1913 targetArrow "standard"
1914 ]
1915 LabelGraphics
1916 [
1917 text "gain attribute CommSubsystem"
1918 fontSize 14
1919 fontName "Consolas"
1920 configuration "AutoFlippingLabel"
1921 model "six_pos"
1922 position "thead"
1923 ]
1924 ]
1925]
1926
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.png
deleted file mode 100644
index 4d65f5ba..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.xmi
deleted file mode 100644
index b0c5bef1..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.xmi
+++ /dev/null
@@ -1,30 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem band="X" gain="MEDIUM"/>
5 <commSubsystem band="Ka" gain="HIGH"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem band="X" gain="MEDIUM"/>
9 </spacecraft>
10 <spacecraft xsi:type="satellite:CubeSat6U">
11 <commSubsystem gain="HIGH"/>
12 <payload xsi:type="satellite:InterferometryPayload"/>
13 </spacecraft>
14 <spacecraft xsi:type="satellite:SmallSat">
15 <commSubsystem band="X" gain="MEDIUM"/>
16 <payload xsi:type="satellite:InterferometryPayload"/>
17 </spacecraft>
18 <spacecraft xsi:type="satellite:SmallSat">
19 <commSubsystem band="Ka" gain="MEDIUM"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:SmallSat">
23 <commSubsystem band="Ka"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:SmallSat">
27 <commSubsystem band="X"/>
28 <payload xsi:type="satellite:InterferometryPayload"/>
29 </spacecraft>
30</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/statistics.csv b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/statistics.csv
index c6c34dfc..35c220e0 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/statistics.csv
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/statistics.csv
@@ -1,3 +1,3 @@
1Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 1Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
21;1;ModelResultImpl;715;4234;39649;4468544142;39591;20421;147;938;0;10 21;1;ModelResultImpl;580;4611;34341;4979693485;34306;19566;148;1006;0;5
3 3
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 0cdd345c..5d75b948 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
@@ -1,14 +1,18 @@
1<?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- 1<?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!--
2--><plugin> 2--><plugin>
3 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
4 <wellbehaving-derived-feature classifier-name="Spacecraft" feature-name="kind" package-nsUri="http://www.example.org/satellite"/>
5 </extension>
3 <extension point="org.eclipse.emf.ecore.generated_package"> 6 <extension point="org.eclipse.emf.ecore.generated_package">
4 <!-- @generated satellite --> 7 <!-- @generated satellite -->
5 <package class="hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage" genModel="model/satellite.genmodel" uri="http://www.example.org/satellite"/> 8 <package class="satellite.SatellitePackage" genModel="model/satellite.genmodel" uri="http://www.example.org/satellite"/>
6 </extension> 9 </extension>
7 <extension id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" point="org.eclipse.viatra.query.runtime.queryspecification"> 10 <extension id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
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"> 11 <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"/> 12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/> 13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/> 14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
15 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/>
12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/> 16 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/>
13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/> 17 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/>
14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/> 18 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/>
@@ -17,9 +21,8 @@
17 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/> 21 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/>
18 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/> 22 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/>
19 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/> 23 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/>
20 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric"/> 24 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/>
21 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric"/> 25 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/>
22 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric"/>
23 </group> 26 </group>
24 </extension> 27 </extension>
25</plugin> 28</plugin>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore
deleted file mode 100644
index 3e7cd5e2..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
1/.CoverageMetric.java._trace
2/.SatelliteMetrics.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore
deleted file mode 100644
index d3195cfc..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
1/.MissionCoverage.java._trace
2/.SatelliteMetricsAll.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore
index 5f0d5b4b..6f361334 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore
@@ -20,3 +20,6 @@
20/.TimeMetric.java._trace 20/.TimeMetric.java._trace
21/.CostMetric.java._trace 21/.CostMetric.java._trace
22/.SpacecraftCost.java._trace 22/.SpacecraftCost.java._trace
23/.SpacecraftOfKind.java._trace
24/.NoPotentialLinkToGroundStation.java._trace
25/.SmallSat.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java
index c15563ff..ba69943a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java
@@ -4,7 +4,7 @@
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; 4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat; 7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat;
8import java.util.Arrays; 8import java.util.Arrays;
9import java.util.Collection; 9import java.util.Collection;
10import java.util.LinkedHashSet; 10import java.util.LinkedHashSet;
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CoverageMetric.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java
index 23b02ce4..1e8f8502 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CoverageMetric.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java
@@ -3,7 +3,8 @@
3 */ 3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; 4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed;
7import java.util.Arrays; 8import java.util.Arrays;
8import java.util.Collection; 9import java.util.Collection;
9import java.util.LinkedHashSet; 10import java.util.LinkedHashSet;
@@ -15,6 +16,7 @@ import java.util.function.Consumer;
15import java.util.stream.Collectors; 16import java.util.stream.Collectors;
16import java.util.stream.Stream; 17import java.util.stream.Stream;
17import org.apache.log4j.Logger; 18import org.apache.log4j.Logger;
19import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch; 20import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification; 21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; 22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
@@ -22,15 +24,17 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; 24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; 25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; 26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; 27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 29import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; 30import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; 31import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; 32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; 34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; 35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; 36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
34import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; 39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; 40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
@@ -43,14 +47,12 @@ import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43 * 47 *
44 * <p>Original source: 48 * <p>Original source:
45 * <code><pre> 49 * <code><pre>
46 * // 50 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
47 * // Metrics 51 * message = "Spacecraft has no potential communication path to the ground station.")
48 * // 52 * pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) {
49 * 53 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
50 * // Coverage 54 * ConstellationMission.spacecraft(Mission, Spacecraft);
51 * 55 * neg find indirectLinkAllowed(Spacecraft, GroundStation);
52 * pattern coverageMetric(Coverage : java Double) {
53 * Coverage == sum find missionCoverage(_, #_);
54 * } 56 * }
55 * </pre></code> 57 * </pre></code>
56 * 58 *
@@ -59,9 +61,9 @@ import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
59 * 61 *
60 */ 62 */
61@SuppressWarnings("all") 63@SuppressWarnings("all")
62public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<CoverageMetric.Matcher> { 64public final class NoPotentialLinkToGroundStation extends BaseGeneratedEMFQuerySpecification<NoPotentialLinkToGroundStation.Matcher> {
63 /** 65 /**
64 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric pattern, 66 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation pattern,
65 * to be used in conjunction with {@link Matcher}. 67 * to be used in conjunction with {@link Matcher}.
66 * 68 *
67 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. 69 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
@@ -73,69 +75,69 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
73 * 75 *
74 */ 76 */
75 public static abstract class Match extends BasePatternMatch { 77 public static abstract class Match extends BasePatternMatch {
76 private Double fCoverage; 78 private Spacecraft fSpacecraft;
77 79
78 private static List<String> parameterNames = makeImmutableList("Coverage"); 80 private static List<String> parameterNames = makeImmutableList("Spacecraft");
79 81
80 private Match(final Double pCoverage) { 82 private Match(final Spacecraft pSpacecraft) {
81 this.fCoverage = pCoverage; 83 this.fSpacecraft = pSpacecraft;
82 } 84 }
83 85
84 @Override 86 @Override
85 public Object get(final String parameterName) { 87 public Object get(final String parameterName) {
86 if ("Coverage".equals(parameterName)) return this.fCoverage; 88 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
87 return null; 89 return null;
88 } 90 }
89 91
90 public Double getCoverage() { 92 public Spacecraft getSpacecraft() {
91 return this.fCoverage; 93 return this.fSpacecraft;
92 } 94 }
93 95
94 @Override 96 @Override
95 public boolean set(final String parameterName, final Object newValue) { 97 public boolean set(final String parameterName, final Object newValue) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException(); 98 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 if ("Coverage".equals(parameterName) ) { 99 if ("Spacecraft".equals(parameterName) ) {
98 this.fCoverage = (Double) newValue; 100 this.fSpacecraft = (Spacecraft) newValue;
99 return true; 101 return true;
100 } 102 }
101 return false; 103 return false;
102 } 104 }
103 105
104 public void setCoverage(final Double pCoverage) { 106 public void setSpacecraft(final Spacecraft pSpacecraft) {
105 if (!isMutable()) throw new java.lang.UnsupportedOperationException(); 107 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
106 this.fCoverage = pCoverage; 108 this.fSpacecraft = pSpacecraft;
107 } 109 }
108 110
109 @Override 111 @Override
110 public String patternName() { 112 public String patternName() {
111 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric"; 113 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation";
112 } 114 }
113 115
114 @Override 116 @Override
115 public List<String> parameterNames() { 117 public List<String> parameterNames() {
116 return CoverageMetric.Match.parameterNames; 118 return NoPotentialLinkToGroundStation.Match.parameterNames;
117 } 119 }
118 120
119 @Override 121 @Override
120 public Object[] toArray() { 122 public Object[] toArray() {
121 return new Object[]{fCoverage}; 123 return new Object[]{fSpacecraft};
122 } 124 }
123 125
124 @Override 126 @Override
125 public CoverageMetric.Match toImmutable() { 127 public NoPotentialLinkToGroundStation.Match toImmutable() {
126 return isMutable() ? newMatch(fCoverage) : this; 128 return isMutable() ? newMatch(fSpacecraft) : this;
127 } 129 }
128 130
129 @Override 131 @Override
130 public String prettyPrint() { 132 public String prettyPrint() {
131 StringBuilder result = new StringBuilder(); 133 StringBuilder result = new StringBuilder();
132 result.append("\"Coverage\"=" + prettyPrintValue(fCoverage)); 134 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft));
133 return result.toString(); 135 return result.toString();
134 } 136 }
135 137
136 @Override 138 @Override
137 public int hashCode() { 139 public int hashCode() {
138 return Objects.hash(fCoverage); 140 return Objects.hash(fSpacecraft);
139 } 141 }
140 142
141 @Override 143 @Override
@@ -145,9 +147,9 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
145 if (obj == null) { 147 if (obj == null) {
146 return false; 148 return false;
147 } 149 }
148 if ((obj instanceof CoverageMetric.Match)) { 150 if ((obj instanceof NoPotentialLinkToGroundStation.Match)) {
149 CoverageMetric.Match other = (CoverageMetric.Match) obj; 151 NoPotentialLinkToGroundStation.Match other = (NoPotentialLinkToGroundStation.Match) obj;
150 return Objects.equals(fCoverage, other.fCoverage); 152 return Objects.equals(fSpacecraft, other.fSpacecraft);
151 } else { 153 } else {
152 // this should be infrequent 154 // this should be infrequent
153 if (!(obj instanceof IPatternMatch)) { 155 if (!(obj instanceof IPatternMatch)) {
@@ -159,8 +161,8 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
159 } 161 }
160 162
161 @Override 163 @Override
162 public CoverageMetric specification() { 164 public NoPotentialLinkToGroundStation specification() {
163 return CoverageMetric.instance(); 165 return NoPotentialLinkToGroundStation.instance();
164 } 166 }
165 167
166 /** 168 /**
@@ -170,7 +172,7 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
170 * @return the empty match. 172 * @return the empty match.
171 * 173 *
172 */ 174 */
173 public static CoverageMetric.Match newEmptyMatch() { 175 public static NoPotentialLinkToGroundStation.Match newEmptyMatch() {
174 return new Mutable(null); 176 return new Mutable(null);
175 } 177 }
176 178
@@ -178,29 +180,29 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
178 * Returns a mutable (partial) match. 180 * Returns a mutable (partial) match.
179 * Fields of the mutable match can be filled to create a partial match, usable as matcher input. 181 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
180 * 182 *
181 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 183 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
182 * @return the new, mutable (partial) match object. 184 * @return the new, mutable (partial) match object.
183 * 185 *
184 */ 186 */
185 public static CoverageMetric.Match newMutableMatch(final Double pCoverage) { 187 public static NoPotentialLinkToGroundStation.Match newMutableMatch(final Spacecraft pSpacecraft) {
186 return new Mutable(pCoverage); 188 return new Mutable(pSpacecraft);
187 } 189 }
188 190
189 /** 191 /**
190 * Returns a new (partial) match. 192 * Returns a new (partial) match.
191 * This can be used e.g. to call the matcher with a partial match. 193 * This can be used e.g. to call the matcher with a partial match.
192 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. 194 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
193 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 195 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
194 * @return the (partial) match object. 196 * @return the (partial) match object.
195 * 197 *
196 */ 198 */
197 public static CoverageMetric.Match newMatch(final Double pCoverage) { 199 public static NoPotentialLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
198 return new Immutable(pCoverage); 200 return new Immutable(pSpacecraft);
199 } 201 }
200 202
201 private static final class Mutable extends CoverageMetric.Match { 203 private static final class Mutable extends NoPotentialLinkToGroundStation.Match {
202 Mutable(final Double pCoverage) { 204 Mutable(final Spacecraft pSpacecraft) {
203 super(pCoverage); 205 super(pSpacecraft);
204 } 206 }
205 207
206 @Override 208 @Override
@@ -209,9 +211,9 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
209 } 211 }
210 } 212 }
211 213
212 private static final class Immutable extends CoverageMetric.Match { 214 private static final class Immutable extends NoPotentialLinkToGroundStation.Match {
213 Immutable(final Double pCoverage) { 215 Immutable(final Spacecraft pSpacecraft) {
214 super(pCoverage); 216 super(pSpacecraft);
215 } 217 }
216 218
217 @Override 219 @Override
@@ -222,7 +224,7 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
222 } 224 }
223 225
224 /** 226 /**
225 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric pattern, 227 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation pattern,
226 * providing pattern-specific query methods. 228 * providing pattern-specific query methods.
227 * 229 *
228 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, 230 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
@@ -232,22 +234,20 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
232 * 234 *
233 * <p>Original source: 235 * <p>Original source:
234 * <code><pre> 236 * <code><pre>
235 * // 237 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
236 * // Metrics 238 * message = "Spacecraft has no potential communication path to the ground station.")
237 * // 239 * pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) {
238 * 240 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
239 * // Coverage 241 * ConstellationMission.spacecraft(Mission, Spacecraft);
240 * 242 * neg find indirectLinkAllowed(Spacecraft, GroundStation);
241 * pattern coverageMetric(Coverage : java Double) {
242 * Coverage == sum find missionCoverage(_, #_);
243 * } 243 * }
244 * </pre></code> 244 * </pre></code>
245 * 245 *
246 * @see Match 246 * @see Match
247 * @see CoverageMetric 247 * @see NoPotentialLinkToGroundStation
248 * 248 *
249 */ 249 */
250 public static class Matcher extends BaseMatcher<CoverageMetric.Match> { 250 public static class Matcher extends BaseMatcher<NoPotentialLinkToGroundStation.Match> {
251 /** 251 /**
252 * Initializes the pattern matcher within an existing VIATRA Query engine. 252 * Initializes the pattern matcher within an existing VIATRA Query engine.
253 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. 253 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
@@ -256,7 +256,7 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation 256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
257 * 257 *
258 */ 258 */
259 public static CoverageMetric.Matcher on(final ViatraQueryEngine engine) { 259 public static NoPotentialLinkToGroundStation.Matcher on(final ViatraQueryEngine engine) {
260 // check if matcher already exists 260 // check if matcher already exists
261 Matcher matcher = engine.getExistingMatcher(querySpecification()); 261 Matcher matcher = engine.getExistingMatcher(querySpecification());
262 if (matcher == null) { 262 if (matcher == null) {
@@ -271,13 +271,13 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
271 * @noreference This method is for internal matcher initialization by the framework, do not call it manually. 271 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
272 * 272 *
273 */ 273 */
274 public static CoverageMetric.Matcher create() { 274 public static NoPotentialLinkToGroundStation.Matcher create() {
275 return new Matcher(); 275 return new Matcher();
276 } 276 }
277 277
278 private static final int POSITION_COVERAGE = 0; 278 private static final int POSITION_SPACECRAFT = 0;
279 279
280 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CoverageMetric.Matcher.class); 280 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NoPotentialLinkToGroundStation.Matcher.class);
281 281
282 /** 282 /**
283 * Initializes the pattern matcher within an existing VIATRA Query engine. 283 * Initializes the pattern matcher within an existing VIATRA Query engine.
@@ -293,12 +293,12 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
293 293
294 /** 294 /**
295 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. 295 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
296 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 296 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
297 * @return matches represented as a Match object. 297 * @return matches represented as a Match object.
298 * 298 *
299 */ 299 */
300 public Collection<CoverageMetric.Match> getAllMatches(final Double pCoverage) { 300 public Collection<NoPotentialLinkToGroundStation.Match> getAllMatches(final Spacecraft pSpacecraft) {
301 return rawStreamAllMatches(new Object[]{pCoverage}).collect(Collectors.toSet()); 301 return rawStreamAllMatches(new Object[]{pSpacecraft}).collect(Collectors.toSet());
302 } 302 }
303 303
304 /** 304 /**
@@ -307,101 +307,101 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
307 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. 307 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
308 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. 308 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
309 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. 309 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
310 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 310 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
311 * @return a stream of matches represented as a Match object. 311 * @return a stream of matches represented as a Match object.
312 * 312 *
313 */ 313 */
314 public Stream<CoverageMetric.Match> streamAllMatches(final Double pCoverage) { 314 public Stream<NoPotentialLinkToGroundStation.Match> streamAllMatches(final Spacecraft pSpacecraft) {
315 return rawStreamAllMatches(new Object[]{pCoverage}); 315 return rawStreamAllMatches(new Object[]{pSpacecraft});
316 } 316 }
317 317
318 /** 318 /**
319 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. 319 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
320 * Neither determinism nor randomness of selection is guaranteed. 320 * Neither determinism nor randomness of selection is guaranteed.
321 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 321 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
322 * @return a match represented as a Match object, or null if no match is found. 322 * @return a match represented as a Match object, or null if no match is found.
323 * 323 *
324 */ 324 */
325 public Optional<CoverageMetric.Match> getOneArbitraryMatch(final Double pCoverage) { 325 public Optional<NoPotentialLinkToGroundStation.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) {
326 return rawGetOneArbitraryMatch(new Object[]{pCoverage}); 326 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft});
327 } 327 }
328 328
329 /** 329 /**
330 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, 330 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
331 * under any possible substitution of the unspecified parameters (if any). 331 * under any possible substitution of the unspecified parameters (if any).
332 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 332 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
333 * @return true if the input is a valid (partial) match of the pattern. 333 * @return true if the input is a valid (partial) match of the pattern.
334 * 334 *
335 */ 335 */
336 public boolean hasMatch(final Double pCoverage) { 336 public boolean hasMatch(final Spacecraft pSpacecraft) {
337 return rawHasMatch(new Object[]{pCoverage}); 337 return rawHasMatch(new Object[]{pSpacecraft});
338 } 338 }
339 339
340 /** 340 /**
341 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. 341 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
342 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 342 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
343 * @return the number of pattern matches found. 343 * @return the number of pattern matches found.
344 * 344 *
345 */ 345 */
346 public int countMatches(final Double pCoverage) { 346 public int countMatches(final Spacecraft pSpacecraft) {
347 return rawCountMatches(new Object[]{pCoverage}); 347 return rawCountMatches(new Object[]{pSpacecraft});
348 } 348 }
349 349
350 /** 350 /**
351 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. 351 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
352 * Neither determinism nor randomness of selection is guaranteed. 352 * Neither determinism nor randomness of selection is guaranteed.
353 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 353 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
354 * @param processor the action that will process the selected match. 354 * @param processor the action that will process the selected match.
355 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked 355 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
356 * 356 *
357 */ 357 */
358 public boolean forOneArbitraryMatch(final Double pCoverage, final Consumer<? super CoverageMetric.Match> processor) { 358 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final Consumer<? super NoPotentialLinkToGroundStation.Match> processor) {
359 return rawForOneArbitraryMatch(new Object[]{pCoverage}, processor); 359 return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, processor);
360 } 360 }
361 361
362 /** 362 /**
363 * Returns a new (partial) match. 363 * Returns a new (partial) match.
364 * This can be used e.g. to call the matcher with a partial match. 364 * This can be used e.g. to call the matcher with a partial match.
365 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. 365 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
366 * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. 366 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
367 * @return the (partial) match object. 367 * @return the (partial) match object.
368 * 368 *
369 */ 369 */
370 public CoverageMetric.Match newMatch(final Double pCoverage) { 370 public NoPotentialLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
371 return CoverageMetric.Match.newMatch(pCoverage); 371 return NoPotentialLinkToGroundStation.Match.newMatch(pSpacecraft);
372 } 372 }
373 373
374 /** 374 /**
375 * Retrieve the set of values that occur in matches for Coverage. 375 * Retrieve the set of values that occur in matches for Spacecraft.
376 * @return the Set of all values or empty set if there are no matches 376 * @return the Set of all values or empty set if there are no matches
377 * 377 *
378 */ 378 */
379 protected Stream<Double> rawStreamAllValuesOfCoverage(final Object[] parameters) { 379 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
380 return rawStreamAllValues(POSITION_COVERAGE, parameters).map(Double.class::cast); 380 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
381 } 381 }
382 382
383 /** 383 /**
384 * Retrieve the set of values that occur in matches for Coverage. 384 * Retrieve the set of values that occur in matches for Spacecraft.
385 * @return the Set of all values or empty set if there are no matches 385 * @return the Set of all values or empty set if there are no matches
386 * 386 *
387 */ 387 */
388 public Set<Double> getAllValuesOfCoverage() { 388 public Set<Spacecraft> getAllValuesOfSpacecraft() {
389 return rawStreamAllValuesOfCoverage(emptyArray()).collect(Collectors.toSet()); 389 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
390 } 390 }
391 391
392 /** 392 /**
393 * Retrieve the set of values that occur in matches for Coverage. 393 * Retrieve the set of values that occur in matches for Spacecraft.
394 * @return the Set of all values or empty set if there are no matches 394 * @return the Set of all values or empty set if there are no matches
395 * 395 *
396 */ 396 */
397 public Stream<Double> streamAllValuesOfCoverage() { 397 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
398 return rawStreamAllValuesOfCoverage(emptyArray()); 398 return rawStreamAllValuesOfSpacecraft(emptyArray());
399 } 399 }
400 400
401 @Override 401 @Override
402 protected CoverageMetric.Match tupleToMatch(final Tuple t) { 402 protected NoPotentialLinkToGroundStation.Match tupleToMatch(final Tuple t) {
403 try { 403 try {
404 return CoverageMetric.Match.newMatch((Double) t.get(POSITION_COVERAGE)); 404 return NoPotentialLinkToGroundStation.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT));
405 } catch(ClassCastException e) { 405 } catch(ClassCastException e) {
406 LOGGER.error("Element(s) in tuple not properly typed!",e); 406 LOGGER.error("Element(s) in tuple not properly typed!",e);
407 return null; 407 return null;
@@ -409,9 +409,9 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
409 } 409 }
410 410
411 @Override 411 @Override
412 protected CoverageMetric.Match arrayToMatch(final Object[] match) { 412 protected NoPotentialLinkToGroundStation.Match arrayToMatch(final Object[] match) {
413 try { 413 try {
414 return CoverageMetric.Match.newMatch((Double) match[POSITION_COVERAGE]); 414 return NoPotentialLinkToGroundStation.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]);
415 } catch(ClassCastException e) { 415 } catch(ClassCastException e) {
416 LOGGER.error("Element(s) in array not properly typed!",e); 416 LOGGER.error("Element(s) in array not properly typed!",e);
417 return null; 417 return null;
@@ -419,9 +419,9 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
419 } 419 }
420 420
421 @Override 421 @Override
422 protected CoverageMetric.Match arrayToMatchMutable(final Object[] match) { 422 protected NoPotentialLinkToGroundStation.Match arrayToMatchMutable(final Object[] match) {
423 try { 423 try {
424 return CoverageMetric.Match.newMutableMatch((Double) match[POSITION_COVERAGE]); 424 return NoPotentialLinkToGroundStation.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]);
425 } catch(ClassCastException e) { 425 } catch(ClassCastException e) {
426 LOGGER.error("Element(s) in array not properly typed!",e); 426 LOGGER.error("Element(s) in array not properly typed!",e);
427 return null; 427 return null;
@@ -433,12 +433,12 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
433 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded 433 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
434 * 434 *
435 */ 435 */
436 public static IQuerySpecification<CoverageMetric.Matcher> querySpecification() { 436 public static IQuerySpecification<NoPotentialLinkToGroundStation.Matcher> querySpecification() {
437 return CoverageMetric.instance(); 437 return NoPotentialLinkToGroundStation.instance();
438 } 438 }
439 } 439 }
440 440
441 private CoverageMetric() { 441 private NoPotentialLinkToGroundStation() {
442 super(GeneratedPQuery.INSTANCE); 442 super(GeneratedPQuery.INSTANCE);
443 } 443 }
444 444
@@ -447,7 +447,7 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
447 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded 447 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
448 * 448 *
449 */ 449 */
450 public static CoverageMetric instance() { 450 public static NoPotentialLinkToGroundStation instance() {
451 try{ 451 try{
452 return LazyHolder.INSTANCE; 452 return LazyHolder.INSTANCE;
453 } catch (ExceptionInInitializerError err) { 453 } catch (ExceptionInInitializerError err) {
@@ -456,35 +456,35 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
456 } 456 }
457 457
458 @Override 458 @Override
459 protected CoverageMetric.Matcher instantiate(final ViatraQueryEngine engine) { 459 protected NoPotentialLinkToGroundStation.Matcher instantiate(final ViatraQueryEngine engine) {
460 return CoverageMetric.Matcher.on(engine); 460 return NoPotentialLinkToGroundStation.Matcher.on(engine);
461 } 461 }
462 462
463 @Override 463 @Override
464 public CoverageMetric.Matcher instantiate() { 464 public NoPotentialLinkToGroundStation.Matcher instantiate() {
465 return CoverageMetric.Matcher.create(); 465 return NoPotentialLinkToGroundStation.Matcher.create();
466 } 466 }
467 467
468 @Override 468 @Override
469 public CoverageMetric.Match newEmptyMatch() { 469 public NoPotentialLinkToGroundStation.Match newEmptyMatch() {
470 return CoverageMetric.Match.newEmptyMatch(); 470 return NoPotentialLinkToGroundStation.Match.newEmptyMatch();
471 } 471 }
472 472
473 @Override 473 @Override
474 public CoverageMetric.Match newMatch(final Object... parameters) { 474 public NoPotentialLinkToGroundStation.Match newMatch(final Object... parameters) {
475 return CoverageMetric.Match.newMatch((java.lang.Double) parameters[0]); 475 return NoPotentialLinkToGroundStation.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft) parameters[0]);
476 } 476 }
477 477
478 /** 478 /**
479 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric (visibility: PUBLIC, simpleName: CoverageMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created 479 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation (visibility: PUBLIC, simpleName: NoPotentialLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
480 * <b>not</b> at the class load time of the outer class, 480 * <b>not</b> at the class load time of the outer class,
481 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric (visibility: PUBLIC, simpleName: CoverageMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. 481 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation (visibility: PUBLIC, simpleName: NoPotentialLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
482 * 482 *
483 * <p> This workaround is required e.g. to support recursion. 483 * <p> This workaround is required e.g. to support recursion.
484 * 484 *
485 */ 485 */
486 private static class LazyHolder { 486 private static class LazyHolder {
487 private static final CoverageMetric INSTANCE = new CoverageMetric(); 487 private static final NoPotentialLinkToGroundStation INSTANCE = new NoPotentialLinkToGroundStation();
488 488
489 /** 489 /**
490 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. 490 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
@@ -502,11 +502,11 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
502 } 502 }
503 503
504 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { 504 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
505 private static final CoverageMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery(); 505 private static final NoPotentialLinkToGroundStation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
506 506
507 private final PParameter parameter_Coverage = new PParameter("Coverage", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); 507 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
508 508
509 private final List<PParameter> parameters = Arrays.asList(parameter_Coverage); 509 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
510 510
511 private GeneratedPQuery() { 511 private GeneratedPQuery() {
512 super(PVisibility.PUBLIC); 512 super(PVisibility.PUBLIC);
@@ -514,12 +514,12 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
514 514
515 @Override 515 @Override
516 public String getFullyQualifiedName() { 516 public String getFullyQualifiedName() {
517 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric"; 517 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation";
518 } 518 }
519 519
520 @Override 520 @Override
521 public List<String> getParameterNames() { 521 public List<String> getParameterNames() {
522 return Arrays.asList("Coverage"); 522 return Arrays.asList("Spacecraft");
523 } 523 }
524 524
525 @Override 525 @Override
@@ -533,19 +533,38 @@ public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<Cov
533 Set<PBody> bodies = new LinkedHashSet<>(); 533 Set<PBody> bodies = new LinkedHashSet<>();
534 { 534 {
535 PBody body = new PBody(this); 535 PBody body = new PBody(this);
536 PVariable var_Coverage = body.getOrCreateVariableByName("Coverage"); 536 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
537 PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); 537 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
538 PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); 538 PVariable var_GroundStation = body.getOrCreateVariableByName("GroundStation");
539 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Coverage), new JavaTransitiveInstancesKey(java.lang.Double.class)); 539 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
540 body.setSymbolicParameters(Arrays.<ExportedParameter>asList( 540 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
541 new ExportedParameter(body, var_Coverage, parameter_Coverage) 541 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
542 )); 542 ));
543 // Coverage == sum find missionCoverage(_, #_) 543 // ConstellationMission.groundStationNetwork(Mission, GroundStation)
544 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
544 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); 545 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
545 new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var___0_, var___1_), MissionCoverage.instance().getInternalQueryRepresentation(), var__virtual_0_, 1); 546 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "groundStationNetwork")));
546 new Equality(body, var_Coverage, var__virtual_0_); 547 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
548 new Equality(body, var__virtual_0_, var_GroundStation);
549 // ConstellationMission.spacecraft(Mission, Spacecraft)
550 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
551 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
552 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
553 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
554 new Equality(body, var__virtual_1_, var_Spacecraft);
555 // neg find indirectLinkAllowed(Spacecraft, GroundStation)
556 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_GroundStation), IndirectLinkAllowed.instance().getInternalQueryRepresentation());
547 bodies.add(body); 557 bodies.add(body);
548 } 558 }
559 {
560 PAnnotation annotation = new PAnnotation("Constraint");
561 annotation.addAttribute("severity", "error");
562 annotation.addAttribute("key", Arrays.asList(new Object[] {
563 new ParameterReference("Spacecraft")
564 }));
565 annotation.addAttribute("message", "Spacecraft has no potential communication path to the ground station.");
566 addAnnotation(annotation);
567 }
549 return bodies; 568 return bodies;
550 } 569 }
551 } 570 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java
index 39af9d5b..d75dea5f 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java
@@ -28,6 +28,8 @@ import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; 29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; 30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; 33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; 34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; 35import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
@@ -45,8 +47,8 @@ import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
45 * <code><pre> 47 * <code><pre>
46 * // At least two spacecraft must have the interferometry payload configured 48 * // At least two spacecraft must have the interferometry payload configured
47 * 49 *
48 * //{@literal @}Constraint(severity = "error", key = {Mission}, 50 * {@literal @}Constraint(severity = "error", key = {Mission},
49 * // message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.") 51 * message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
50 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) { 52 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
51 * InterferometryMission(Mission); 53 * InterferometryMission(Mission);
52 * neg find atLeastTwoInterferometryPayloads(Mission); 54 * neg find atLeastTwoInterferometryPayloads(Mission);
@@ -233,8 +235,8 @@ public final class NotEnoughInterferometryPayloads extends BaseGeneratedEMFQuery
233 * <code><pre> 235 * <code><pre>
234 * // At least two spacecraft must have the interferometry payload configured 236 * // At least two spacecraft must have the interferometry payload configured
235 * 237 *
236 * //{@literal @}Constraint(severity = "error", key = {Mission}, 238 * {@literal @}Constraint(severity = "error", key = {Mission},
237 * // message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.") 239 * message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
238 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) { 240 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
239 * InterferometryMission(Mission); 241 * InterferometryMission(Mission);
240 * neg find atLeastTwoInterferometryPayloads(Mission); 242 * neg find atLeastTwoInterferometryPayloads(Mission);
@@ -542,6 +544,15 @@ public final class NotEnoughInterferometryPayloads extends BaseGeneratedEMFQuery
542 new NegativePatternCall(body, Tuples.flatTupleOf(var_Mission), AtLeastTwoInterferometryPayloads.instance().getInternalQueryRepresentation()); 544 new NegativePatternCall(body, Tuples.flatTupleOf(var_Mission), AtLeastTwoInterferometryPayloads.instance().getInternalQueryRepresentation());
543 bodies.add(body); 545 bodies.add(body);
544 } 546 }
547 {
548 PAnnotation annotation = new PAnnotation("Constraint");
549 annotation.addAttribute("severity", "error");
550 annotation.addAttribute("key", Arrays.asList(new Object[] {
551 new ParameterReference("Mission")
552 }));
553 annotation.addAttribute("message", "Interferometry mission needs at least two spacecraft configured with the interferometry payload.");
554 addAnnotation(annotation);
555 }
545 return bodies; 556 return bodies;
546 } 557 }
547 } 558 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java
index b6601c28..c86761ce 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java
@@ -5,16 +5,16 @@ package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop; 7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna; 8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand; 9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain; 10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow; 11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation; 12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads; 14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink; 17import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink;
17import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric;
18import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow; 18import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow;
19import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium; 19import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; 20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
@@ -31,6 +31,7 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
31 * <li>communicationLinkDoesNotStartAtContainingElement</li> 31 * <li>communicationLinkDoesNotStartAtContainingElement</li>
32 * <li>notEnoughInterferometryPayloads</li> 32 * <li>notEnoughInterferometryPayloads</li>
33 * <li>noLinkToGroundStation</li> 33 * <li>noLinkToGroundStation</li>
34 * <li>noPotentialLinkToGroundStation</li>
34 * <li>communicationLoop</li> 35 * <li>communicationLoop</li>
35 * <li>incompatibleSourceAndTargetBand</li> 36 * <li>incompatibleSourceAndTargetBand</li>
36 * <li>incompatibleSourceAndTargetGain</li> 37 * <li>incompatibleSourceAndTargetGain</li>
@@ -39,9 +40,8 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
39 * <li>kaAntennaGainLow</li> 40 * <li>kaAntennaGainLow</li>
40 * <li>threeUCubeSatWithNonUhfCrossLink</li> 41 * <li>threeUCubeSatWithNonUhfCrossLink</li>
41 * <li>cubeSatWithKaAntenna</li> 42 * <li>cubeSatWithKaAntenna</li>
42 * <li>coverageMetric</li> 43 * <li>smallSat</li>
43 * <li>timeMetric</li> 44 * <li>spacecraftOfKind</li>
44 * <li>costMetric</li>
45 * </ul> 45 * </ul>
46 * 46 *
47 * @see IQueryGroup 47 * @see IQueryGroup
@@ -69,6 +69,7 @@ public final class SatelliteQueries extends BaseGeneratedPatternGroup {
69 querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance()); 69 querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance());
70 querySpecifications.add(NotEnoughInterferometryPayloads.instance()); 70 querySpecifications.add(NotEnoughInterferometryPayloads.instance());
71 querySpecifications.add(NoLinkToGroundStation.instance()); 71 querySpecifications.add(NoLinkToGroundStation.instance());
72 querySpecifications.add(NoPotentialLinkToGroundStation.instance());
72 querySpecifications.add(CommunicationLoop.instance()); 73 querySpecifications.add(CommunicationLoop.instance());
73 querySpecifications.add(IncompatibleSourceAndTargetBand.instance()); 74 querySpecifications.add(IncompatibleSourceAndTargetBand.instance());
74 querySpecifications.add(IncompatibleSourceAndTargetGain.instance()); 75 querySpecifications.add(IncompatibleSourceAndTargetGain.instance());
@@ -77,9 +78,8 @@ public final class SatelliteQueries extends BaseGeneratedPatternGroup {
77 querySpecifications.add(KaAntennaGainLow.instance()); 78 querySpecifications.add(KaAntennaGainLow.instance());
78 querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance()); 79 querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance());
79 querySpecifications.add(CubeSatWithKaAntenna.instance()); 80 querySpecifications.add(CubeSatWithKaAntenna.instance());
80 querySpecifications.add(CoverageMetric.instance()); 81 querySpecifications.add(SmallSat.instance());
81 querySpecifications.add(TimeMetric.instance()); 82 querySpecifications.add(SpacecraftOfKind.instance());
82 querySpecifications.add(CostMetric.instance());
83 } 83 }
84 84
85 public CommunicationLinkDoesNotStartAtContainingElement getCommunicationLinkDoesNotStartAtContainingElement() { 85 public CommunicationLinkDoesNotStartAtContainingElement getCommunicationLinkDoesNotStartAtContainingElement() {
@@ -106,6 +106,14 @@ public final class SatelliteQueries extends BaseGeneratedPatternGroup {
106 return NoLinkToGroundStation.Matcher.on(engine); 106 return NoLinkToGroundStation.Matcher.on(engine);
107 } 107 }
108 108
109 public NoPotentialLinkToGroundStation getNoPotentialLinkToGroundStation() {
110 return NoPotentialLinkToGroundStation.instance();
111 }
112
113 public NoPotentialLinkToGroundStation.Matcher getNoPotentialLinkToGroundStation(final ViatraQueryEngine engine) {
114 return NoPotentialLinkToGroundStation.Matcher.on(engine);
115 }
116
109 public CommunicationLoop getCommunicationLoop() { 117 public CommunicationLoop getCommunicationLoop() {
110 return CommunicationLoop.instance(); 118 return CommunicationLoop.instance();
111 } 119 }
@@ -170,27 +178,19 @@ public final class SatelliteQueries extends BaseGeneratedPatternGroup {
170 return CubeSatWithKaAntenna.Matcher.on(engine); 178 return CubeSatWithKaAntenna.Matcher.on(engine);
171 } 179 }
172 180
173 public CoverageMetric getCoverageMetric() { 181 public SmallSat getSmallSat() {
174 return CoverageMetric.instance(); 182 return SmallSat.instance();
175 }
176
177 public CoverageMetric.Matcher getCoverageMetric(final ViatraQueryEngine engine) {
178 return CoverageMetric.Matcher.on(engine);
179 }
180
181 public TimeMetric getTimeMetric() {
182 return TimeMetric.instance();
183 } 183 }
184 184
185 public TimeMetric.Matcher getTimeMetric(final ViatraQueryEngine engine) { 185 public SmallSat.Matcher getSmallSat(final ViatraQueryEngine engine) {
186 return TimeMetric.Matcher.on(engine); 186 return SmallSat.Matcher.on(engine);
187 } 187 }
188 188
189 public CostMetric getCostMetric() { 189 public SpacecraftOfKind getSpacecraftOfKind() {
190 return CostMetric.instance(); 190 return SpacecraftOfKind.instance();
191 } 191 }
192 192
193 public CostMetric.Matcher getCostMetric(final ViatraQueryEngine engine) { 193 public SpacecraftOfKind.Matcher getSpacecraftOfKind(final ViatraQueryEngine engine) {
194 return CostMetric.Matcher.on(engine); 194 return SpacecraftOfKind.Matcher.on(engine);
195 } 195 }
196} 196}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CostMetric.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java
index 474719b2..7bc497ab 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CostMetric.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java
@@ -3,7 +3,6 @@
3 */ 3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; 4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost;
7import java.util.Arrays; 6import java.util.Arrays;
8import java.util.Collection; 7import java.util.Collection;
9import java.util.LinkedHashSet; 8import java.util.LinkedHashSet;
@@ -15,6 +14,7 @@ import java.util.function.Consumer;
15import java.util.stream.Collectors; 14import java.util.stream.Collectors;
16import java.util.stream.Stream; 15import java.util.stream.Stream;
17import org.apache.log4j.Logger; 16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch; 18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification; 19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; 20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
@@ -22,15 +22,12 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; 22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; 23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; 24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; 25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; 27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; 28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; 29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; 30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
34import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; 32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; 33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
@@ -43,10 +40,8 @@ import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43 * 40 *
44 * <p>Original source: 41 * <p>Original source:
45 * <code><pre> 42 * <code><pre>
46 * // Cost 43 * pattern smallSat(Sat : SmallSat) {
47 * 44 * SmallSat(Sat);
48 * pattern costMetric(Cost : java Double) {
49 * Cost == sum find missionCost(_, #_);
50 * } 45 * }
51 * </pre></code> 46 * </pre></code>
52 * 47 *
@@ -55,9 +50,9 @@ import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
55 * 50 *
56 */ 51 */
57@SuppressWarnings("all") 52@SuppressWarnings("all")
58public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMetric.Matcher> { 53public final class SmallSat extends BaseGeneratedEMFQuerySpecification<SmallSat.Matcher> {
59 /** 54 /**
60 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric pattern, 55 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat pattern,
61 * to be used in conjunction with {@link Matcher}. 56 * to be used in conjunction with {@link Matcher}.
62 * 57 *
63 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. 58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
@@ -69,69 +64,69 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
69 * 64 *
70 */ 65 */
71 public static abstract class Match extends BasePatternMatch { 66 public static abstract class Match extends BasePatternMatch {
72 private Double fCost; 67 private hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat fSat;
73 68
74 private static List<String> parameterNames = makeImmutableList("Cost"); 69 private static List<String> parameterNames = makeImmutableList("Sat");
75 70
76 private Match(final Double pCost) { 71 private Match(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
77 this.fCost = pCost; 72 this.fSat = pSat;
78 } 73 }
79 74
80 @Override 75 @Override
81 public Object get(final String parameterName) { 76 public Object get(final String parameterName) {
82 if ("Cost".equals(parameterName)) return this.fCost; 77 if ("Sat".equals(parameterName)) return this.fSat;
83 return null; 78 return null;
84 } 79 }
85 80
86 public Double getCost() { 81 public hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat getSat() {
87 return this.fCost; 82 return this.fSat;
88 } 83 }
89 84
90 @Override 85 @Override
91 public boolean set(final String parameterName, final Object newValue) { 86 public boolean set(final String parameterName, final Object newValue) {
92 if (!isMutable()) throw new java.lang.UnsupportedOperationException(); 87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
93 if ("Cost".equals(parameterName) ) { 88 if ("Sat".equals(parameterName) ) {
94 this.fCost = (Double) newValue; 89 this.fSat = (hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat) newValue;
95 return true; 90 return true;
96 } 91 }
97 return false; 92 return false;
98 } 93 }
99 94
100 public void setCost(final Double pCost) { 95 public void setSat(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
101 if (!isMutable()) throw new java.lang.UnsupportedOperationException(); 96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
102 this.fCost = pCost; 97 this.fSat = pSat;
103 } 98 }
104 99
105 @Override 100 @Override
106 public String patternName() { 101 public String patternName() {
107 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric"; 102 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat";
108 } 103 }
109 104
110 @Override 105 @Override
111 public List<String> parameterNames() { 106 public List<String> parameterNames() {
112 return CostMetric.Match.parameterNames; 107 return SmallSat.Match.parameterNames;
113 } 108 }
114 109
115 @Override 110 @Override
116 public Object[] toArray() { 111 public Object[] toArray() {
117 return new Object[]{fCost}; 112 return new Object[]{fSat};
118 } 113 }
119 114
120 @Override 115 @Override
121 public CostMetric.Match toImmutable() { 116 public SmallSat.Match toImmutable() {
122 return isMutable() ? newMatch(fCost) : this; 117 return isMutable() ? newMatch(fSat) : this;
123 } 118 }
124 119
125 @Override 120 @Override
126 public String prettyPrint() { 121 public String prettyPrint() {
127 StringBuilder result = new StringBuilder(); 122 StringBuilder result = new StringBuilder();
128 result.append("\"Cost\"=" + prettyPrintValue(fCost)); 123 result.append("\"Sat\"=" + prettyPrintValue(fSat));
129 return result.toString(); 124 return result.toString();
130 } 125 }
131 126
132 @Override 127 @Override
133 public int hashCode() { 128 public int hashCode() {
134 return Objects.hash(fCost); 129 return Objects.hash(fSat);
135 } 130 }
136 131
137 @Override 132 @Override
@@ -141,9 +136,9 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
141 if (obj == null) { 136 if (obj == null) {
142 return false; 137 return false;
143 } 138 }
144 if ((obj instanceof CostMetric.Match)) { 139 if ((obj instanceof SmallSat.Match)) {
145 CostMetric.Match other = (CostMetric.Match) obj; 140 SmallSat.Match other = (SmallSat.Match) obj;
146 return Objects.equals(fCost, other.fCost); 141 return Objects.equals(fSat, other.fSat);
147 } else { 142 } else {
148 // this should be infrequent 143 // this should be infrequent
149 if (!(obj instanceof IPatternMatch)) { 144 if (!(obj instanceof IPatternMatch)) {
@@ -155,8 +150,8 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
155 } 150 }
156 151
157 @Override 152 @Override
158 public CostMetric specification() { 153 public SmallSat specification() {
159 return CostMetric.instance(); 154 return SmallSat.instance();
160 } 155 }
161 156
162 /** 157 /**
@@ -166,7 +161,7 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
166 * @return the empty match. 161 * @return the empty match.
167 * 162 *
168 */ 163 */
169 public static CostMetric.Match newEmptyMatch() { 164 public static SmallSat.Match newEmptyMatch() {
170 return new Mutable(null); 165 return new Mutable(null);
171 } 166 }
172 167
@@ -174,29 +169,29 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
174 * Returns a mutable (partial) match. 169 * Returns a mutable (partial) match.
175 * Fields of the mutable match can be filled to create a partial match, usable as matcher input. 170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
176 * 171 *
177 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 172 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
178 * @return the new, mutable (partial) match object. 173 * @return the new, mutable (partial) match object.
179 * 174 *
180 */ 175 */
181 public static CostMetric.Match newMutableMatch(final Double pCost) { 176 public static SmallSat.Match newMutableMatch(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
182 return new Mutable(pCost); 177 return new Mutable(pSat);
183 } 178 }
184 179
185 /** 180 /**
186 * Returns a new (partial) match. 181 * Returns a new (partial) match.
187 * This can be used e.g. to call the matcher with a partial match. 182 * This can be used e.g. to call the matcher with a partial match.
188 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. 183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
189 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 184 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
190 * @return the (partial) match object. 185 * @return the (partial) match object.
191 * 186 *
192 */ 187 */
193 public static CostMetric.Match newMatch(final Double pCost) { 188 public static SmallSat.Match newMatch(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
194 return new Immutable(pCost); 189 return new Immutable(pSat);
195 } 190 }
196 191
197 private static final class Mutable extends CostMetric.Match { 192 private static final class Mutable extends SmallSat.Match {
198 Mutable(final Double pCost) { 193 Mutable(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
199 super(pCost); 194 super(pSat);
200 } 195 }
201 196
202 @Override 197 @Override
@@ -205,9 +200,9 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
205 } 200 }
206 } 201 }
207 202
208 private static final class Immutable extends CostMetric.Match { 203 private static final class Immutable extends SmallSat.Match {
209 Immutable(final Double pCost) { 204 Immutable(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
210 super(pCost); 205 super(pSat);
211 } 206 }
212 207
213 @Override 208 @Override
@@ -218,7 +213,7 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
218 } 213 }
219 214
220 /** 215 /**
221 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric pattern, 216 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat pattern,
222 * providing pattern-specific query methods. 217 * providing pattern-specific query methods.
223 * 218 *
224 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, 219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
@@ -228,18 +223,16 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
228 * 223 *
229 * <p>Original source: 224 * <p>Original source:
230 * <code><pre> 225 * <code><pre>
231 * // Cost 226 * pattern smallSat(Sat : SmallSat) {
232 * 227 * SmallSat(Sat);
233 * pattern costMetric(Cost : java Double) {
234 * Cost == sum find missionCost(_, #_);
235 * } 228 * }
236 * </pre></code> 229 * </pre></code>
237 * 230 *
238 * @see Match 231 * @see Match
239 * @see CostMetric 232 * @see SmallSat
240 * 233 *
241 */ 234 */
242 public static class Matcher extends BaseMatcher<CostMetric.Match> { 235 public static class Matcher extends BaseMatcher<SmallSat.Match> {
243 /** 236 /**
244 * Initializes the pattern matcher within an existing VIATRA Query engine. 237 * Initializes the pattern matcher within an existing VIATRA Query engine.
245 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. 238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
@@ -248,7 +241,7 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
248 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation 241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
249 * 242 *
250 */ 243 */
251 public static CostMetric.Matcher on(final ViatraQueryEngine engine) { 244 public static SmallSat.Matcher on(final ViatraQueryEngine engine) {
252 // check if matcher already exists 245 // check if matcher already exists
253 Matcher matcher = engine.getExistingMatcher(querySpecification()); 246 Matcher matcher = engine.getExistingMatcher(querySpecification());
254 if (matcher == null) { 247 if (matcher == null) {
@@ -263,13 +256,13 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
263 * @noreference This method is for internal matcher initialization by the framework, do not call it manually. 256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
264 * 257 *
265 */ 258 */
266 public static CostMetric.Matcher create() { 259 public static SmallSat.Matcher create() {
267 return new Matcher(); 260 return new Matcher();
268 } 261 }
269 262
270 private static final int POSITION_COST = 0; 263 private static final int POSITION_SAT = 0;
271 264
272 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CostMetric.Matcher.class); 265 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SmallSat.Matcher.class);
273 266
274 /** 267 /**
275 * Initializes the pattern matcher within an existing VIATRA Query engine. 268 * Initializes the pattern matcher within an existing VIATRA Query engine.
@@ -285,12 +278,12 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
285 278
286 /** 279 /**
287 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. 280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
288 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 281 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
289 * @return matches represented as a Match object. 282 * @return matches represented as a Match object.
290 * 283 *
291 */ 284 */
292 public Collection<CostMetric.Match> getAllMatches(final Double pCost) { 285 public Collection<SmallSat.Match> getAllMatches(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
293 return rawStreamAllMatches(new Object[]{pCost}).collect(Collectors.toSet()); 286 return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet());
294 } 287 }
295 288
296 /** 289 /**
@@ -299,101 +292,101 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
299 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. 292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
300 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. 293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
301 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. 294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
302 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 295 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
303 * @return a stream of matches represented as a Match object. 296 * @return a stream of matches represented as a Match object.
304 * 297 *
305 */ 298 */
306 public Stream<CostMetric.Match> streamAllMatches(final Double pCost) { 299 public Stream<SmallSat.Match> streamAllMatches(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
307 return rawStreamAllMatches(new Object[]{pCost}); 300 return rawStreamAllMatches(new Object[]{pSat});
308 } 301 }
309 302
310 /** 303 /**
311 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. 304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
312 * Neither determinism nor randomness of selection is guaranteed. 305 * Neither determinism nor randomness of selection is guaranteed.
313 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 306 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
314 * @return a match represented as a Match object, or null if no match is found. 307 * @return a match represented as a Match object, or null if no match is found.
315 * 308 *
316 */ 309 */
317 public Optional<CostMetric.Match> getOneArbitraryMatch(final Double pCost) { 310 public Optional<SmallSat.Match> getOneArbitraryMatch(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
318 return rawGetOneArbitraryMatch(new Object[]{pCost}); 311 return rawGetOneArbitraryMatch(new Object[]{pSat});
319 } 312 }
320 313
321 /** 314 /**
322 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, 315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
323 * under any possible substitution of the unspecified parameters (if any). 316 * under any possible substitution of the unspecified parameters (if any).
324 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 317 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
325 * @return true if the input is a valid (partial) match of the pattern. 318 * @return true if the input is a valid (partial) match of the pattern.
326 * 319 *
327 */ 320 */
328 public boolean hasMatch(final Double pCost) { 321 public boolean hasMatch(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
329 return rawHasMatch(new Object[]{pCost}); 322 return rawHasMatch(new Object[]{pSat});
330 } 323 }
331 324
332 /** 325 /**
333 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. 326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
334 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 327 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
335 * @return the number of pattern matches found. 328 * @return the number of pattern matches found.
336 * 329 *
337 */ 330 */
338 public int countMatches(final Double pCost) { 331 public int countMatches(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
339 return rawCountMatches(new Object[]{pCost}); 332 return rawCountMatches(new Object[]{pSat});
340 } 333 }
341 334
342 /** 335 /**
343 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. 336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
344 * Neither determinism nor randomness of selection is guaranteed. 337 * Neither determinism nor randomness of selection is guaranteed.
345 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 338 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
346 * @param processor the action that will process the selected match. 339 * @param processor the action that will process the selected match.
347 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked 340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
348 * 341 *
349 */ 342 */
350 public boolean forOneArbitraryMatch(final Double pCost, final Consumer<? super CostMetric.Match> processor) { 343 public boolean forOneArbitraryMatch(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat, final Consumer<? super SmallSat.Match> processor) {
351 return rawForOneArbitraryMatch(new Object[]{pCost}, processor); 344 return rawForOneArbitraryMatch(new Object[]{pSat}, processor);
352 } 345 }
353 346
354 /** 347 /**
355 * Returns a new (partial) match. 348 * Returns a new (partial) match.
356 * This can be used e.g. to call the matcher with a partial match. 349 * This can be used e.g. to call the matcher with a partial match.
357 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. 350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
358 * @param pCost the fixed value of pattern parameter Cost, or null if not bound. 351 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
359 * @return the (partial) match object. 352 * @return the (partial) match object.
360 * 353 *
361 */ 354 */
362 public CostMetric.Match newMatch(final Double pCost) { 355 public SmallSat.Match newMatch(final hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat pSat) {
363 return CostMetric.Match.newMatch(pCost); 356 return SmallSat.Match.newMatch(pSat);
364 } 357 }
365 358
366 /** 359 /**
367 * Retrieve the set of values that occur in matches for Cost. 360 * Retrieve the set of values that occur in matches for Sat.
368 * @return the Set of all values or empty set if there are no matches 361 * @return the Set of all values or empty set if there are no matches
369 * 362 *
370 */ 363 */
371 protected Stream<Double> rawStreamAllValuesOfCost(final Object[] parameters) { 364 protected Stream<hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat> rawStreamAllValuesOfSat(final Object[] parameters) {
372 return rawStreamAllValues(POSITION_COST, parameters).map(Double.class::cast); 365 return rawStreamAllValues(POSITION_SAT, parameters).map(hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat.class::cast);
373 } 366 }
374 367
375 /** 368 /**
376 * Retrieve the set of values that occur in matches for Cost. 369 * Retrieve the set of values that occur in matches for Sat.
377 * @return the Set of all values or empty set if there are no matches 370 * @return the Set of all values or empty set if there are no matches
378 * 371 *
379 */ 372 */
380 public Set<Double> getAllValuesOfCost() { 373 public Set<hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat> getAllValuesOfSat() {
381 return rawStreamAllValuesOfCost(emptyArray()).collect(Collectors.toSet()); 374 return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet());
382 } 375 }
383 376
384 /** 377 /**
385 * Retrieve the set of values that occur in matches for Cost. 378 * Retrieve the set of values that occur in matches for Sat.
386 * @return the Set of all values or empty set if there are no matches 379 * @return the Set of all values or empty set if there are no matches
387 * 380 *
388 */ 381 */
389 public Stream<Double> streamAllValuesOfCost() { 382 public Stream<hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat> streamAllValuesOfSat() {
390 return rawStreamAllValuesOfCost(emptyArray()); 383 return rawStreamAllValuesOfSat(emptyArray());
391 } 384 }
392 385
393 @Override 386 @Override
394 protected CostMetric.Match tupleToMatch(final Tuple t) { 387 protected SmallSat.Match tupleToMatch(final Tuple t) {
395 try { 388 try {
396 return CostMetric.Match.newMatch((Double) t.get(POSITION_COST)); 389 return SmallSat.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat) t.get(POSITION_SAT));
397 } catch(ClassCastException e) { 390 } catch(ClassCastException e) {
398 LOGGER.error("Element(s) in tuple not properly typed!",e); 391 LOGGER.error("Element(s) in tuple not properly typed!",e);
399 return null; 392 return null;
@@ -401,9 +394,9 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
401 } 394 }
402 395
403 @Override 396 @Override
404 protected CostMetric.Match arrayToMatch(final Object[] match) { 397 protected SmallSat.Match arrayToMatch(final Object[] match) {
405 try { 398 try {
406 return CostMetric.Match.newMatch((Double) match[POSITION_COST]); 399 return SmallSat.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat) match[POSITION_SAT]);
407 } catch(ClassCastException e) { 400 } catch(ClassCastException e) {
408 LOGGER.error("Element(s) in array not properly typed!",e); 401 LOGGER.error("Element(s) in array not properly typed!",e);
409 return null; 402 return null;
@@ -411,9 +404,9 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
411 } 404 }
412 405
413 @Override 406 @Override
414 protected CostMetric.Match arrayToMatchMutable(final Object[] match) { 407 protected SmallSat.Match arrayToMatchMutable(final Object[] match) {
415 try { 408 try {
416 return CostMetric.Match.newMutableMatch((Double) match[POSITION_COST]); 409 return SmallSat.Match.newMutableMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat) match[POSITION_SAT]);
417 } catch(ClassCastException e) { 410 } catch(ClassCastException e) {
418 LOGGER.error("Element(s) in array not properly typed!",e); 411 LOGGER.error("Element(s) in array not properly typed!",e);
419 return null; 412 return null;
@@ -425,12 +418,12 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
425 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded 418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
426 * 419 *
427 */ 420 */
428 public static IQuerySpecification<CostMetric.Matcher> querySpecification() { 421 public static IQuerySpecification<SmallSat.Matcher> querySpecification() {
429 return CostMetric.instance(); 422 return SmallSat.instance();
430 } 423 }
431 } 424 }
432 425
433 private CostMetric() { 426 private SmallSat() {
434 super(GeneratedPQuery.INSTANCE); 427 super(GeneratedPQuery.INSTANCE);
435 } 428 }
436 429
@@ -439,7 +432,7 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
439 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded 432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
440 * 433 *
441 */ 434 */
442 public static CostMetric instance() { 435 public static SmallSat instance() {
443 try{ 436 try{
444 return LazyHolder.INSTANCE; 437 return LazyHolder.INSTANCE;
445 } catch (ExceptionInInitializerError err) { 438 } catch (ExceptionInInitializerError err) {
@@ -448,35 +441,35 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
448 } 441 }
449 442
450 @Override 443 @Override
451 protected CostMetric.Matcher instantiate(final ViatraQueryEngine engine) { 444 protected SmallSat.Matcher instantiate(final ViatraQueryEngine engine) {
452 return CostMetric.Matcher.on(engine); 445 return SmallSat.Matcher.on(engine);
453 } 446 }
454 447
455 @Override 448 @Override
456 public CostMetric.Matcher instantiate() { 449 public SmallSat.Matcher instantiate() {
457 return CostMetric.Matcher.create(); 450 return SmallSat.Matcher.create();
458 } 451 }
459 452
460 @Override 453 @Override
461 public CostMetric.Match newEmptyMatch() { 454 public SmallSat.Match newEmptyMatch() {
462 return CostMetric.Match.newEmptyMatch(); 455 return SmallSat.Match.newEmptyMatch();
463 } 456 }
464 457
465 @Override 458 @Override
466 public CostMetric.Match newMatch(final Object... parameters) { 459 public SmallSat.Match newMatch(final Object... parameters) {
467 return CostMetric.Match.newMatch((java.lang.Double) parameters[0]); 460 return SmallSat.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat) parameters[0]);
468 } 461 }
469 462
470 /** 463 /**
471 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric (visibility: PUBLIC, simpleName: CostMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created 464 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
472 * <b>not</b> at the class load time of the outer class, 465 * <b>not</b> at the class load time of the outer class,
473 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric (visibility: PUBLIC, simpleName: CostMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. 466 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
474 * 467 *
475 * <p> This workaround is required e.g. to support recursion. 468 * <p> This workaround is required e.g. to support recursion.
476 * 469 *
477 */ 470 */
478 private static class LazyHolder { 471 private static class LazyHolder {
479 private static final CostMetric INSTANCE = new CostMetric(); 472 private static final SmallSat INSTANCE = new SmallSat();
480 473
481 /** 474 /**
482 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. 475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
@@ -494,11 +487,11 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
494 } 487 }
495 488
496 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { 489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
497 private static final CostMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery(); 490 private static final SmallSat.GeneratedPQuery INSTANCE = new GeneratedPQuery();
498 491
499 private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); 492 private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "SmallSat")), PParameterDirection.INOUT);
500 493
501 private final List<PParameter> parameters = Arrays.asList(parameter_Cost); 494 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
502 495
503 private GeneratedPQuery() { 496 private GeneratedPQuery() {
504 super(PVisibility.PUBLIC); 497 super(PVisibility.PUBLIC);
@@ -506,12 +499,12 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
506 499
507 @Override 500 @Override
508 public String getFullyQualifiedName() { 501 public String getFullyQualifiedName() {
509 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric"; 502 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat";
510 } 503 }
511 504
512 @Override 505 @Override
513 public List<String> getParameterNames() { 506 public List<String> getParameterNames() {
514 return Arrays.asList("Cost"); 507 return Arrays.asList("Sat");
515 } 508 }
516 509
517 @Override 510 @Override
@@ -525,17 +518,13 @@ public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMet
525 Set<PBody> bodies = new LinkedHashSet<>(); 518 Set<PBody> bodies = new LinkedHashSet<>();
526 { 519 {
527 PBody body = new PBody(this); 520 PBody body = new PBody(this);
528 PVariable var_Cost = body.getOrCreateVariableByName("Cost"); 521 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
529 PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); 522 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
530 PVariable var___1_ = body.getOrCreateVariableByName("_<1>");
531 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
532 body.setSymbolicParameters(Arrays.<ExportedParameter>asList( 523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
533 new ExportedParameter(body, var_Cost, parameter_Cost) 524 new ExportedParameter(body, var_Sat, parameter_Sat)
534 )); 525 ));
535 // Cost == sum find missionCost(_, #_) 526 // SmallSat(Sat)
536 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); 527 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
537 new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var___0_, var___1_), MissionCost.instance().getInternalQueryRepresentation(), var__virtual_0_, 1);
538 new Equality(body, var_Cost, var__virtual_0_);
539 bodies.add(body); 528 bodies.add(body);
540 } 529 }
541 return bodies; 530 return bodies;
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java
new file mode 100644
index 00000000..52602bb5
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java
@@ -0,0 +1,754 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind;
8import java.util.Arrays;
9import java.util.Collection;
10import java.util.LinkedHashSet;
11import java.util.List;
12import java.util.Objects;
13import java.util.Optional;
14import java.util.Set;
15import java.util.function.Consumer;
16import java.util.stream.Collectors;
17import java.util.stream.Stream;
18import org.apache.log4j.Logger;
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.emf.ecore.EDataType;
21import org.eclipse.viatra.query.runtime.api.IPatternMatch;
22import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
25import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
26import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
27import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
28import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
29import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
30import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
42import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
43import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
44
45/**
46 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
47 *
48 * <p>Original source:
49 * <code><pre>
50 * {@literal @}QueryBasedFeature(feature = "kind")
51 * pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) {
52 * CubeSat3U(Spacecraft);
53 * Kind == SpacecraftKind::CubeSat3U;
54 * } or {
55 * CubeSat6U(Spacecraft);
56 * Kind == SpacecraftKind::CubeSat6U;
57 * } or {
58 * SmallSat(Spacecraft);
59 * Kind == SpacecraftKind::SmallSat;
60 * }
61 * </pre></code>
62 *
63 * @see Matcher
64 * @see Match
65 *
66 */
67@SuppressWarnings("all")
68public final class SpacecraftOfKind extends BaseGeneratedEMFQuerySpecification<SpacecraftOfKind.Matcher> {
69 /**
70 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind pattern,
71 * to be used in conjunction with {@link Matcher}.
72 *
73 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
74 * Each instance is a (possibly partial) substitution of pattern parameters,
75 * usable to represent a match of the pattern in the result of a query,
76 * or to specify the bound (fixed) input parameters when issuing a query.
77 *
78 * @see Matcher
79 *
80 */
81 public static abstract class Match extends BasePatternMatch {
82 private Spacecraft fSpacecraft;
83
84 private SpacecraftKind fKind;
85
86 private static List<String> parameterNames = makeImmutableList("Spacecraft", "Kind");
87
88 private Match(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
89 this.fSpacecraft = pSpacecraft;
90 this.fKind = pKind;
91 }
92
93 @Override
94 public Object get(final String parameterName) {
95 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
96 if ("Kind".equals(parameterName)) return this.fKind;
97 return null;
98 }
99
100 public Spacecraft getSpacecraft() {
101 return this.fSpacecraft;
102 }
103
104 public SpacecraftKind getKind() {
105 return this.fKind;
106 }
107
108 @Override
109 public boolean set(final String parameterName, final Object newValue) {
110 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
111 if ("Spacecraft".equals(parameterName) ) {
112 this.fSpacecraft = (Spacecraft) newValue;
113 return true;
114 }
115 if ("Kind".equals(parameterName) ) {
116 this.fKind = (SpacecraftKind) newValue;
117 return true;
118 }
119 return false;
120 }
121
122 public void setSpacecraft(final Spacecraft pSpacecraft) {
123 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
124 this.fSpacecraft = pSpacecraft;
125 }
126
127 public void setKind(final SpacecraftKind pKind) {
128 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
129 this.fKind = pKind;
130 }
131
132 @Override
133 public String patternName() {
134 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind";
135 }
136
137 @Override
138 public List<String> parameterNames() {
139 return SpacecraftOfKind.Match.parameterNames;
140 }
141
142 @Override
143 public Object[] toArray() {
144 return new Object[]{fSpacecraft, fKind};
145 }
146
147 @Override
148 public SpacecraftOfKind.Match toImmutable() {
149 return isMutable() ? newMatch(fSpacecraft, fKind) : this;
150 }
151
152 @Override
153 public String prettyPrint() {
154 StringBuilder result = new StringBuilder();
155 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft) + ", ");
156 result.append("\"Kind\"=" + prettyPrintValue(fKind));
157 return result.toString();
158 }
159
160 @Override
161 public int hashCode() {
162 return Objects.hash(fSpacecraft, fKind);
163 }
164
165 @Override
166 public boolean equals(final Object obj) {
167 if (this == obj)
168 return true;
169 if (obj == null) {
170 return false;
171 }
172 if ((obj instanceof SpacecraftOfKind.Match)) {
173 SpacecraftOfKind.Match other = (SpacecraftOfKind.Match) obj;
174 return Objects.equals(fSpacecraft, other.fSpacecraft) && Objects.equals(fKind, other.fKind);
175 } else {
176 // this should be infrequent
177 if (!(obj instanceof IPatternMatch)) {
178 return false;
179 }
180 IPatternMatch otherSig = (IPatternMatch) obj;
181 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
182 }
183 }
184
185 @Override
186 public SpacecraftOfKind specification() {
187 return SpacecraftOfKind.instance();
188 }
189
190 /**
191 * Returns an empty, mutable match.
192 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
193 *
194 * @return the empty match.
195 *
196 */
197 public static SpacecraftOfKind.Match newEmptyMatch() {
198 return new Mutable(null, null);
199 }
200
201 /**
202 * Returns a mutable (partial) match.
203 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
204 *
205 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
206 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
207 * @return the new, mutable (partial) match object.
208 *
209 */
210 public static SpacecraftOfKind.Match newMutableMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
211 return new Mutable(pSpacecraft, pKind);
212 }
213
214 /**
215 * Returns a new (partial) match.
216 * This can be used e.g. to call the matcher with a partial match.
217 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
218 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
219 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
220 * @return the (partial) match object.
221 *
222 */
223 public static SpacecraftOfKind.Match newMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
224 return new Immutable(pSpacecraft, pKind);
225 }
226
227 private static final class Mutable extends SpacecraftOfKind.Match {
228 Mutable(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
229 super(pSpacecraft, pKind);
230 }
231
232 @Override
233 public boolean isMutable() {
234 return true;
235 }
236 }
237
238 private static final class Immutable extends SpacecraftOfKind.Match {
239 Immutable(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
240 super(pSpacecraft, pKind);
241 }
242
243 @Override
244 public boolean isMutable() {
245 return false;
246 }
247 }
248 }
249
250 /**
251 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind pattern,
252 * providing pattern-specific query methods.
253 *
254 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
255 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
256 *
257 * <p>Matches of the pattern will be represented as {@link Match}.
258 *
259 * <p>Original source:
260 * <code><pre>
261 * {@literal @}QueryBasedFeature(feature = "kind")
262 * pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) {
263 * CubeSat3U(Spacecraft);
264 * Kind == SpacecraftKind::CubeSat3U;
265 * } or {
266 * CubeSat6U(Spacecraft);
267 * Kind == SpacecraftKind::CubeSat6U;
268 * } or {
269 * SmallSat(Spacecraft);
270 * Kind == SpacecraftKind::SmallSat;
271 * }
272 * </pre></code>
273 *
274 * @see Match
275 * @see SpacecraftOfKind
276 *
277 */
278 public static class Matcher extends BaseMatcher<SpacecraftOfKind.Match> {
279 /**
280 * Initializes the pattern matcher within an existing VIATRA Query engine.
281 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
282 *
283 * @param engine the existing VIATRA Query engine in which this matcher will be created.
284 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
285 *
286 */
287 public static SpacecraftOfKind.Matcher on(final ViatraQueryEngine engine) {
288 // check if matcher already exists
289 Matcher matcher = engine.getExistingMatcher(querySpecification());
290 if (matcher == null) {
291 matcher = (Matcher)engine.getMatcher(querySpecification());
292 }
293 return matcher;
294 }
295
296 /**
297 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
298 * @return an initialized matcher
299 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
300 *
301 */
302 public static SpacecraftOfKind.Matcher create() {
303 return new Matcher();
304 }
305
306 private static final int POSITION_SPACECRAFT = 0;
307
308 private static final int POSITION_KIND = 1;
309
310 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SpacecraftOfKind.Matcher.class);
311
312 /**
313 * Initializes the pattern matcher within an existing VIATRA Query engine.
314 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
315 *
316 * @param engine the existing VIATRA Query engine in which this matcher will be created.
317 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
318 *
319 */
320 private Matcher() {
321 super(querySpecification());
322 }
323
324 /**
325 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
326 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
327 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
328 * @return matches represented as a Match object.
329 *
330 */
331 public Collection<SpacecraftOfKind.Match> getAllMatches(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
332 return rawStreamAllMatches(new Object[]{pSpacecraft, pKind}).collect(Collectors.toSet());
333 }
334
335 /**
336 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
337 * </p>
338 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
339 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
340 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
341 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
342 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
343 * @return a stream of matches represented as a Match object.
344 *
345 */
346 public Stream<SpacecraftOfKind.Match> streamAllMatches(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
347 return rawStreamAllMatches(new Object[]{pSpacecraft, pKind});
348 }
349
350 /**
351 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
352 * Neither determinism nor randomness of selection is guaranteed.
353 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
354 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
355 * @return a match represented as a Match object, or null if no match is found.
356 *
357 */
358 public Optional<SpacecraftOfKind.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
359 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft, pKind});
360 }
361
362 /**
363 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
364 * under any possible substitution of the unspecified parameters (if any).
365 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
366 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
367 * @return true if the input is a valid (partial) match of the pattern.
368 *
369 */
370 public boolean hasMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
371 return rawHasMatch(new Object[]{pSpacecraft, pKind});
372 }
373
374 /**
375 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
376 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
377 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
378 * @return the number of pattern matches found.
379 *
380 */
381 public int countMatches(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
382 return rawCountMatches(new Object[]{pSpacecraft, pKind});
383 }
384
385 /**
386 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
387 * Neither determinism nor randomness of selection is guaranteed.
388 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
389 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
390 * @param processor the action that will process the selected match.
391 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
392 *
393 */
394 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind, final Consumer<? super SpacecraftOfKind.Match> processor) {
395 return rawForOneArbitraryMatch(new Object[]{pSpacecraft, pKind}, processor);
396 }
397
398 /**
399 * Returns a new (partial) match.
400 * This can be used e.g. to call the matcher with a partial match.
401 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
402 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
403 * @param pKind the fixed value of pattern parameter Kind, or null if not bound.
404 * @return the (partial) match object.
405 *
406 */
407 public SpacecraftOfKind.Match newMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) {
408 return SpacecraftOfKind.Match.newMatch(pSpacecraft, pKind);
409 }
410
411 /**
412 * Retrieve the set of values that occur in matches for Spacecraft.
413 * @return the Set of all values or empty set if there are no matches
414 *
415 */
416 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
417 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
418 }
419
420 /**
421 * Retrieve the set of values that occur in matches for Spacecraft.
422 * @return the Set of all values or empty set if there are no matches
423 *
424 */
425 public Set<Spacecraft> getAllValuesOfSpacecraft() {
426 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
427 }
428
429 /**
430 * Retrieve the set of values that occur in matches for Spacecraft.
431 * @return the Set of all values or empty set if there are no matches
432 *
433 */
434 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
435 return rawStreamAllValuesOfSpacecraft(emptyArray());
436 }
437
438 /**
439 * Retrieve the set of values that occur in matches for Spacecraft.
440 * </p>
441 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
442 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
443 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
444 *
445 * @return the Stream of all values or empty set if there are no matches
446 *
447 */
448 public Stream<Spacecraft> streamAllValuesOfSpacecraft(final SpacecraftOfKind.Match partialMatch) {
449 return rawStreamAllValuesOfSpacecraft(partialMatch.toArray());
450 }
451
452 /**
453 * Retrieve the set of values that occur in matches for Spacecraft.
454 * </p>
455 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
456 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
457 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
458 *
459 * @return the Stream of all values or empty set if there are no matches
460 *
461 */
462 public Stream<Spacecraft> streamAllValuesOfSpacecraft(final SpacecraftKind pKind) {
463 return rawStreamAllValuesOfSpacecraft(new Object[]{null, pKind});
464 }
465
466 /**
467 * Retrieve the set of values that occur in matches for Spacecraft.
468 * @return the Set of all values or empty set if there are no matches
469 *
470 */
471 public Set<Spacecraft> getAllValuesOfSpacecraft(final SpacecraftOfKind.Match partialMatch) {
472 return rawStreamAllValuesOfSpacecraft(partialMatch.toArray()).collect(Collectors.toSet());
473 }
474
475 /**
476 * Retrieve the set of values that occur in matches for Spacecraft.
477 * @return the Set of all values or empty set if there are no matches
478 *
479 */
480 public Set<Spacecraft> getAllValuesOfSpacecraft(final SpacecraftKind pKind) {
481 return rawStreamAllValuesOfSpacecraft(new Object[]{null, pKind}).collect(Collectors.toSet());
482 }
483
484 /**
485 * Retrieve the set of values that occur in matches for Kind.
486 * @return the Set of all values or empty set if there are no matches
487 *
488 */
489 protected Stream<SpacecraftKind> rawStreamAllValuesOfKind(final Object[] parameters) {
490 return rawStreamAllValues(POSITION_KIND, parameters).map(SpacecraftKind.class::cast);
491 }
492
493 /**
494 * Retrieve the set of values that occur in matches for Kind.
495 * @return the Set of all values or empty set if there are no matches
496 *
497 */
498 public Set<SpacecraftKind> getAllValuesOfKind() {
499 return rawStreamAllValuesOfKind(emptyArray()).collect(Collectors.toSet());
500 }
501
502 /**
503 * Retrieve the set of values that occur in matches for Kind.
504 * @return the Set of all values or empty set if there are no matches
505 *
506 */
507 public Stream<SpacecraftKind> streamAllValuesOfKind() {
508 return rawStreamAllValuesOfKind(emptyArray());
509 }
510
511 /**
512 * Retrieve the set of values that occur in matches for Kind.
513 * </p>
514 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
515 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
516 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
517 *
518 * @return the Stream of all values or empty set if there are no matches
519 *
520 */
521 public Stream<SpacecraftKind> streamAllValuesOfKind(final SpacecraftOfKind.Match partialMatch) {
522 return rawStreamAllValuesOfKind(partialMatch.toArray());
523 }
524
525 /**
526 * Retrieve the set of values that occur in matches for Kind.
527 * </p>
528 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
529 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
530 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
531 *
532 * @return the Stream of all values or empty set if there are no matches
533 *
534 */
535 public Stream<SpacecraftKind> streamAllValuesOfKind(final Spacecraft pSpacecraft) {
536 return rawStreamAllValuesOfKind(new Object[]{pSpacecraft, null});
537 }
538
539 /**
540 * Retrieve the set of values that occur in matches for Kind.
541 * @return the Set of all values or empty set if there are no matches
542 *
543 */
544 public Set<SpacecraftKind> getAllValuesOfKind(final SpacecraftOfKind.Match partialMatch) {
545 return rawStreamAllValuesOfKind(partialMatch.toArray()).collect(Collectors.toSet());
546 }
547
548 /**
549 * Retrieve the set of values that occur in matches for Kind.
550 * @return the Set of all values or empty set if there are no matches
551 *
552 */
553 public Set<SpacecraftKind> getAllValuesOfKind(final Spacecraft pSpacecraft) {
554 return rawStreamAllValuesOfKind(new Object[]{pSpacecraft, null}).collect(Collectors.toSet());
555 }
556
557 @Override
558 protected SpacecraftOfKind.Match tupleToMatch(final Tuple t) {
559 try {
560 return SpacecraftOfKind.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT), (SpacecraftKind) t.get(POSITION_KIND));
561 } catch(ClassCastException e) {
562 LOGGER.error("Element(s) in tuple not properly typed!",e);
563 return null;
564 }
565 }
566
567 @Override
568 protected SpacecraftOfKind.Match arrayToMatch(final Object[] match) {
569 try {
570 return SpacecraftOfKind.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT], (SpacecraftKind) match[POSITION_KIND]);
571 } catch(ClassCastException e) {
572 LOGGER.error("Element(s) in array not properly typed!",e);
573 return null;
574 }
575 }
576
577 @Override
578 protected SpacecraftOfKind.Match arrayToMatchMutable(final Object[] match) {
579 try {
580 return SpacecraftOfKind.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT], (SpacecraftKind) match[POSITION_KIND]);
581 } catch(ClassCastException e) {
582 LOGGER.error("Element(s) in array not properly typed!",e);
583 return null;
584 }
585 }
586
587 /**
588 * @return the singleton instance of the query specification of this pattern
589 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
590 *
591 */
592 public static IQuerySpecification<SpacecraftOfKind.Matcher> querySpecification() {
593 return SpacecraftOfKind.instance();
594 }
595 }
596
597 private SpacecraftOfKind() {
598 super(GeneratedPQuery.INSTANCE);
599 }
600
601 /**
602 * @return the singleton instance of the query specification
603 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
604 *
605 */
606 public static SpacecraftOfKind instance() {
607 try{
608 return LazyHolder.INSTANCE;
609 } catch (ExceptionInInitializerError err) {
610 throw processInitializerError(err);
611 }
612 }
613
614 @Override
615 protected SpacecraftOfKind.Matcher instantiate(final ViatraQueryEngine engine) {
616 return SpacecraftOfKind.Matcher.on(engine);
617 }
618
619 @Override
620 public SpacecraftOfKind.Matcher instantiate() {
621 return SpacecraftOfKind.Matcher.create();
622 }
623
624 @Override
625 public SpacecraftOfKind.Match newEmptyMatch() {
626 return SpacecraftOfKind.Match.newEmptyMatch();
627 }
628
629 @Override
630 public SpacecraftOfKind.Match newMatch(final Object... parameters) {
631 return SpacecraftOfKind.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft) parameters[0], (hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind) parameters[1]);
632 }
633
634 /**
635 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
636 * <b>not</b> at the class load time of the outer class,
637 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
638 *
639 * <p> This workaround is required e.g. to support recursion.
640 *
641 */
642 private static class LazyHolder {
643 private static final SpacecraftOfKind INSTANCE = new SpacecraftOfKind();
644
645 /**
646 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
647 * This initialization order is required to support indirect recursion.
648 *
649 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
650 *
651 */
652 private static final Object STATIC_INITIALIZER = ensureInitialized();
653
654 public static Object ensureInitialized() {
655 INSTANCE.ensureInitializedInternal();
656 return null;
657 }
658 }
659
660 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
661 private static final SpacecraftOfKind.GeneratedPQuery INSTANCE = new GeneratedPQuery();
662
663 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
664
665 private final PParameter parameter_Kind = new PParameter("Kind", "hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "SpacecraftKind")), PParameterDirection.INOUT);
666
667 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Kind);
668
669 private GeneratedPQuery() {
670 super(PVisibility.PUBLIC);
671 }
672
673 @Override
674 public String getFullyQualifiedName() {
675 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind";
676 }
677
678 @Override
679 public List<String> getParameterNames() {
680 return Arrays.asList("Spacecraft","Kind");
681 }
682
683 @Override
684 public List<PParameter> getParameters() {
685 return parameters;
686 }
687
688 @Override
689 public Set<PBody> doGetContainedBodies() {
690 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
691 Set<PBody> bodies = new LinkedHashSet<>();
692 {
693 PBody body = new PBody(this);
694 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
695 PVariable var_Kind = body.getOrCreateVariableByName("Kind");
696 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
697 new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
698 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
699 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
700 new ExportedParameter(body, var_Kind, parameter_Kind)
701 ));
702 // CubeSat3U(Spacecraft)
703 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
704 // Kind == SpacecraftKind::CubeSat3U
705 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
706 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat3U").getInstance());
707 new Equality(body, var_Kind, var__virtual_0_);
708 bodies.add(body);
709 }
710 {
711 PBody body = new PBody(this);
712 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
713 PVariable var_Kind = body.getOrCreateVariableByName("Kind");
714 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
715 new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
716 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
717 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
718 new ExportedParameter(body, var_Kind, parameter_Kind)
719 ));
720 // CubeSat6U(Spacecraft)
721 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat6U")));
722 // Kind == SpacecraftKind::CubeSat6U
723 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
724 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat6U").getInstance());
725 new Equality(body, var_Kind, var__virtual_0_);
726 bodies.add(body);
727 }
728 {
729 PBody body = new PBody(this);
730 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
731 PVariable var_Kind = body.getOrCreateVariableByName("Kind");
732 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
733 new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
734 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
735 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
736 new ExportedParameter(body, var_Kind, parameter_Kind)
737 ));
738 // SmallSat(Spacecraft)
739 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
740 // Kind == SpacecraftKind::SmallSat
741 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
742 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "SmallSat").getInstance());
743 new Equality(body, var_Kind, var__virtual_0_);
744 bodies.add(body);
745 }
746 {
747 PAnnotation annotation = new PAnnotation("QueryBasedFeature");
748 annotation.addAttribute("feature", "kind");
749 addAnnotation(annotation);
750 }
751 return bodies;
752 }
753 }
754}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java
index 6500c9d3..6408033b 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java
@@ -3,7 +3,7 @@
3 */ 3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; 4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf; 7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork; 8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork;
9import java.util.Arrays; 9import java.util.Arrays;
@@ -18,7 +18,6 @@ import java.util.stream.Collectors;
18import java.util.stream.Stream; 18import java.util.stream.Stream;
19import org.apache.log4j.Logger; 19import org.apache.log4j.Logger;
20import org.eclipse.emf.ecore.EClass; 20import org.eclipse.emf.ecore.EClass;
21import org.eclipse.emf.ecore.EDataType;
22import org.eclipse.viatra.query.runtime.api.IPatternMatch; 21import org.eclipse.viatra.query.runtime.api.IPatternMatch;
23import org.eclipse.viatra.query.runtime.api.IQuerySpecification; 22import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; 23import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
@@ -27,7 +26,6 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificat
27import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; 26import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
28import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; 27import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
29import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; 28import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
30import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
31import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; 29import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
32import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 30import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
33import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; 31import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
@@ -37,7 +35,6 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterRe
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; 35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; 36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; 37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
40import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
41import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; 38import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
43import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; 40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
@@ -56,8 +53,7 @@ import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
56 * 53 *
57 * {@literal @}Constraint(severity = "error", key = {Sat}, 54 * {@literal @}Constraint(severity = "error", key = {Sat},
58 * message = "3U CubeSats can only cross-link using UHF.") 55 * message = "3U CubeSats can only cross-link using UHF.")
59 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : Spacecraft) { 56 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
60 * Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U);
61 * CommunicatingElement.commSubsystem(Sat, SourceComm); 57 * CommunicatingElement.commSubsystem(Sat, SourceComm);
62 * neg find commSubsystemBandUhf(SourceComm); 58 * neg find commSubsystemBandUhf(SourceComm);
63 * DirectedCommunicationLink.source(Link, SourceComm); 59 * DirectedCommunicationLink.source(Link, SourceComm);
@@ -86,11 +82,11 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
86 * 82 *
87 */ 83 */
88 public static abstract class Match extends BasePatternMatch { 84 public static abstract class Match extends BasePatternMatch {
89 private Spacecraft fSat; 85 private CubeSat3U fSat;
90 86
91 private static List<String> parameterNames = makeImmutableList("Sat"); 87 private static List<String> parameterNames = makeImmutableList("Sat");
92 88
93 private Match(final Spacecraft pSat) { 89 private Match(final CubeSat3U pSat) {
94 this.fSat = pSat; 90 this.fSat = pSat;
95 } 91 }
96 92
@@ -100,7 +96,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
100 return null; 96 return null;
101 } 97 }
102 98
103 public Spacecraft getSat() { 99 public CubeSat3U getSat() {
104 return this.fSat; 100 return this.fSat;
105 } 101 }
106 102
@@ -108,13 +104,13 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
108 public boolean set(final String parameterName, final Object newValue) { 104 public boolean set(final String parameterName, final Object newValue) {
109 if (!isMutable()) throw new java.lang.UnsupportedOperationException(); 105 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
110 if ("Sat".equals(parameterName) ) { 106 if ("Sat".equals(parameterName) ) {
111 this.fSat = (Spacecraft) newValue; 107 this.fSat = (CubeSat3U) newValue;
112 return true; 108 return true;
113 } 109 }
114 return false; 110 return false;
115 } 111 }
116 112
117 public void setSat(final Spacecraft pSat) { 113 public void setSat(final CubeSat3U pSat) {
118 if (!isMutable()) throw new java.lang.UnsupportedOperationException(); 114 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
119 this.fSat = pSat; 115 this.fSat = pSat;
120 } 116 }
@@ -195,7 +191,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
195 * @return the new, mutable (partial) match object. 191 * @return the new, mutable (partial) match object.
196 * 192 *
197 */ 193 */
198 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMutableMatch(final Spacecraft pSat) { 194 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMutableMatch(final CubeSat3U pSat) {
199 return new Mutable(pSat); 195 return new Mutable(pSat);
200 } 196 }
201 197
@@ -207,12 +203,12 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
207 * @return the (partial) match object. 203 * @return the (partial) match object.
208 * 204 *
209 */ 205 */
210 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Spacecraft pSat) { 206 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) {
211 return new Immutable(pSat); 207 return new Immutable(pSat);
212 } 208 }
213 209
214 private static final class Mutable extends ThreeUCubeSatWithNonUhfCrossLink.Match { 210 private static final class Mutable extends ThreeUCubeSatWithNonUhfCrossLink.Match {
215 Mutable(final Spacecraft pSat) { 211 Mutable(final CubeSat3U pSat) {
216 super(pSat); 212 super(pSat);
217 } 213 }
218 214
@@ -223,7 +219,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
223 } 219 }
224 220
225 private static final class Immutable extends ThreeUCubeSatWithNonUhfCrossLink.Match { 221 private static final class Immutable extends ThreeUCubeSatWithNonUhfCrossLink.Match {
226 Immutable(final Spacecraft pSat) { 222 Immutable(final CubeSat3U pSat) {
227 super(pSat); 223 super(pSat);
228 } 224 }
229 225
@@ -250,8 +246,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
250 * 246 *
251 * {@literal @}Constraint(severity = "error", key = {Sat}, 247 * {@literal @}Constraint(severity = "error", key = {Sat},
252 * message = "3U CubeSats can only cross-link using UHF.") 248 * message = "3U CubeSats can only cross-link using UHF.")
253 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : Spacecraft) { 249 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
254 * Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U);
255 * CommunicatingElement.commSubsystem(Sat, SourceComm); 250 * CommunicatingElement.commSubsystem(Sat, SourceComm);
256 * neg find commSubsystemBandUhf(SourceComm); 251 * neg find commSubsystemBandUhf(SourceComm);
257 * DirectedCommunicationLink.source(Link, SourceComm); 252 * DirectedCommunicationLink.source(Link, SourceComm);
@@ -315,7 +310,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
315 * @return matches represented as a Match object. 310 * @return matches represented as a Match object.
316 * 311 *
317 */ 312 */
318 public Collection<ThreeUCubeSatWithNonUhfCrossLink.Match> getAllMatches(final Spacecraft pSat) { 313 public Collection<ThreeUCubeSatWithNonUhfCrossLink.Match> getAllMatches(final CubeSat3U pSat) {
319 return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet()); 314 return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet());
320 } 315 }
321 316
@@ -329,7 +324,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
329 * @return a stream of matches represented as a Match object. 324 * @return a stream of matches represented as a Match object.
330 * 325 *
331 */ 326 */
332 public Stream<ThreeUCubeSatWithNonUhfCrossLink.Match> streamAllMatches(final Spacecraft pSat) { 327 public Stream<ThreeUCubeSatWithNonUhfCrossLink.Match> streamAllMatches(final CubeSat3U pSat) {
333 return rawStreamAllMatches(new Object[]{pSat}); 328 return rawStreamAllMatches(new Object[]{pSat});
334 } 329 }
335 330
@@ -340,7 +335,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
340 * @return a match represented as a Match object, or null if no match is found. 335 * @return a match represented as a Match object, or null if no match is found.
341 * 336 *
342 */ 337 */
343 public Optional<ThreeUCubeSatWithNonUhfCrossLink.Match> getOneArbitraryMatch(final Spacecraft pSat) { 338 public Optional<ThreeUCubeSatWithNonUhfCrossLink.Match> getOneArbitraryMatch(final CubeSat3U pSat) {
344 return rawGetOneArbitraryMatch(new Object[]{pSat}); 339 return rawGetOneArbitraryMatch(new Object[]{pSat});
345 } 340 }
346 341
@@ -351,7 +346,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
351 * @return true if the input is a valid (partial) match of the pattern. 346 * @return true if the input is a valid (partial) match of the pattern.
352 * 347 *
353 */ 348 */
354 public boolean hasMatch(final Spacecraft pSat) { 349 public boolean hasMatch(final CubeSat3U pSat) {
355 return rawHasMatch(new Object[]{pSat}); 350 return rawHasMatch(new Object[]{pSat});
356 } 351 }
357 352
@@ -361,7 +356,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
361 * @return the number of pattern matches found. 356 * @return the number of pattern matches found.
362 * 357 *
363 */ 358 */
364 public int countMatches(final Spacecraft pSat) { 359 public int countMatches(final CubeSat3U pSat) {
365 return rawCountMatches(new Object[]{pSat}); 360 return rawCountMatches(new Object[]{pSat});
366 } 361 }
367 362
@@ -373,7 +368,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
373 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked 368 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
374 * 369 *
375 */ 370 */
376 public boolean forOneArbitraryMatch(final Spacecraft pSat, final Consumer<? super ThreeUCubeSatWithNonUhfCrossLink.Match> processor) { 371 public boolean forOneArbitraryMatch(final CubeSat3U pSat, final Consumer<? super ThreeUCubeSatWithNonUhfCrossLink.Match> processor) {
377 return rawForOneArbitraryMatch(new Object[]{pSat}, processor); 372 return rawForOneArbitraryMatch(new Object[]{pSat}, processor);
378 } 373 }
379 374
@@ -385,7 +380,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
385 * @return the (partial) match object. 380 * @return the (partial) match object.
386 * 381 *
387 */ 382 */
388 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Spacecraft pSat) { 383 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) {
389 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch(pSat); 384 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch(pSat);
390 } 385 }
391 386
@@ -394,8 +389,8 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
394 * @return the Set of all values or empty set if there are no matches 389 * @return the Set of all values or empty set if there are no matches
395 * 390 *
396 */ 391 */
397 protected Stream<Spacecraft> rawStreamAllValuesOfSat(final Object[] parameters) { 392 protected Stream<CubeSat3U> rawStreamAllValuesOfSat(final Object[] parameters) {
398 return rawStreamAllValues(POSITION_SAT, parameters).map(Spacecraft.class::cast); 393 return rawStreamAllValues(POSITION_SAT, parameters).map(CubeSat3U.class::cast);
399 } 394 }
400 395
401 /** 396 /**
@@ -403,7 +398,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
403 * @return the Set of all values or empty set if there are no matches 398 * @return the Set of all values or empty set if there are no matches
404 * 399 *
405 */ 400 */
406 public Set<Spacecraft> getAllValuesOfSat() { 401 public Set<CubeSat3U> getAllValuesOfSat() {
407 return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet()); 402 return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet());
408 } 403 }
409 404
@@ -412,14 +407,14 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
412 * @return the Set of all values or empty set if there are no matches 407 * @return the Set of all values or empty set if there are no matches
413 * 408 *
414 */ 409 */
415 public Stream<Spacecraft> streamAllValuesOfSat() { 410 public Stream<CubeSat3U> streamAllValuesOfSat() {
416 return rawStreamAllValuesOfSat(emptyArray()); 411 return rawStreamAllValuesOfSat(emptyArray());
417 } 412 }
418 413
419 @Override 414 @Override
420 protected ThreeUCubeSatWithNonUhfCrossLink.Match tupleToMatch(final Tuple t) { 415 protected ThreeUCubeSatWithNonUhfCrossLink.Match tupleToMatch(final Tuple t) {
421 try { 416 try {
422 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((Spacecraft) t.get(POSITION_SAT)); 417 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) t.get(POSITION_SAT));
423 } catch(ClassCastException e) { 418 } catch(ClassCastException e) {
424 LOGGER.error("Element(s) in tuple not properly typed!",e); 419 LOGGER.error("Element(s) in tuple not properly typed!",e);
425 return null; 420 return null;
@@ -429,7 +424,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
429 @Override 424 @Override
430 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatch(final Object[] match) { 425 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatch(final Object[] match) {
431 try { 426 try {
432 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((Spacecraft) match[POSITION_SAT]); 427 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) match[POSITION_SAT]);
433 } catch(ClassCastException e) { 428 } catch(ClassCastException e) {
434 LOGGER.error("Element(s) in array not properly typed!",e); 429 LOGGER.error("Element(s) in array not properly typed!",e);
435 return null; 430 return null;
@@ -439,7 +434,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
439 @Override 434 @Override
440 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatchMutable(final Object[] match) { 435 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatchMutable(final Object[] match) {
441 try { 436 try {
442 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMutableMatch((Spacecraft) match[POSITION_SAT]); 437 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMutableMatch((CubeSat3U) match[POSITION_SAT]);
443 } catch(ClassCastException e) { 438 } catch(ClassCastException e) {
444 LOGGER.error("Element(s) in array not properly typed!",e); 439 LOGGER.error("Element(s) in array not properly typed!",e);
445 return null; 440 return null;
@@ -490,7 +485,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
490 485
491 @Override 486 @Override
492 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Object... parameters) { 487 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Object... parameters) {
493 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft) parameters[0]); 488 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U) parameters[0]);
494 } 489 }
495 490
496 /** 491 /**
@@ -522,7 +517,7 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
522 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { 517 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
523 private static final ThreeUCubeSatWithNonUhfCrossLink.GeneratedPQuery INSTANCE = new GeneratedPQuery(); 518 private static final ThreeUCubeSatWithNonUhfCrossLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
524 519
525 private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); 520 private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat3U")), PParameterDirection.INOUT);
526 521
527 private final List<PParameter> parameters = Arrays.asList(parameter_Sat); 522 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
528 523
@@ -556,44 +551,36 @@ public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuer
556 PVariable var_Link = body.getOrCreateVariableByName("Link"); 551 PVariable var_Link = body.getOrCreateVariableByName("Link");
557 PVariable var_TargetComm = body.getOrCreateVariableByName("TargetComm"); 552 PVariable var_TargetComm = body.getOrCreateVariableByName("TargetComm");
558 PVariable var_Target = body.getOrCreateVariableByName("Target"); 553 PVariable var_Target = body.getOrCreateVariableByName("Target");
559 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); 554 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
560 body.setSymbolicParameters(Arrays.<ExportedParameter>asList( 555 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
561 new ExportedParameter(body, var_Sat, parameter_Sat) 556 new ExportedParameter(body, var_Sat, parameter_Sat)
562 )); 557 ));
563 // Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U)
564 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
565 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat3U").getInstance());
566 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
567 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
568 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
569 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
570 new Equality(body, var__virtual_1_, var__virtual_0_);
571 // CommunicatingElement.commSubsystem(Sat, SourceComm) 558 // CommunicatingElement.commSubsystem(Sat, SourceComm)
572 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); 559 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
573 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); 560 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
574 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); 561 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
575 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); 562 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
576 new Equality(body, var__virtual_2_, var_SourceComm); 563 new Equality(body, var__virtual_0_, var_SourceComm);
577 // neg find commSubsystemBandUhf(SourceComm) 564 // neg find commSubsystemBandUhf(SourceComm)
578 new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceComm), CommSubsystemBandUhf.instance().getInternalQueryRepresentation()); 565 new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceComm), CommSubsystemBandUhf.instance().getInternalQueryRepresentation());
579 // DirectedCommunicationLink.source(Link, SourceComm) 566 // DirectedCommunicationLink.source(Link, SourceComm)
580 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); 567 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
581 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}"); 568 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
582 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source"))); 569 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
583 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); 570 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
584 new Equality(body, var__virtual_3_, var_SourceComm); 571 new Equality(body, var__virtual_1_, var_SourceComm);
585 // DirectedCommunicationLink.target(Link, TargetComm) 572 // DirectedCommunicationLink.target(Link, TargetComm)
586 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); 573 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
587 PVariable var__virtual_4_ = body.getOrCreateVariableByName(".virtual{4}"); 574 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
588 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_4_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target"))); 575 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target")));
589 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); 576 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
590 new Equality(body, var__virtual_4_, var_TargetComm); 577 new Equality(body, var__virtual_2_, var_TargetComm);
591 // CommunicatingElement.commSubsystem(Target, TargetComm) 578 // CommunicatingElement.commSubsystem(Target, TargetComm)
592 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); 579 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
593 PVariable var__virtual_5_ = body.getOrCreateVariableByName(".virtual{5}"); 580 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
594 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_5_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); 581 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
595 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_5_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); 582 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
596 new Equality(body, var__virtual_5_, var_TargetComm); 583 new Equality(body, var__virtual_3_, var_TargetComm);
597 // neg find groundStationNetwork(Target) 584 // neg find groundStationNetwork(Target)
598 new NegativePatternCall(body, Tuples.flatTupleOf(var_Target), GroundStationNetwork.instance().getInternalQueryRepresentation()); 585 new NegativePatternCall(body, Tuples.flatTupleOf(var_Target), GroundStationNetwork.instance().getInternalQueryRepresentation());
599 bodies.add(body); 586 bodies.add(body);
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java
deleted file mode 100644
index 45d4cc35..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java
+++ /dev/null
@@ -1,544 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.matchers.aggregators.sum;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
34import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
37import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
38import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
39import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
40
41/**
42 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
43 *
44 * <p>Original source:
45 * <code><pre>
46 * // Time
47 *
48 * pattern timeMetric(Time : java Double) {
49 * Time == sum find missionTime(_, #_);
50 * }
51 * </pre></code>
52 *
53 * @see Matcher
54 * @see Match
55 *
56 */
57@SuppressWarnings("all")
58public final class TimeMetric extends BaseGeneratedEMFQuerySpecification<TimeMetric.Matcher> {
59 /**
60 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric pattern,
61 * to be used in conjunction with {@link Matcher}.
62 *
63 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
64 * Each instance is a (possibly partial) substitution of pattern parameters,
65 * usable to represent a match of the pattern in the result of a query,
66 * or to specify the bound (fixed) input parameters when issuing a query.
67 *
68 * @see Matcher
69 *
70 */
71 public static abstract class Match extends BasePatternMatch {
72 private Double fTime;
73
74 private static List<String> parameterNames = makeImmutableList("Time");
75
76 private Match(final Double pTime) {
77 this.fTime = pTime;
78 }
79
80 @Override
81 public Object get(final String parameterName) {
82 if ("Time".equals(parameterName)) return this.fTime;
83 return null;
84 }
85
86 public Double getTime() {
87 return this.fTime;
88 }
89
90 @Override
91 public boolean set(final String parameterName, final Object newValue) {
92 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
93 if ("Time".equals(parameterName) ) {
94 this.fTime = (Double) newValue;
95 return true;
96 }
97 return false;
98 }
99
100 public void setTime(final Double pTime) {
101 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
102 this.fTime = pTime;
103 }
104
105 @Override
106 public String patternName() {
107 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric";
108 }
109
110 @Override
111 public List<String> parameterNames() {
112 return TimeMetric.Match.parameterNames;
113 }
114
115 @Override
116 public Object[] toArray() {
117 return new Object[]{fTime};
118 }
119
120 @Override
121 public TimeMetric.Match toImmutable() {
122 return isMutable() ? newMatch(fTime) : this;
123 }
124
125 @Override
126 public String prettyPrint() {
127 StringBuilder result = new StringBuilder();
128 result.append("\"Time\"=" + prettyPrintValue(fTime));
129 return result.toString();
130 }
131
132 @Override
133 public int hashCode() {
134 return Objects.hash(fTime);
135 }
136
137 @Override
138 public boolean equals(final Object obj) {
139 if (this == obj)
140 return true;
141 if (obj == null) {
142 return false;
143 }
144 if ((obj instanceof TimeMetric.Match)) {
145 TimeMetric.Match other = (TimeMetric.Match) obj;
146 return Objects.equals(fTime, other.fTime);
147 } else {
148 // this should be infrequent
149 if (!(obj instanceof IPatternMatch)) {
150 return false;
151 }
152 IPatternMatch otherSig = (IPatternMatch) obj;
153 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
154 }
155 }
156
157 @Override
158 public TimeMetric specification() {
159 return TimeMetric.instance();
160 }
161
162 /**
163 * Returns an empty, mutable match.
164 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
165 *
166 * @return the empty match.
167 *
168 */
169 public static TimeMetric.Match newEmptyMatch() {
170 return new Mutable(null);
171 }
172
173 /**
174 * Returns a mutable (partial) match.
175 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
176 *
177 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
178 * @return the new, mutable (partial) match object.
179 *
180 */
181 public static TimeMetric.Match newMutableMatch(final Double pTime) {
182 return new Mutable(pTime);
183 }
184
185 /**
186 * Returns a new (partial) match.
187 * This can be used e.g. to call the matcher with a partial match.
188 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
189 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
190 * @return the (partial) match object.
191 *
192 */
193 public static TimeMetric.Match newMatch(final Double pTime) {
194 return new Immutable(pTime);
195 }
196
197 private static final class Mutable extends TimeMetric.Match {
198 Mutable(final Double pTime) {
199 super(pTime);
200 }
201
202 @Override
203 public boolean isMutable() {
204 return true;
205 }
206 }
207
208 private static final class Immutable extends TimeMetric.Match {
209 Immutable(final Double pTime) {
210 super(pTime);
211 }
212
213 @Override
214 public boolean isMutable() {
215 return false;
216 }
217 }
218 }
219
220 /**
221 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric pattern,
222 * providing pattern-specific query methods.
223 *
224 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
225 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
226 *
227 * <p>Matches of the pattern will be represented as {@link Match}.
228 *
229 * <p>Original source:
230 * <code><pre>
231 * // Time
232 *
233 * pattern timeMetric(Time : java Double) {
234 * Time == sum find missionTime(_, #_);
235 * }
236 * </pre></code>
237 *
238 * @see Match
239 * @see TimeMetric
240 *
241 */
242 public static class Matcher extends BaseMatcher<TimeMetric.Match> {
243 /**
244 * Initializes the pattern matcher within an existing VIATRA Query engine.
245 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
246 *
247 * @param engine the existing VIATRA Query engine in which this matcher will be created.
248 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
249 *
250 */
251 public static TimeMetric.Matcher on(final ViatraQueryEngine engine) {
252 // check if matcher already exists
253 Matcher matcher = engine.getExistingMatcher(querySpecification());
254 if (matcher == null) {
255 matcher = (Matcher)engine.getMatcher(querySpecification());
256 }
257 return matcher;
258 }
259
260 /**
261 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
262 * @return an initialized matcher
263 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
264 *
265 */
266 public static TimeMetric.Matcher create() {
267 return new Matcher();
268 }
269
270 private static final int POSITION_TIME = 0;
271
272 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(TimeMetric.Matcher.class);
273
274 /**
275 * Initializes the pattern matcher within an existing VIATRA Query engine.
276 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
277 *
278 * @param engine the existing VIATRA Query engine in which this matcher will be created.
279 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
280 *
281 */
282 private Matcher() {
283 super(querySpecification());
284 }
285
286 /**
287 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
288 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
289 * @return matches represented as a Match object.
290 *
291 */
292 public Collection<TimeMetric.Match> getAllMatches(final Double pTime) {
293 return rawStreamAllMatches(new Object[]{pTime}).collect(Collectors.toSet());
294 }
295
296 /**
297 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
298 * </p>
299 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
300 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
301 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
302 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
303 * @return a stream of matches represented as a Match object.
304 *
305 */
306 public Stream<TimeMetric.Match> streamAllMatches(final Double pTime) {
307 return rawStreamAllMatches(new Object[]{pTime});
308 }
309
310 /**
311 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
312 * Neither determinism nor randomness of selection is guaranteed.
313 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
314 * @return a match represented as a Match object, or null if no match is found.
315 *
316 */
317 public Optional<TimeMetric.Match> getOneArbitraryMatch(final Double pTime) {
318 return rawGetOneArbitraryMatch(new Object[]{pTime});
319 }
320
321 /**
322 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
323 * under any possible substitution of the unspecified parameters (if any).
324 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
325 * @return true if the input is a valid (partial) match of the pattern.
326 *
327 */
328 public boolean hasMatch(final Double pTime) {
329 return rawHasMatch(new Object[]{pTime});
330 }
331
332 /**
333 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
334 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
335 * @return the number of pattern matches found.
336 *
337 */
338 public int countMatches(final Double pTime) {
339 return rawCountMatches(new Object[]{pTime});
340 }
341
342 /**
343 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
344 * Neither determinism nor randomness of selection is guaranteed.
345 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
346 * @param processor the action that will process the selected match.
347 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
348 *
349 */
350 public boolean forOneArbitraryMatch(final Double pTime, final Consumer<? super TimeMetric.Match> processor) {
351 return rawForOneArbitraryMatch(new Object[]{pTime}, processor);
352 }
353
354 /**
355 * Returns a new (partial) match.
356 * This can be used e.g. to call the matcher with a partial match.
357 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
358 * @param pTime the fixed value of pattern parameter Time, or null if not bound.
359 * @return the (partial) match object.
360 *
361 */
362 public TimeMetric.Match newMatch(final Double pTime) {
363 return TimeMetric.Match.newMatch(pTime);
364 }
365
366 /**
367 * Retrieve the set of values that occur in matches for Time.
368 * @return the Set of all values or empty set if there are no matches
369 *
370 */
371 protected Stream<Double> rawStreamAllValuesOfTime(final Object[] parameters) {
372 return rawStreamAllValues(POSITION_TIME, parameters).map(Double.class::cast);
373 }
374
375 /**
376 * Retrieve the set of values that occur in matches for Time.
377 * @return the Set of all values or empty set if there are no matches
378 *
379 */
380 public Set<Double> getAllValuesOfTime() {
381 return rawStreamAllValuesOfTime(emptyArray()).collect(Collectors.toSet());
382 }
383
384 /**
385 * Retrieve the set of values that occur in matches for Time.
386 * @return the Set of all values or empty set if there are no matches
387 *
388 */
389 public Stream<Double> streamAllValuesOfTime() {
390 return rawStreamAllValuesOfTime(emptyArray());
391 }
392
393 @Override
394 protected TimeMetric.Match tupleToMatch(final Tuple t) {
395 try {
396 return TimeMetric.Match.newMatch((Double) t.get(POSITION_TIME));
397 } catch(ClassCastException e) {
398 LOGGER.error("Element(s) in tuple not properly typed!",e);
399 return null;
400 }
401 }
402
403 @Override
404 protected TimeMetric.Match arrayToMatch(final Object[] match) {
405 try {
406 return TimeMetric.Match.newMatch((Double) match[POSITION_TIME]);
407 } catch(ClassCastException e) {
408 LOGGER.error("Element(s) in array not properly typed!",e);
409 return null;
410 }
411 }
412
413 @Override
414 protected TimeMetric.Match arrayToMatchMutable(final Object[] match) {
415 try {
416 return TimeMetric.Match.newMutableMatch((Double) match[POSITION_TIME]);
417 } catch(ClassCastException e) {
418 LOGGER.error("Element(s) in array not properly typed!",e);
419 return null;
420 }
421 }
422
423 /**
424 * @return the singleton instance of the query specification of this pattern
425 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
426 *
427 */
428 public static IQuerySpecification<TimeMetric.Matcher> querySpecification() {
429 return TimeMetric.instance();
430 }
431 }
432
433 private TimeMetric() {
434 super(GeneratedPQuery.INSTANCE);
435 }
436
437 /**
438 * @return the singleton instance of the query specification
439 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
440 *
441 */
442 public static TimeMetric instance() {
443 try{
444 return LazyHolder.INSTANCE;
445 } catch (ExceptionInInitializerError err) {
446 throw processInitializerError(err);
447 }
448 }
449
450 @Override
451 protected TimeMetric.Matcher instantiate(final ViatraQueryEngine engine) {
452 return TimeMetric.Matcher.on(engine);
453 }
454
455 @Override
456 public TimeMetric.Matcher instantiate() {
457 return TimeMetric.Matcher.create();
458 }
459
460 @Override
461 public TimeMetric.Match newEmptyMatch() {
462 return TimeMetric.Match.newEmptyMatch();
463 }
464
465 @Override
466 public TimeMetric.Match newMatch(final Object... parameters) {
467 return TimeMetric.Match.newMatch((java.lang.Double) parameters[0]);
468 }
469
470 /**
471 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric (visibility: PUBLIC, simpleName: TimeMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
472 * <b>not</b> at the class load time of the outer class,
473 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric (visibility: PUBLIC, simpleName: TimeMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
474 *
475 * <p> This workaround is required e.g. to support recursion.
476 *
477 */
478 private static class LazyHolder {
479 private static final TimeMetric INSTANCE = new TimeMetric();
480
481 /**
482 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
483 * This initialization order is required to support indirect recursion.
484 *
485 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
486 *
487 */
488 private static final Object STATIC_INITIALIZER = ensureInitialized();
489
490 public static Object ensureInitialized() {
491 INSTANCE.ensureInitializedInternal();
492 return null;
493 }
494 }
495
496 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
497 private static final TimeMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery();
498
499 private final PParameter parameter_Time = new PParameter("Time", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
500
501 private final List<PParameter> parameters = Arrays.asList(parameter_Time);
502
503 private GeneratedPQuery() {
504 super(PVisibility.PUBLIC);
505 }
506
507 @Override
508 public String getFullyQualifiedName() {
509 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric";
510 }
511
512 @Override
513 public List<String> getParameterNames() {
514 return Arrays.asList("Time");
515 }
516
517 @Override
518 public List<PParameter> getParameters() {
519 return parameters;
520 }
521
522 @Override
523 public Set<PBody> doGetContainedBodies() {
524 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
525 Set<PBody> bodies = new LinkedHashSet<>();
526 {
527 PBody body = new PBody(this);
528 PVariable var_Time = body.getOrCreateVariableByName("Time");
529 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
530 PVariable var___1_ = body.getOrCreateVariableByName("_<1>");
531 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Time), new JavaTransitiveInstancesKey(java.lang.Double.class));
532 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
533 new ExportedParameter(body, var_Time, parameter_Time)
534 ));
535 // Time == sum find missionTime(_, #_)
536 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
537 new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var___0_, var___1_), MissionTime.instance().getInternalQueryRepresentation(), var__virtual_0_, 1);
538 new Equality(body, var_Time, var__virtual_0_);
539 bodies.add(body);
540 }
541 return bodies;
542 }
543 }
544}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore
index f72ce8f1..4c8bcc9e 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore
@@ -31,3 +31,8 @@
31/.AdditionalCommSubsystemCost.java._trace 31/.AdditionalCommSubsystemCost.java._trace
32/.SpacecraftWithTwoCommSubsystems.java._trace 32/.SpacecraftWithTwoCommSubsystems.java._trace
33/.SpacecraftCost.java._trace 33/.SpacecraftCost.java._trace
34/.CrossLinkAllowed.java._trace
35/.MatchingAntenna.java._trace
36/.CubeSat3U.java._trace
37/.LinkAllowed.java._trace
38/.IndirectLinkAllowed.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java
deleted file mode 100644
index 61b1da52..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java
+++ /dev/null
@@ -1,173 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
27import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
28import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
29import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
30
31/**
32 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
33 *
34 * <p>Original source:
35 * <code><pre>
36 * private pattern additionalCommSubsystemCost(Spacecraft : Spacecraft, Cost : java Double) {
37 * find spacecraftWithTwoCommSubsystems(Spacecraft);
38 * Cost == 100000.0;
39 * } or {
40 * neg find spacecraftWithTwoCommSubsystems(Spacecraft);
41 * Cost == 0.0;
42 * }
43 * </pre></code>
44 *
45 * @see GenericPatternMatcher
46 * @see GenericPatternMatch
47 *
48 */
49@SuppressWarnings("all")
50public final class AdditionalCommSubsystemCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
51 private AdditionalCommSubsystemCost() {
52 super(GeneratedPQuery.INSTANCE);
53 }
54
55 /**
56 * @return the singleton instance of the query specification
57 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
58 *
59 */
60 public static AdditionalCommSubsystemCost instance() {
61 try{
62 return LazyHolder.INSTANCE;
63 } catch (ExceptionInInitializerError err) {
64 throw processInitializerError(err);
65 }
66 }
67
68 /**
69 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost (visibility: PUBLIC, simpleName: AdditionalCommSubsystemCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
70 * <b>not</b> at the class load time of the outer class,
71 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost (visibility: PUBLIC, simpleName: AdditionalCommSubsystemCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
72 *
73 * <p> This workaround is required e.g. to support recursion.
74 *
75 */
76 private static class LazyHolder {
77 private static final AdditionalCommSubsystemCost INSTANCE = new AdditionalCommSubsystemCost();
78
79 /**
80 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
81 * This initialization order is required to support indirect recursion.
82 *
83 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
84 *
85 */
86 private static final Object STATIC_INITIALIZER = ensureInitialized();
87
88 public static Object ensureInitialized() {
89 INSTANCE.ensureInitializedInternal();
90 return null;
91 }
92 }
93
94 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
95 private static final AdditionalCommSubsystemCost.GeneratedPQuery INSTANCE = new GeneratedPQuery();
96
97 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
98
99 private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
100
101 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Cost);
102
103 private GeneratedPQuery() {
104 super(PVisibility.PRIVATE);
105 }
106
107 @Override
108 public String getFullyQualifiedName() {
109 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.additionalCommSubsystemCost";
110 }
111
112 @Override
113 public List<String> getParameterNames() {
114 return Arrays.asList("Spacecraft","Cost");
115 }
116
117 @Override
118 public List<PParameter> getParameters() {
119 return parameters;
120 }
121
122 @Override
123 public Set<PBody> doGetContainedBodies() {
124 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
125 Set<PBody> bodies = new LinkedHashSet<>();
126 {
127 PBody body = new PBody(this);
128 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
129 PVariable var_Cost = body.getOrCreateVariableByName("Cost");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
131 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
132 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
133 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
134 new ExportedParameter(body, var_Cost, parameter_Cost)
135 ));
136 // find spacecraftWithTwoCommSubsystems(Spacecraft)
137 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft), SpacecraftWithTwoCommSubsystems.instance().getInternalQueryRepresentation());
138 // Cost == 100000.0
139 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
140 new ConstantValue(body, var__virtual_0_, 100000.0);
141 new Equality(body, var_Cost, var__virtual_0_);
142 bodies.add(body);
143 }
144 {
145 PBody body = new PBody(this);
146 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
147 PVariable var_Cost = body.getOrCreateVariableByName("Cost");
148 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
149 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
150 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
151 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
152 new ExportedParameter(body, var_Cost, parameter_Cost)
153 ));
154 // neg find spacecraftWithTwoCommSubsystems(Spacecraft)
155 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft), SpacecraftWithTwoCommSubsystems.instance().getInternalQueryRepresentation());
156 // Cost == 0.0
157 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
158 new ConstantValue(body, var__virtual_0_, 0.0);
159 new Equality(body, var_Cost, var__virtual_0_);
160 bodies.add(body);
161 }
162 return bodies;
163 }
164 }
165
166 private static double evaluateExpression_1_1() {
167 return 100000.0;
168 }
169
170 private static double evaluateExpression_2_1() {
171 return 0.0;
172 }
173}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/BasePrice.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/BasePrice.java
deleted file mode 100644
index c70f4c8b..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/BasePrice.java
+++ /dev/null
@@ -1,216 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EDataType;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
16import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
18import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
19import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
20import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
27import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
28import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
29import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
30
31/**
32 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
33 *
34 * <p>Original source:
35 * <code><pre>
36 * private pattern basePrice(Spacecraft : Spacecraft, BasePrice : java Double) {
37 * Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U);
38 * BasePrice == 250000.0;
39 * } or {
40 * Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat6U);
41 * BasePrice == 750000.0;
42 * } or {
43 * Spacecraft.kind(Spacecraft, SpacecraftKind::SmallSat);
44 * BasePrice == 3000000.0;
45 * }
46 * </pre></code>
47 *
48 * @see GenericPatternMatcher
49 * @see GenericPatternMatch
50 *
51 */
52@SuppressWarnings("all")
53public final class BasePrice extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
54 private BasePrice() {
55 super(GeneratedPQuery.INSTANCE);
56 }
57
58 /**
59 * @return the singleton instance of the query specification
60 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
61 *
62 */
63 public static BasePrice instance() {
64 try{
65 return LazyHolder.INSTANCE;
66 } catch (ExceptionInInitializerError err) {
67 throw processInitializerError(err);
68 }
69 }
70
71 /**
72 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice (visibility: PUBLIC, simpleName: BasePrice, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
73 * <b>not</b> at the class load time of the outer class,
74 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice (visibility: PUBLIC, simpleName: BasePrice, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
75 *
76 * <p> This workaround is required e.g. to support recursion.
77 *
78 */
79 private static class LazyHolder {
80 private static final BasePrice INSTANCE = new BasePrice();
81
82 /**
83 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
84 * This initialization order is required to support indirect recursion.
85 *
86 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
87 *
88 */
89 private static final Object STATIC_INITIALIZER = ensureInitialized();
90
91 public static Object ensureInitialized() {
92 INSTANCE.ensureInitializedInternal();
93 return null;
94 }
95 }
96
97 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
98 private static final BasePrice.GeneratedPQuery INSTANCE = new GeneratedPQuery();
99
100 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
101
102 private final PParameter parameter_BasePrice = new PParameter("BasePrice", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
103
104 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_BasePrice);
105
106 private GeneratedPQuery() {
107 super(PVisibility.PRIVATE);
108 }
109
110 @Override
111 public String getFullyQualifiedName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.basePrice";
113 }
114
115 @Override
116 public List<String> getParameterNames() {
117 return Arrays.asList("Spacecraft","BasePrice");
118 }
119
120 @Override
121 public List<PParameter> getParameters() {
122 return parameters;
123 }
124
125 @Override
126 public Set<PBody> doGetContainedBodies() {
127 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
128 Set<PBody> bodies = new LinkedHashSet<>();
129 {
130 PBody body = new PBody(this);
131 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
132 PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice");
133 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
134 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_BasePrice), new JavaTransitiveInstancesKey(java.lang.Double.class));
135 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
136 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
137 new ExportedParameter(body, var_BasePrice, parameter_BasePrice)
138 ));
139 // Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U)
140 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
141 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat3U").getInstance());
142 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
143 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
144 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
145 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
146 new Equality(body, var__virtual_1_, var__virtual_0_);
147 // BasePrice == 250000.0
148 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
149 new ConstantValue(body, var__virtual_2_, 250000.0);
150 new Equality(body, var_BasePrice, var__virtual_2_);
151 bodies.add(body);
152 }
153 {
154 PBody body = new PBody(this);
155 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
156 PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice");
157 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
158 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_BasePrice), new JavaTransitiveInstancesKey(java.lang.Double.class));
159 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
160 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
161 new ExportedParameter(body, var_BasePrice, parameter_BasePrice)
162 ));
163 // Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat6U)
164 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
165 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat6U").getInstance());
166 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
167 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
168 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
169 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
170 new Equality(body, var__virtual_1_, var__virtual_0_);
171 // BasePrice == 750000.0
172 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
173 new ConstantValue(body, var__virtual_2_, 750000.0);
174 new Equality(body, var_BasePrice, var__virtual_2_);
175 bodies.add(body);
176 }
177 {
178 PBody body = new PBody(this);
179 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
180 PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice");
181 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
182 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_BasePrice), new JavaTransitiveInstancesKey(java.lang.Double.class));
183 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
184 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
185 new ExportedParameter(body, var_BasePrice, parameter_BasePrice)
186 ));
187 // Spacecraft.kind(Spacecraft, SpacecraftKind::SmallSat)
188 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
189 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "SmallSat").getInstance());
190 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
191 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
192 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
193 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
194 new Equality(body, var__virtual_1_, var__virtual_0_);
195 // BasePrice == 3000000.0
196 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
197 new ConstantValue(body, var__virtual_2_, 3000000.0);
198 new Equality(body, var_BasePrice, var__virtual_2_);
199 bodies.add(body);
200 }
201 return bodies;
202 }
203 }
204
205 private static double evaluateExpression_1_1() {
206 return 250000.0;
207 }
208
209 private static double evaluateExpression_2_1() {
210 return 750000.0;
211 }
212
213 private static double evaluateExpression_3_1() {
214 return 3000000.0;
215 }
216}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SmallSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java
index d74ed28a..fe789893 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SmallSat.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java
@@ -8,18 +8,13 @@ import java.util.LinkedHashSet;
8import java.util.List; 8import java.util.List;
9import java.util.Set; 9import java.util.Set;
10import org.eclipse.emf.ecore.EClass; 10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EDataType;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; 11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; 12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; 13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
16import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 14import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; 15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
19import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; 16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; 17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; 18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; 20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
@@ -31,8 +26,8 @@ import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
31 * 26 *
32 * <p>Original source: 27 * <p>Original source:
33 * <code><pre> 28 * <code><pre>
34 * private pattern smallSat(Sat : Spacecraft) { 29 * private pattern cubeSat3U(Sat : CubeSat3U) {
35 * Spacecraft.kind(Sat, SpacecraftKind::SmallSat); 30 * CubeSat3U(Sat);
36 * } 31 * }
37 * </pre></code> 32 * </pre></code>
38 * 33 *
@@ -41,8 +36,8 @@ import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
41 * 36 *
42 */ 37 */
43@SuppressWarnings("all") 38@SuppressWarnings("all")
44public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { 39public final class CubeSat3U extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private SmallSat() { 40 private CubeSat3U() {
46 super(GeneratedPQuery.INSTANCE); 41 super(GeneratedPQuery.INSTANCE);
47 } 42 }
48 43
@@ -51,7 +46,7 @@ public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGeneri
51 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded 46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
52 * 47 *
53 */ 48 */
54 public static SmallSat instance() { 49 public static CubeSat3U instance() {
55 try{ 50 try{
56 return LazyHolder.INSTANCE; 51 return LazyHolder.INSTANCE;
57 } catch (ExceptionInInitializerError err) { 52 } catch (ExceptionInInitializerError err) {
@@ -60,15 +55,15 @@ public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGeneri
60 } 55 }
61 56
62 /** 57 /**
63 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created 58 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U (visibility: PUBLIC, simpleName: CubeSat3U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
64 * <b>not</b> at the class load time of the outer class, 59 * <b>not</b> at the class load time of the outer class,
65 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. 60 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U (visibility: PUBLIC, simpleName: CubeSat3U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
66 * 61 *
67 * <p> This workaround is required e.g. to support recursion. 62 * <p> This workaround is required e.g. to support recursion.
68 * 63 *
69 */ 64 */
70 private static class LazyHolder { 65 private static class LazyHolder {
71 private static final SmallSat INSTANCE = new SmallSat(); 66 private static final CubeSat3U INSTANCE = new CubeSat3U();
72 67
73 /** 68 /**
74 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. 69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
@@ -86,9 +81,9 @@ public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGeneri
86 } 81 }
87 82
88 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { 83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
89 private static final SmallSat.GeneratedPQuery INSTANCE = new GeneratedPQuery(); 84 private static final CubeSat3U.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90 85
91 private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); 86 private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat3U")), PParameterDirection.INOUT);
92 87
93 private final List<PParameter> parameters = Arrays.asList(parameter_Sat); 88 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
94 89
@@ -98,7 +93,7 @@ public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGeneri
98 93
99 @Override 94 @Override
100 public String getFullyQualifiedName() { 95 public String getFullyQualifiedName() {
101 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"; 96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat3U";
102 } 97 }
103 98
104 @Override 99 @Override
@@ -118,18 +113,12 @@ public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGeneri
118 { 113 {
119 PBody body = new PBody(this); 114 PBody body = new PBody(this);
120 PVariable var_Sat = body.getOrCreateVariableByName("Sat"); 115 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); 116 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
122 body.setSymbolicParameters(Arrays.<ExportedParameter>asList( 117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
123 new ExportedParameter(body, var_Sat, parameter_Sat) 118 new ExportedParameter(body, var_Sat, parameter_Sat)
124 )); 119 ));
125 // Spacecraft.kind(Sat, SpacecraftKind::SmallSat) 120 // CubeSat3U(Sat)
126 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); 121 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
127 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "SmallSat").getInstance());
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
129 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
131 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
132 new Equality(body, var__virtual_1_, var__virtual_0_);
133 bodies.add(body); 122 bodies.add(body);
134 } 123 }
135 return bodies; 124 return bodies;
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IncomingData.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java
index 114bbf33..27648bf3 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IncomingData.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java
@@ -3,8 +3,7 @@
3 */ 3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; 4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData;
8import java.util.Arrays; 7import java.util.Arrays;
9import java.util.LinkedHashSet; 8import java.util.LinkedHashSet;
10import java.util.List; 9import java.util.List;
@@ -14,12 +13,10 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; 13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; 14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
17import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; 16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
19import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; 17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; 18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; 19import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; 20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; 22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
@@ -31,9 +28,8 @@ import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
31 * 28 *
32 * <p>Original source: 29 * <p>Original source:
33 * <code><pre> 30 * <code><pre>
34 * private pattern incomingData(Spacecraft : Spacecraft, Source : Spacecraft, Data : java Double) { 31 * private pattern indirectLinkAllowed(From : Spacecraft, To : CommunicatingElement) {
35 * find indirectCommunicationLink(Source, Spacecraft); 32 * find linkAllowed+(From, To);
36 * find scienceData(Source, Data);
37 * } 33 * }
38 * </pre></code> 34 * </pre></code>
39 * 35 *
@@ -42,8 +38,8 @@ import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42 * 38 *
43 */ 39 */
44@SuppressWarnings("all") 40@SuppressWarnings("all")
45public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { 41public final class IndirectLinkAllowed extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
46 private IncomingData() { 42 private IndirectLinkAllowed() {
47 super(GeneratedPQuery.INSTANCE); 43 super(GeneratedPQuery.INSTANCE);
48 } 44 }
49 45
@@ -52,7 +48,7 @@ public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGe
52 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded 48 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
53 * 49 *
54 */ 50 */
55 public static IncomingData instance() { 51 public static IndirectLinkAllowed instance() {
56 try{ 52 try{
57 return LazyHolder.INSTANCE; 53 return LazyHolder.INSTANCE;
58 } catch (ExceptionInInitializerError err) { 54 } catch (ExceptionInInitializerError err) {
@@ -61,15 +57,15 @@ public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGe
61 } 57 }
62 58
63 /** 59 /**
64 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData (visibility: PUBLIC, simpleName: IncomingData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created 60 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed (visibility: PUBLIC, simpleName: IndirectLinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
65 * <b>not</b> at the class load time of the outer class, 61 * <b>not</b> at the class load time of the outer class,
66 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData (visibility: PUBLIC, simpleName: IncomingData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. 62 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed (visibility: PUBLIC, simpleName: IndirectLinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
67 * 63 *
68 * <p> This workaround is required e.g. to support recursion. 64 * <p> This workaround is required e.g. to support recursion.
69 * 65 *
70 */ 66 */
71 private static class LazyHolder { 67 private static class LazyHolder {
72 private static final IncomingData INSTANCE = new IncomingData(); 68 private static final IndirectLinkAllowed INSTANCE = new IndirectLinkAllowed();
73 69
74 /** 70 /**
75 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. 71 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
@@ -87,15 +83,13 @@ public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGe
87 } 83 }
88 84
89 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { 85 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
90 private static final IncomingData.GeneratedPQuery INSTANCE = new GeneratedPQuery(); 86 private static final IndirectLinkAllowed.GeneratedPQuery INSTANCE = new GeneratedPQuery();
91 87
92 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); 88 private final PParameter parameter_From = new PParameter("From", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
93 89
94 private final PParameter parameter_Source = new PParameter("Source", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); 90 private final PParameter parameter_To = new PParameter("To", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
95 91
96 private final PParameter parameter_Data = new PParameter("Data", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); 92 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To);
97
98 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Source, parameter_Data);
99 93
100 private GeneratedPQuery() { 94 private GeneratedPQuery() {
101 super(PVisibility.PRIVATE); 95 super(PVisibility.PRIVATE);
@@ -103,12 +97,12 @@ public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGe
103 97
104 @Override 98 @Override
105 public String getFullyQualifiedName() { 99 public String getFullyQualifiedName() {
106 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incomingData"; 100 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectLinkAllowed";
107 } 101 }
108 102
109 @Override 103 @Override
110 public List<String> getParameterNames() { 104 public List<String> getParameterNames() {
111 return Arrays.asList("Spacecraft","Source","Data"); 105 return Arrays.asList("From","To");
112 } 106 }
113 107
114 @Override 108 @Override
@@ -122,21 +116,16 @@ public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGe
122 Set<PBody> bodies = new LinkedHashSet<>(); 116 Set<PBody> bodies = new LinkedHashSet<>();
123 { 117 {
124 PBody body = new PBody(this); 118 PBody body = new PBody(this);
125 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); 119 PVariable var_From = body.getOrCreateVariableByName("From");
126 PVariable var_Source = body.getOrCreateVariableByName("Source"); 120 PVariable var_To = body.getOrCreateVariableByName("To");
127 PVariable var_Data = body.getOrCreateVariableByName("Data"); 121 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); 122 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
129 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
130 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Data), new JavaTransitiveInstancesKey(java.lang.Double.class));
131 body.setSymbolicParameters(Arrays.<ExportedParameter>asList( 123 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
132 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), 124 new ExportedParameter(body, var_From, parameter_From),
133 new ExportedParameter(body, var_Source, parameter_Source), 125 new ExportedParameter(body, var_To, parameter_To)
134 new ExportedParameter(body, var_Data, parameter_Data)
135 )); 126 ));
136 // find indirectCommunicationLink(Source, Spacecraft) 127 // find linkAllowed+(From, To)
137 new PositivePatternCall(body, Tuples.flatTupleOf(var_Source, var_Spacecraft), IndirectCommunicationLink.instance().getInternalQueryRepresentation()); 128 new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_From, var_To), LinkAllowed.instance().getInternalQueryRepresentation());
138 // find scienceData(Source, Data)
139 new PositivePatternCall(body, Tuples.flatTupleOf(var_Source, var_Data), ScienceData.instance().getInternalQueryRepresentation());
140 bodies.add(body); 129 bodies.add(body);
141 } 130 }
142 return bodies; 131 return bodies;
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/InterferometryPayloadCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/InterferometryPayloadCost.java
deleted file mode 100644
index 205d896a..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/InterferometryPayloadCost.java
+++ /dev/null
@@ -1,175 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
27import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
28import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
29import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
30
31/**
32 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
33 *
34 * <p>Original source:
35 * <code><pre>
36 * private pattern interferometryPayloadCost(Spacecraft : Spacecraft, Cost : java Double) {
37 * find spacecraftWithInterferometryPayload(_, Spacecraft);
38 * Cost == 50000.0;
39 * } or {
40 * neg find spacecraftWithInterferometryPayload(_, Spacecraft);
41 * Cost == 0.0;
42 * }
43 * </pre></code>
44 *
45 * @see GenericPatternMatcher
46 * @see GenericPatternMatch
47 *
48 */
49@SuppressWarnings("all")
50public final class InterferometryPayloadCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
51 private InterferometryPayloadCost() {
52 super(GeneratedPQuery.INSTANCE);
53 }
54
55 /**
56 * @return the singleton instance of the query specification
57 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
58 *
59 */
60 public static InterferometryPayloadCost instance() {
61 try{
62 return LazyHolder.INSTANCE;
63 } catch (ExceptionInInitializerError err) {
64 throw processInitializerError(err);
65 }
66 }
67
68 /**
69 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost (visibility: PUBLIC, simpleName: InterferometryPayloadCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
70 * <b>not</b> at the class load time of the outer class,
71 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost (visibility: PUBLIC, simpleName: InterferometryPayloadCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
72 *
73 * <p> This workaround is required e.g. to support recursion.
74 *
75 */
76 private static class LazyHolder {
77 private static final InterferometryPayloadCost INSTANCE = new InterferometryPayloadCost();
78
79 /**
80 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
81 * This initialization order is required to support indirect recursion.
82 *
83 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
84 *
85 */
86 private static final Object STATIC_INITIALIZER = ensureInitialized();
87
88 public static Object ensureInitialized() {
89 INSTANCE.ensureInitializedInternal();
90 return null;
91 }
92 }
93
94 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
95 private static final InterferometryPayloadCost.GeneratedPQuery INSTANCE = new GeneratedPQuery();
96
97 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
98
99 private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
100
101 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Cost);
102
103 private GeneratedPQuery() {
104 super(PVisibility.PRIVATE);
105 }
106
107 @Override
108 public String getFullyQualifiedName() {
109 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.interferometryPayloadCost";
110 }
111
112 @Override
113 public List<String> getParameterNames() {
114 return Arrays.asList("Spacecraft","Cost");
115 }
116
117 @Override
118 public List<PParameter> getParameters() {
119 return parameters;
120 }
121
122 @Override
123 public Set<PBody> doGetContainedBodies() {
124 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
125 Set<PBody> bodies = new LinkedHashSet<>();
126 {
127 PBody body = new PBody(this);
128 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
129 PVariable var_Cost = body.getOrCreateVariableByName("Cost");
130 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
131 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
132 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
133 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
134 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
135 new ExportedParameter(body, var_Cost, parameter_Cost)
136 ));
137 // find spacecraftWithInterferometryPayload(_, Spacecraft)
138 new PositivePatternCall(body, Tuples.flatTupleOf(var___0_, var_Spacecraft), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation());
139 // Cost == 50000.0
140 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
141 new ConstantValue(body, var__virtual_0_, 50000.0);
142 new Equality(body, var_Cost, var__virtual_0_);
143 bodies.add(body);
144 }
145 {
146 PBody body = new PBody(this);
147 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
148 PVariable var_Cost = body.getOrCreateVariableByName("Cost");
149 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
150 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
151 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
152 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
153 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
154 new ExportedParameter(body, var_Cost, parameter_Cost)
155 ));
156 // neg find spacecraftWithInterferometryPayload(_, Spacecraft)
157 new NegativePatternCall(body, Tuples.flatTupleOf(var___0_, var_Spacecraft), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation());
158 // Cost == 0.0
159 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
160 new ConstantValue(body, var__virtual_0_, 0.0);
161 new Equality(body, var_Cost, var__virtual_0_);
162 bodies.add(body);
163 }
164 return bodies;
165 }
166 }
167
168 private static double evaluateExpression_1_1() {
169 return 50000.0;
170 }
171
172 private static double evaluateExpression_2_1() {
173 return 0.0;
174 }
175}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java
new file mode 100644
index 00000000..e7529aa2
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java
@@ -0,0 +1,185 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna;
8import java.util.Arrays;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Set;
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
26import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
27import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
28
29/**
30 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
31 *
32 * <p>Original source:
33 * <code><pre>
34 * private pattern linkAllowed(From : Spacecraft, To : CommunicatingElement) {
35 * find matchingAntenna(From, To, _);
36 * neg find cubeSat3U(From);
37 * } or {
38 * find matchingAntenna(From, To, TransceiverBand::UHF);
39 * CubeSat3U(From);
40 * } or {
41 * find matchingAntenna(From, To, _);
42 * CubeSat3U(From);
43 * GroundStationNetwork(To);
44 * }
45 * </pre></code>
46 *
47 * @see GenericPatternMatcher
48 * @see GenericPatternMatch
49 *
50 */
51@SuppressWarnings("all")
52public final class LinkAllowed extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
53 private LinkAllowed() {
54 super(GeneratedPQuery.INSTANCE);
55 }
56
57 /**
58 * @return the singleton instance of the query specification
59 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
60 *
61 */
62 public static LinkAllowed instance() {
63 try{
64 return LazyHolder.INSTANCE;
65 } catch (ExceptionInInitializerError err) {
66 throw processInitializerError(err);
67 }
68 }
69
70 /**
71 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed (visibility: PUBLIC, simpleName: LinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
72 * <b>not</b> at the class load time of the outer class,
73 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed (visibility: PUBLIC, simpleName: LinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
74 *
75 * <p> This workaround is required e.g. to support recursion.
76 *
77 */
78 private static class LazyHolder {
79 private static final LinkAllowed INSTANCE = new LinkAllowed();
80
81 /**
82 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
83 * This initialization order is required to support indirect recursion.
84 *
85 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
86 *
87 */
88 private static final Object STATIC_INITIALIZER = ensureInitialized();
89
90 public static Object ensureInitialized() {
91 INSTANCE.ensureInitializedInternal();
92 return null;
93 }
94 }
95
96 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
97 private static final LinkAllowed.GeneratedPQuery INSTANCE = new GeneratedPQuery();
98
99 private final PParameter parameter_From = new PParameter("From", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
100
101 private final PParameter parameter_To = new PParameter("To", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
102
103 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To);
104
105 private GeneratedPQuery() {
106 super(PVisibility.PRIVATE);
107 }
108
109 @Override
110 public String getFullyQualifiedName() {
111 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.linkAllowed";
112 }
113
114 @Override
115 public List<String> getParameterNames() {
116 return Arrays.asList("From","To");
117 }
118
119 @Override
120 public List<PParameter> getParameters() {
121 return parameters;
122 }
123
124 @Override
125 public Set<PBody> doGetContainedBodies() {
126 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
127 Set<PBody> bodies = new LinkedHashSet<>();
128 {
129 PBody body = new PBody(this);
130 PVariable var_From = body.getOrCreateVariableByName("From");
131 PVariable var_To = body.getOrCreateVariableByName("To");
132 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
133 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
134 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
135 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
136 new ExportedParameter(body, var_From, parameter_From),
137 new ExportedParameter(body, var_To, parameter_To)
138 ));
139 // find matchingAntenna(From, To, _)
140 new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To, var___0_), MatchingAntenna.instance().getInternalQueryRepresentation());
141 // neg find cubeSat3U(From)
142 new NegativePatternCall(body, Tuples.flatTupleOf(var_From), CubeSat3U.instance().getInternalQueryRepresentation());
143 bodies.add(body);
144 }
145 {
146 PBody body = new PBody(this);
147 PVariable var_From = body.getOrCreateVariableByName("From");
148 PVariable var_To = body.getOrCreateVariableByName("To");
149 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
150 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
151 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
152 new ExportedParameter(body, var_From, parameter_From),
153 new ExportedParameter(body, var_To, parameter_To)
154 ));
155 // find matchingAntenna(From, To, TransceiverBand::UHF)
156 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
157 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "UHF").getInstance());
158 new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To, var__virtual_0_), MatchingAntenna.instance().getInternalQueryRepresentation());
159 // CubeSat3U(From)
160 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
161 bodies.add(body);
162 }
163 {
164 PBody body = new PBody(this);
165 PVariable var_From = body.getOrCreateVariableByName("From");
166 PVariable var_To = body.getOrCreateVariableByName("To");
167 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
168 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
169 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
170 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
171 new ExportedParameter(body, var_From, parameter_From),
172 new ExportedParameter(body, var_To, parameter_To)
173 ));
174 // find matchingAntenna(From, To, _)
175 new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To, var___0_), MatchingAntenna.instance().getInternalQueryRepresentation());
176 // CubeSat3U(From)
177 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
178 // GroundStationNetwork(To)
179 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
180 bodies.add(body);
181 }
182 return bodies;
183 }
184 }
185}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java
new file mode 100644
index 00000000..b4f0d9e9
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java
@@ -0,0 +1,179 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EDataType;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
16import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
19import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
26import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
27
28/**
29 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
30 *
31 * <p>Original source:
32 * <code><pre>
33 * private pattern matchingAntenna(From : Spacecraft, To : CommunicatingElement, Band : TransceiverBand) {
34 * CommunicatingElement.commSubsystem.band(From, Band);
35 * CommunicatingElement.commSubsystem.band(To, Band);
36 * CommunicatingElement.commSubsystem.gain(From, Gain);
37 * CommunicatingElement.commSubsystem.gain(To, Gain);
38 * }
39 * </pre></code>
40 *
41 * @see GenericPatternMatcher
42 * @see GenericPatternMatch
43 *
44 */
45@SuppressWarnings("all")
46public final class MatchingAntenna extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
47 private MatchingAntenna() {
48 super(GeneratedPQuery.INSTANCE);
49 }
50
51 /**
52 * @return the singleton instance of the query specification
53 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
54 *
55 */
56 public static MatchingAntenna instance() {
57 try{
58 return LazyHolder.INSTANCE;
59 } catch (ExceptionInInitializerError err) {
60 throw processInitializerError(err);
61 }
62 }
63
64 /**
65 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna (visibility: PUBLIC, simpleName: MatchingAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
66 * <b>not</b> at the class load time of the outer class,
67 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna (visibility: PUBLIC, simpleName: MatchingAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
68 *
69 * <p> This workaround is required e.g. to support recursion.
70 *
71 */
72 private static class LazyHolder {
73 private static final MatchingAntenna INSTANCE = new MatchingAntenna();
74
75 /**
76 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
77 * This initialization order is required to support indirect recursion.
78 *
79 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
80 *
81 */
82 private static final Object STATIC_INITIALIZER = ensureInitialized();
83
84 public static Object ensureInitialized() {
85 INSTANCE.ensureInitializedInternal();
86 return null;
87 }
88 }
89
90 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
91 private static final MatchingAntenna.GeneratedPQuery INSTANCE = new GeneratedPQuery();
92
93 private final PParameter parameter_From = new PParameter("From", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
94
95 private final PParameter parameter_To = new PParameter("To", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
96
97 private final PParameter parameter_Band = new PParameter("Band", "hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "TransceiverBand")), PParameterDirection.INOUT);
98
99 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To, parameter_Band);
100
101 private GeneratedPQuery() {
102 super(PVisibility.PRIVATE);
103 }
104
105 @Override
106 public String getFullyQualifiedName() {
107 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingAntenna";
108 }
109
110 @Override
111 public List<String> getParameterNames() {
112 return Arrays.asList("From","To","Band");
113 }
114
115 @Override
116 public List<PParameter> getParameters() {
117 return parameters;
118 }
119
120 @Override
121 public Set<PBody> doGetContainedBodies() {
122 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
123 Set<PBody> bodies = new LinkedHashSet<>();
124 {
125 PBody body = new PBody(this);
126 PVariable var_From = body.getOrCreateVariableByName("From");
127 PVariable var_To = body.getOrCreateVariableByName("To");
128 PVariable var_Band = body.getOrCreateVariableByName("Band");
129 PVariable var_Gain = body.getOrCreateVariableByName("Gain");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
131 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Band), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
133 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
134 new ExportedParameter(body, var_From, parameter_From),
135 new ExportedParameter(body, var_To, parameter_To),
136 new ExportedParameter(body, var_Band, parameter_Band)
137 ));
138 // CommunicatingElement.commSubsystem.band(From, Band)
139 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
140 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
141 new TypeConstraint(body, Tuples.flatTupleOf(var_From, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
142 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
143 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
144 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
145 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
146 new Equality(body, var__virtual_1_, var_Band);
147 // CommunicatingElement.commSubsystem.band(To, Band)
148 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
149 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
150 new TypeConstraint(body, Tuples.flatTupleOf(var_To, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
151 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
152 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
153 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
154 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
155 new Equality(body, var__virtual_3_, var_Band);
156 // CommunicatingElement.commSubsystem.gain(From, Gain)
157 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
158 PVariable var__virtual_4_ = body.getOrCreateVariableByName(".virtual{4}");
159 new TypeConstraint(body, Tuples.flatTupleOf(var_From, var__virtual_4_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
160 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
161 PVariable var__virtual_5_ = body.getOrCreateVariableByName(".virtual{5}");
162 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_, var__virtual_5_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
163 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_5_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
164 new Equality(body, var__virtual_5_, var_Gain);
165 // CommunicatingElement.commSubsystem.gain(To, Gain)
166 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
167 PVariable var__virtual_6_ = body.getOrCreateVariableByName(".virtual{6}");
168 new TypeConstraint(body, Tuples.flatTupleOf(var_To, var__virtual_6_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
169 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_6_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
170 PVariable var__virtual_7_ = body.getOrCreateVariableByName(".virtual{7}");
171 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_6_, var__virtual_7_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
172 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_7_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
173 new Equality(body, var__virtual_7_, var_Gain);
174 bodies.add(body);
175 }
176 return bodies;
177 }
178 }
179}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java
deleted file mode 100644
index 0374195f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java
+++ /dev/null
@@ -1,183 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.EDataType;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
17import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
18import org.eclipse.viatra.query.runtime.matchers.aggregators.sum;
19import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
20import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
21import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
22import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
23import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
24import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
28import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
35
36/**
37 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
38 *
39 * <p>Original source:
40 * <code><pre>
41 * private pattern missionCost(Mission : InterferometryMission, Cost : java Double) {
42 * InterferometryMission.observationTime(Mission, ObservationTime);
43 * SpacecraftCost == sum find spacecraftCost(Mission, _, #_);
44 * Cost == eval(SpacecraftCost + 100000.0 ObservationTime);
45 * }
46 * </pre></code>
47 *
48 * @see GenericPatternMatcher
49 * @see GenericPatternMatch
50 *
51 */
52@SuppressWarnings("all")
53public final class MissionCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
54 private MissionCost() {
55 super(GeneratedPQuery.INSTANCE);
56 }
57
58 /**
59 * @return the singleton instance of the query specification
60 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
61 *
62 */
63 public static MissionCost instance() {
64 try{
65 return LazyHolder.INSTANCE;
66 } catch (ExceptionInInitializerError err) {
67 throw processInitializerError(err);
68 }
69 }
70
71 /**
72 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost (visibility: PUBLIC, simpleName: MissionCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
73 * <b>not</b> at the class load time of the outer class,
74 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost (visibility: PUBLIC, simpleName: MissionCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
75 *
76 * <p> This workaround is required e.g. to support recursion.
77 *
78 */
79 private static class LazyHolder {
80 private static final MissionCost INSTANCE = new MissionCost();
81
82 /**
83 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
84 * This initialization order is required to support indirect recursion.
85 *
86 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
87 *
88 */
89 private static final Object STATIC_INITIALIZER = ensureInitialized();
90
91 public static Object ensureInitialized() {
92 INSTANCE.ensureInitializedInternal();
93 return null;
94 }
95 }
96
97 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
98 private static final MissionCost.GeneratedPQuery INSTANCE = new GeneratedPQuery();
99
100 private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
101
102 private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
103
104 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Cost);
105
106 private GeneratedPQuery() {
107 super(PVisibility.PRIVATE);
108 }
109
110 @Override
111 public String getFullyQualifiedName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.missionCost";
113 }
114
115 @Override
116 public List<String> getParameterNames() {
117 return Arrays.asList("Mission","Cost");
118 }
119
120 @Override
121 public List<PParameter> getParameters() {
122 return parameters;
123 }
124
125 @Override
126 public Set<PBody> doGetContainedBodies() {
127 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
128 Set<PBody> bodies = new LinkedHashSet<>();
129 {
130 PBody body = new PBody(this);
131 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
132 PVariable var_Cost = body.getOrCreateVariableByName("Cost");
133 PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime");
134 PVariable var_SpacecraftCost = body.getOrCreateVariableByName("SpacecraftCost");
135 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
136 PVariable var___1_ = body.getOrCreateVariableByName("_<1>");
137 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
138 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
139 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
140 new ExportedParameter(body, var_Mission, parameter_Mission),
141 new ExportedParameter(body, var_Cost, parameter_Cost)
142 ));
143 // InterferometryMission.observationTime(Mission, ObservationTime)
144 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
145 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
146 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime")));
147 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat")));
148 new Equality(body, var__virtual_0_, var_ObservationTime);
149 // SpacecraftCost == sum find spacecraftCost(Mission, _, #_)
150 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
151 new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var_Mission, var___0_, var___1_), SpacecraftCost.instance().getInternalQueryRepresentation(), var__virtual_1_, 2);
152 new Equality(body, var_SpacecraftCost, var__virtual_1_);
153 // Cost == eval(SpacecraftCost + 100000.0 * ObservationTime)
154 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
155 new ExpressionEvaluation(body, new IExpressionEvaluator() {
156
157 @Override
158 public String getShortDescription() {
159 return "Expression evaluation from pattern missionCost";
160 }
161
162 @Override
163 public Iterable<String> getInputParameterNames() {
164 return Arrays.asList("ObservationTime", "SpacecraftCost");}
165
166 @Override
167 public Object evaluateExpression(IValueProvider provider) throws Exception {
168 Float ObservationTime = (Float) provider.getValue("ObservationTime");
169 Double SpacecraftCost = (Double) provider.getValue("SpacecraftCost");
170 return evaluateExpression_1_1(ObservationTime, SpacecraftCost);
171 }
172 }, var__virtual_2_ );
173 new Equality(body, var_Cost, var__virtual_2_);
174 bodies.add(body);
175 }
176 return bodies;
177 }
178 }
179
180 private static double evaluateExpression_1_1(final Float ObservationTime, final Double SpacecraftCost) {
181 return ((SpacecraftCost).doubleValue() + (100000.0 * (ObservationTime).floatValue()));
182 }
183}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java
deleted file mode 100644
index 583c2175..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java
+++ /dev/null
@@ -1,183 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.EDataType;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
17import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
18import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
19import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
20import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
21import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
22import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
23import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
26import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter;
28import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
33import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
34
35/**
36 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
37 *
38 * <p>Original source:
39 * <code><pre>
40 * private pattern missionCoverage(Mission : InterferometryMission, Coverage : java Double) {
41 * InterferometryMission.observationTime(Mission, ObservationTime);
42 * ObserverCount == count find spacecraftWithInterferometryPayload(Mission, _);
43 * Coverage == eval(Math.pow(1 - 2.0 / ObserverCount, 1 + 9 (1.0 / ObservationTime)) + 0.05 ObservationTime / 3);
44 * }
45 * </pre></code>
46 *
47 * @see GenericPatternMatcher
48 * @see GenericPatternMatch
49 *
50 */
51@SuppressWarnings("all")
52public final class MissionCoverage extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
53 private MissionCoverage() {
54 super(GeneratedPQuery.INSTANCE);
55 }
56
57 /**
58 * @return the singleton instance of the query specification
59 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
60 *
61 */
62 public static MissionCoverage instance() {
63 try{
64 return LazyHolder.INSTANCE;
65 } catch (ExceptionInInitializerError err) {
66 throw processInitializerError(err);
67 }
68 }
69
70 /**
71 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage (visibility: PUBLIC, simpleName: MissionCoverage, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
72 * <b>not</b> at the class load time of the outer class,
73 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage (visibility: PUBLIC, simpleName: MissionCoverage, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
74 *
75 * <p> This workaround is required e.g. to support recursion.
76 *
77 */
78 private static class LazyHolder {
79 private static final MissionCoverage INSTANCE = new MissionCoverage();
80
81 /**
82 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
83 * This initialization order is required to support indirect recursion.
84 *
85 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
86 *
87 */
88 private static final Object STATIC_INITIALIZER = ensureInitialized();
89
90 public static Object ensureInitialized() {
91 INSTANCE.ensureInitializedInternal();
92 return null;
93 }
94 }
95
96 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
97 private static final MissionCoverage.GeneratedPQuery INSTANCE = new GeneratedPQuery();
98
99 private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
100
101 private final PParameter parameter_Coverage = new PParameter("Coverage", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
102
103 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Coverage);
104
105 private GeneratedPQuery() {
106 super(PVisibility.PRIVATE);
107 }
108
109 @Override
110 public String getFullyQualifiedName() {
111 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.missionCoverage";
112 }
113
114 @Override
115 public List<String> getParameterNames() {
116 return Arrays.asList("Mission","Coverage");
117 }
118
119 @Override
120 public List<PParameter> getParameters() {
121 return parameters;
122 }
123
124 @Override
125 public Set<PBody> doGetContainedBodies() {
126 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
127 Set<PBody> bodies = new LinkedHashSet<>();
128 {
129 PBody body = new PBody(this);
130 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
131 PVariable var_Coverage = body.getOrCreateVariableByName("Coverage");
132 PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime");
133 PVariable var_ObserverCount = body.getOrCreateVariableByName("ObserverCount");
134 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
135 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
136 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Coverage), new JavaTransitiveInstancesKey(java.lang.Double.class));
137 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
138 new ExportedParameter(body, var_Mission, parameter_Mission),
139 new ExportedParameter(body, var_Coverage, parameter_Coverage)
140 ));
141 // InterferometryMission.observationTime(Mission, ObservationTime)
142 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
143 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
144 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime")));
145 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat")));
146 new Equality(body, var__virtual_0_, var_ObservationTime);
147 // ObserverCount == count find spacecraftWithInterferometryPayload(Mission, _)
148 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
149 new PatternMatchCounter(body, Tuples.flatTupleOf(var_Mission, var___0_), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation(), var__virtual_1_);
150 new Equality(body, var_ObserverCount, var__virtual_1_);
151 // Coverage == eval(Math.pow(1 - 2.0 / ObserverCount, 1 + 9 * (1.0 / ObservationTime)) + 0.05 * ObservationTime / 3)
152 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
153 new ExpressionEvaluation(body, new IExpressionEvaluator() {
154
155 @Override
156 public String getShortDescription() {
157 return "Expression evaluation from pattern missionCoverage";
158 }
159
160 @Override
161 public Iterable<String> getInputParameterNames() {
162 return Arrays.asList("ObservationTime", "ObserverCount");}
163
164 @Override
165 public Object evaluateExpression(IValueProvider provider) throws Exception {
166 Float ObservationTime = (Float) provider.getValue("ObservationTime");
167 Integer ObserverCount = (Integer) provider.getValue("ObserverCount");
168 return evaluateExpression_1_1(ObservationTime, ObserverCount);
169 }
170 }, var__virtual_2_ );
171 new Equality(body, var_Coverage, var__virtual_2_);
172 bodies.add(body);
173 }
174 return bodies;
175 }
176 }
177
178 private static double evaluateExpression_1_1(final Float ObservationTime, final Integer ObserverCount) {
179 double _pow = Math.pow((1 - (2.0 / (ObserverCount).intValue())), (1 + (9 * (1.0 / (ObservationTime).floatValue()))));
180 double _plus = (_pow + ((0.05 * (ObservationTime).floatValue()) / 3));
181 return _plus;
182 }
183}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java
deleted file mode 100644
index 3ad42bf5..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java
+++ /dev/null
@@ -1,183 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.EDataType;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
17import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
18import org.eclipse.viatra.query.runtime.matchers.aggregators.sum;
19import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
20import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
21import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
22import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
23import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
24import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
28import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
35
36/**
37 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
38 *
39 * <p>Original source:
40 * <code><pre>
41 * private pattern missionTime(Mission : InterferometryMission, Time : java Double) {
42 * InterferometryMission.observationTime(Mission, ObservationTime);
43 * TrasmitTime == sum find transmitTime(Mission, _, #_);
44 * Time == eval(TrasmitTime + 60.0 ObservationTime);
45 * }
46 * </pre></code>
47 *
48 * @see GenericPatternMatcher
49 * @see GenericPatternMatch
50 *
51 */
52@SuppressWarnings("all")
53public final class MissionTime extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
54 private MissionTime() {
55 super(GeneratedPQuery.INSTANCE);
56 }
57
58 /**
59 * @return the singleton instance of the query specification
60 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
61 *
62 */
63 public static MissionTime instance() {
64 try{
65 return LazyHolder.INSTANCE;
66 } catch (ExceptionInInitializerError err) {
67 throw processInitializerError(err);
68 }
69 }
70
71 /**
72 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime (visibility: PUBLIC, simpleName: MissionTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
73 * <b>not</b> at the class load time of the outer class,
74 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime (visibility: PUBLIC, simpleName: MissionTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
75 *
76 * <p> This workaround is required e.g. to support recursion.
77 *
78 */
79 private static class LazyHolder {
80 private static final MissionTime INSTANCE = new MissionTime();
81
82 /**
83 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
84 * This initialization order is required to support indirect recursion.
85 *
86 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
87 *
88 */
89 private static final Object STATIC_INITIALIZER = ensureInitialized();
90
91 public static Object ensureInitialized() {
92 INSTANCE.ensureInitializedInternal();
93 return null;
94 }
95 }
96
97 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
98 private static final MissionTime.GeneratedPQuery INSTANCE = new GeneratedPQuery();
99
100 private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
101
102 private final PParameter parameter_Time = new PParameter("Time", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
103
104 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Time);
105
106 private GeneratedPQuery() {
107 super(PVisibility.PRIVATE);
108 }
109
110 @Override
111 public String getFullyQualifiedName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.missionTime";
113 }
114
115 @Override
116 public List<String> getParameterNames() {
117 return Arrays.asList("Mission","Time");
118 }
119
120 @Override
121 public List<PParameter> getParameters() {
122 return parameters;
123 }
124
125 @Override
126 public Set<PBody> doGetContainedBodies() {
127 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
128 Set<PBody> bodies = new LinkedHashSet<>();
129 {
130 PBody body = new PBody(this);
131 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
132 PVariable var_Time = body.getOrCreateVariableByName("Time");
133 PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime");
134 PVariable var_TrasmitTime = body.getOrCreateVariableByName("TrasmitTime");
135 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
136 PVariable var___1_ = body.getOrCreateVariableByName("_<1>");
137 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
138 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Time), new JavaTransitiveInstancesKey(java.lang.Double.class));
139 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
140 new ExportedParameter(body, var_Mission, parameter_Mission),
141 new ExportedParameter(body, var_Time, parameter_Time)
142 ));
143 // InterferometryMission.observationTime(Mission, ObservationTime)
144 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
145 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
146 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime")));
147 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat")));
148 new Equality(body, var__virtual_0_, var_ObservationTime);
149 // TrasmitTime == sum find transmitTime(Mission, _, #_)
150 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
151 new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var_Mission, var___0_, var___1_), TransmitTime.instance().getInternalQueryRepresentation(), var__virtual_1_, 2);
152 new Equality(body, var_TrasmitTime, var__virtual_1_);
153 // Time == eval(TrasmitTime + 60.0 * ObservationTime)
154 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
155 new ExpressionEvaluation(body, new IExpressionEvaluator() {
156
157 @Override
158 public String getShortDescription() {
159 return "Expression evaluation from pattern missionTime";
160 }
161
162 @Override
163 public Iterable<String> getInputParameterNames() {
164 return Arrays.asList("ObservationTime", "TrasmitTime");}
165
166 @Override
167 public Object evaluateExpression(IValueProvider provider) throws Exception {
168 Float ObservationTime = (Float) provider.getValue("ObservationTime");
169 Double TrasmitTime = (Double) provider.getValue("TrasmitTime");
170 return evaluateExpression_1_1(ObservationTime, TrasmitTime);
171 }
172 }, var__virtual_2_ );
173 new Equality(body, var_Time, var__virtual_2_);
174 bodies.add(body);
175 }
176 return bodies;
177 }
178 }
179
180 private static double evaluateExpression_1_1(final Float ObservationTime, final Double TrasmitTime) {
181 return ((TrasmitTime).doubleValue() + (60.0 * (ObservationTime).floatValue()));
182 }
183}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java
index 2f310711..36fa4557 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java
@@ -5,43 +5,32 @@ package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5 5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement; 6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop; 7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna; 8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand; 9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain; 10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow; 11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation; 12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads; 14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink; 17import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink;
17import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric;
18import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow; 18import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow;
19import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium; 19import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium;
20import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost;
21import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads; 20import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads;
22import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice;
23import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand; 21import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand;
24import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf; 22import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf;
25import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain; 23import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain;
26import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow; 24import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow;
27import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium; 25import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium;
26import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U;
28import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink; 27import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink;
29import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork; 28import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork;
30import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData;
31import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; 29import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink;
32import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost; 30import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed;
33import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost; 31import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed;
34import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage; 32import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna;
35import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime;
36import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData;
37import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat;
38import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost;
39import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind;
40import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink;
41import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload; 33import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload;
42import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems;
43import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate;
44import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime;
45import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; 34import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
46 35
47/** 36/**
@@ -55,6 +44,11 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
55 * <li>atLeastTwoInterferometryPayloads</li> 44 * <li>atLeastTwoInterferometryPayloads</li>
56 * <li>spacecraftWithInterferometryPayload</li> 45 * <li>spacecraftWithInterferometryPayload</li>
57 * <li>noLinkToGroundStation</li> 46 * <li>noLinkToGroundStation</li>
47 * <li>noPotentialLinkToGroundStation</li>
48 * <li>indirectLinkAllowed</li>
49 * <li>linkAllowed</li>
50 * <li>matchingAntenna</li>
51 * <li>cubeSat3U</li>
58 * <li>communicationLoop</li> 52 * <li>communicationLoop</li>
59 * <li>indirectCommunicationLink</li> 53 * <li>indirectCommunicationLink</li>
60 * <li>directCommunicationLink</li> 54 * <li>directCommunicationLink</li>
@@ -72,23 +66,7 @@ import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
72 * <li>groundStationNetwork</li> 66 * <li>groundStationNetwork</li>
73 * <li>cubeSatWithKaAntenna</li> 67 * <li>cubeSatWithKaAntenna</li>
74 * <li>smallSat</li> 68 * <li>smallSat</li>
75 * <li>coverageMetric</li>
76 * <li>missionCoverage</li>
77 * <li>timeMetric</li>
78 * <li>missionTime</li>
79 * <li>transmitTime</li>
80 * <li>incomingData</li>
81 * <li>scienceData</li>
82 * <li>transmitRate</li>
83 * <li>spacecraftUplink</li>
84 * <li>costMetric</li>
85 * <li>missionCost</li>
86 * <li>spacecraftCost</li>
87 * <li>spacecraftOfKind</li> 69 * <li>spacecraftOfKind</li>
88 * <li>basePrice</li>
89 * <li>interferometryPayloadCost</li>
90 * <li>additionalCommSubsystemCost</li>
91 * <li>spacecraftWithTwoCommSubsystems</li>
92 * </ul> 70 * </ul>
93 * 71 *
94 * @see IQueryGroup 72 * @see IQueryGroup
@@ -118,6 +96,11 @@ public final class SatelliteQueriesAll extends BaseGeneratedPatternGroup {
118 querySpecifications.add(AtLeastTwoInterferometryPayloads.instance()); 96 querySpecifications.add(AtLeastTwoInterferometryPayloads.instance());
119 querySpecifications.add(SpacecraftWithInterferometryPayload.instance()); 97 querySpecifications.add(SpacecraftWithInterferometryPayload.instance());
120 querySpecifications.add(NoLinkToGroundStation.instance()); 98 querySpecifications.add(NoLinkToGroundStation.instance());
99 querySpecifications.add(NoPotentialLinkToGroundStation.instance());
100 querySpecifications.add(IndirectLinkAllowed.instance());
101 querySpecifications.add(LinkAllowed.instance());
102 querySpecifications.add(MatchingAntenna.instance());
103 querySpecifications.add(CubeSat3U.instance());
121 querySpecifications.add(CommunicationLoop.instance()); 104 querySpecifications.add(CommunicationLoop.instance());
122 querySpecifications.add(IndirectCommunicationLink.instance()); 105 querySpecifications.add(IndirectCommunicationLink.instance());
123 querySpecifications.add(DirectCommunicationLink.instance()); 106 querySpecifications.add(DirectCommunicationLink.instance());
@@ -135,22 +118,6 @@ public final class SatelliteQueriesAll extends BaseGeneratedPatternGroup {
135 querySpecifications.add(GroundStationNetwork.instance()); 118 querySpecifications.add(GroundStationNetwork.instance());
136 querySpecifications.add(CubeSatWithKaAntenna.instance()); 119 querySpecifications.add(CubeSatWithKaAntenna.instance());
137 querySpecifications.add(SmallSat.instance()); 120 querySpecifications.add(SmallSat.instance());
138 querySpecifications.add(CoverageMetric.instance());
139 querySpecifications.add(MissionCoverage.instance());
140 querySpecifications.add(TimeMetric.instance());
141 querySpecifications.add(MissionTime.instance());
142 querySpecifications.add(TransmitTime.instance());
143 querySpecifications.add(IncomingData.instance());
144 querySpecifications.add(ScienceData.instance());
145 querySpecifications.add(TransmitRate.instance());
146 querySpecifications.add(SpacecraftUplink.instance());
147 querySpecifications.add(CostMetric.instance());
148 querySpecifications.add(MissionCost.instance());
149 querySpecifications.add(SpacecraftCost.instance());
150 querySpecifications.add(SpacecraftOfKind.instance()); 121 querySpecifications.add(SpacecraftOfKind.instance());
151 querySpecifications.add(BasePrice.instance());
152 querySpecifications.add(InterferometryPayloadCost.instance());
153 querySpecifications.add(AdditionalCommSubsystemCost.instance());
154 querySpecifications.add(SpacecraftWithTwoCommSubsystems.instance());
155 } 122 }
156} 123}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java
deleted file mode 100644
index b558e51e..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java
+++ /dev/null
@@ -1,179 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EDataType;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
16import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
18import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
19import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
20import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
21import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
22import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
26import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
28import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
29import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
30import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
31import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
32
33/**
34 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
35 *
36 * <p>Original source:
37 * <code><pre>
38 * private pattern scienceData(Spacecraft : Spacecraft, Data : java Double) {
39 * ConstellationMission.spacecraft(Mission, Spacecraft);
40 * InterferometryMission.observationTime(Mission, ObservationTime);
41 * Data == eval(12.0 ObservationTime);
42 * }
43 * </pre></code>
44 *
45 * @see GenericPatternMatcher
46 * @see GenericPatternMatch
47 *
48 */
49@SuppressWarnings("all")
50public final class ScienceData extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
51 private ScienceData() {
52 super(GeneratedPQuery.INSTANCE);
53 }
54
55 /**
56 * @return the singleton instance of the query specification
57 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
58 *
59 */
60 public static ScienceData instance() {
61 try{
62 return LazyHolder.INSTANCE;
63 } catch (ExceptionInInitializerError err) {
64 throw processInitializerError(err);
65 }
66 }
67
68 /**
69 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData (visibility: PUBLIC, simpleName: ScienceData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
70 * <b>not</b> at the class load time of the outer class,
71 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData (visibility: PUBLIC, simpleName: ScienceData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
72 *
73 * <p> This workaround is required e.g. to support recursion.
74 *
75 */
76 private static class LazyHolder {
77 private static final ScienceData INSTANCE = new ScienceData();
78
79 /**
80 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
81 * This initialization order is required to support indirect recursion.
82 *
83 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
84 *
85 */
86 private static final Object STATIC_INITIALIZER = ensureInitialized();
87
88 public static Object ensureInitialized() {
89 INSTANCE.ensureInitializedInternal();
90 return null;
91 }
92 }
93
94 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
95 private static final ScienceData.GeneratedPQuery INSTANCE = new GeneratedPQuery();
96
97 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
98
99 private final PParameter parameter_Data = new PParameter("Data", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
100
101 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Data);
102
103 private GeneratedPQuery() {
104 super(PVisibility.PRIVATE);
105 }
106
107 @Override
108 public String getFullyQualifiedName() {
109 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.scienceData";
110 }
111
112 @Override
113 public List<String> getParameterNames() {
114 return Arrays.asList("Spacecraft","Data");
115 }
116
117 @Override
118 public List<PParameter> getParameters() {
119 return parameters;
120 }
121
122 @Override
123 public Set<PBody> doGetContainedBodies() {
124 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
125 Set<PBody> bodies = new LinkedHashSet<>();
126 {
127 PBody body = new PBody(this);
128 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
129 PVariable var_Data = body.getOrCreateVariableByName("Data");
130 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
131 PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime");
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
133 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Data), new JavaTransitiveInstancesKey(java.lang.Double.class));
134 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
135 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
136 new ExportedParameter(body, var_Data, parameter_Data)
137 ));
138 // ConstellationMission.spacecraft(Mission, Spacecraft)
139 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
140 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
141 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
142 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
143 new Equality(body, var__virtual_0_, var_Spacecraft);
144 // InterferometryMission.observationTime(Mission, ObservationTime)
145 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
146 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
147 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime")));
148 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat")));
149 new Equality(body, var__virtual_1_, var_ObservationTime);
150 // Data == eval(12.0 * ObservationTime)
151 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
152 new ExpressionEvaluation(body, new IExpressionEvaluator() {
153
154 @Override
155 public String getShortDescription() {
156 return "Expression evaluation from pattern scienceData";
157 }
158
159 @Override
160 public Iterable<String> getInputParameterNames() {
161 return Arrays.asList("ObservationTime");}
162
163 @Override
164 public Object evaluateExpression(IValueProvider provider) throws Exception {
165 Float ObservationTime = (Float) provider.getValue("ObservationTime");
166 return evaluateExpression_1_1(ObservationTime);
167 }
168 }, var__virtual_2_ );
169 new Equality(body, var_Data, var__virtual_2_);
170 bodies.add(body);
171 }
172 return bodies;
173 }
174 }
175
176 private static double evaluateExpression_1_1(final Float ObservationTime) {
177 return (12.0 * (ObservationTime).floatValue());
178 }
179}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftCost.java
deleted file mode 100644
index 65fed74a..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftCost.java
+++ /dev/null
@@ -1,215 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind;
10import java.util.Arrays;
11import java.util.LinkedHashSet;
12import java.util.List;
13import java.util.Set;
14import org.eclipse.emf.ecore.EClass;
15import org.eclipse.emf.ecore.EDataType;
16import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
17import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
18import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
19import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
20import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
21import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
22import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
23import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
24import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
25import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
26import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
28import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
34import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
37import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
38
39/**
40 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
41 *
42 * <p>Original source:
43 * <code><pre>
44 * private pattern spacecraftCost(Mission : InterferometryMission, Spacecraft : Spacecraft, Cost : java Double) {
45 * ConstellationMission.spacecraft(Mission, Spacecraft);
46 * Spacecraft.kind(Spacecraft, Kind);
47 * KindCount == count find spacecraftOfKind(_, Kind);
48 * find basePrice(Spacecraft, BasePrice);
49 * find interferometryPayloadCost(Spacecraft, InterferometryPayloadCost);
50 * find additionalCommSubsystemCost(Spacecraft, AdditionalCommSubsystemCost);
51 * Cost == eval(BasePrice Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost);
52 * }
53 * </pre></code>
54 *
55 * @see GenericPatternMatcher
56 * @see GenericPatternMatch
57 *
58 */
59@SuppressWarnings("all")
60public final class SpacecraftCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
61 private SpacecraftCost() {
62 super(GeneratedPQuery.INSTANCE);
63 }
64
65 /**
66 * @return the singleton instance of the query specification
67 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
68 *
69 */
70 public static SpacecraftCost instance() {
71 try{
72 return LazyHolder.INSTANCE;
73 } catch (ExceptionInInitializerError err) {
74 throw processInitializerError(err);
75 }
76 }
77
78 /**
79 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost (visibility: PUBLIC, simpleName: SpacecraftCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
80 * <b>not</b> at the class load time of the outer class,
81 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost (visibility: PUBLIC, simpleName: SpacecraftCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
82 *
83 * <p> This workaround is required e.g. to support recursion.
84 *
85 */
86 private static class LazyHolder {
87 private static final SpacecraftCost INSTANCE = new SpacecraftCost();
88
89 /**
90 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
91 * This initialization order is required to support indirect recursion.
92 *
93 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
94 *
95 */
96 private static final Object STATIC_INITIALIZER = ensureInitialized();
97
98 public static Object ensureInitialized() {
99 INSTANCE.ensureInitializedInternal();
100 return null;
101 }
102 }
103
104 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
105 private static final SpacecraftCost.GeneratedPQuery INSTANCE = new GeneratedPQuery();
106
107 private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
108
109 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
110
111 private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
112
113 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft, parameter_Cost);
114
115 private GeneratedPQuery() {
116 super(PVisibility.PRIVATE);
117 }
118
119 @Override
120 public String getFullyQualifiedName() {
121 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftCost";
122 }
123
124 @Override
125 public List<String> getParameterNames() {
126 return Arrays.asList("Mission","Spacecraft","Cost");
127 }
128
129 @Override
130 public List<PParameter> getParameters() {
131 return parameters;
132 }
133
134 @Override
135 public Set<PBody> doGetContainedBodies() {
136 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
137 Set<PBody> bodies = new LinkedHashSet<>();
138 {
139 PBody body = new PBody(this);
140 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
141 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
142 PVariable var_Cost = body.getOrCreateVariableByName("Cost");
143 PVariable var_Kind = body.getOrCreateVariableByName("Kind");
144 PVariable var_KindCount = body.getOrCreateVariableByName("KindCount");
145 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
146 PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice");
147 PVariable var_InterferometryPayloadCost = body.getOrCreateVariableByName("InterferometryPayloadCost");
148 PVariable var_AdditionalCommSubsystemCost = body.getOrCreateVariableByName("AdditionalCommSubsystemCost");
149 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
150 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
151 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class));
152 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
153 new ExportedParameter(body, var_Mission, parameter_Mission),
154 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
155 new ExportedParameter(body, var_Cost, parameter_Cost)
156 ));
157 // ConstellationMission.spacecraft(Mission, Spacecraft)
158 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
159 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
160 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
161 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
162 new Equality(body, var__virtual_0_, var_Spacecraft);
163 // Spacecraft.kind(Spacecraft, Kind)
164 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
165 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
166 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
167 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
168 new Equality(body, var__virtual_1_, var_Kind);
169 // KindCount == count find spacecraftOfKind(_, Kind)
170 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
171 new PatternMatchCounter(body, Tuples.flatTupleOf(var___0_, var_Kind), SpacecraftOfKind.instance().getInternalQueryRepresentation(), var__virtual_2_);
172 new Equality(body, var_KindCount, var__virtual_2_);
173 // find basePrice(Spacecraft, BasePrice)
174 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_BasePrice), BasePrice.instance().getInternalQueryRepresentation());
175 // find interferometryPayloadCost(Spacecraft, InterferometryPayloadCost)
176 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_InterferometryPayloadCost), InterferometryPayloadCost.instance().getInternalQueryRepresentation());
177 // find additionalCommSubsystemCost(Spacecraft, AdditionalCommSubsystemCost)
178 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_AdditionalCommSubsystemCost), AdditionalCommSubsystemCost.instance().getInternalQueryRepresentation());
179 // Cost == eval(BasePrice * Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost)
180 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
181 new ExpressionEvaluation(body, new IExpressionEvaluator() {
182
183 @Override
184 public String getShortDescription() {
185 return "Expression evaluation from pattern spacecraftCost";
186 }
187
188 @Override
189 public Iterable<String> getInputParameterNames() {
190 return Arrays.asList("AdditionalCommSubsystemCost", "BasePrice", "InterferometryPayloadCost", "KindCount");}
191
192 @Override
193 public Object evaluateExpression(IValueProvider provider) throws Exception {
194 Double AdditionalCommSubsystemCost = (Double) provider.getValue("AdditionalCommSubsystemCost");
195 Double BasePrice = (Double) provider.getValue("BasePrice");
196 Double InterferometryPayloadCost = (Double) provider.getValue("InterferometryPayloadCost");
197 Integer KindCount = (Integer) provider.getValue("KindCount");
198 return evaluateExpression_1_1(AdditionalCommSubsystemCost, BasePrice, InterferometryPayloadCost, KindCount);
199 }
200 }, var__virtual_3_ );
201 new Equality(body, var_Cost, var__virtual_3_);
202 bodies.add(body);
203 }
204 return bodies;
205 }
206 }
207
208 private static double evaluateExpression_1_1(final Double AdditionalCommSubsystemCost, final Double BasePrice, final Double InterferometryPayloadCost, final Integer KindCount) {
209 double _pow = Math.pow((KindCount).intValue(), (-0.25));
210 double _multiply = ((BasePrice).doubleValue() * _pow);
211 double _plus = (_multiply + (InterferometryPayloadCost).doubleValue());
212 double _plus_1 = (_plus + (AdditionalCommSubsystemCost).doubleValue());
213 return _plus_1;
214 }
215}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.java
deleted file mode 100644
index 5e49aa58..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.java
+++ /dev/null
@@ -1,140 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EDataType;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
16import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
19import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
26import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
27
28/**
29 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
30 *
31 * <p>Original source:
32 * <code><pre>
33 * private pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) {
34 * Spacecraft.kind(Spacecraft, Kind);
35 * }
36 * </pre></code>
37 *
38 * @see GenericPatternMatcher
39 * @see GenericPatternMatch
40 *
41 */
42@SuppressWarnings("all")
43public final class SpacecraftOfKind extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
44 private SpacecraftOfKind() {
45 super(GeneratedPQuery.INSTANCE);
46 }
47
48 /**
49 * @return the singleton instance of the query specification
50 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
51 *
52 */
53 public static SpacecraftOfKind instance() {
54 try{
55 return LazyHolder.INSTANCE;
56 } catch (ExceptionInInitializerError err) {
57 throw processInitializerError(err);
58 }
59 }
60
61 /**
62 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
63 * <b>not</b> at the class load time of the outer class,
64 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
65 *
66 * <p> This workaround is required e.g. to support recursion.
67 *
68 */
69 private static class LazyHolder {
70 private static final SpacecraftOfKind INSTANCE = new SpacecraftOfKind();
71
72 /**
73 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
74 * This initialization order is required to support indirect recursion.
75 *
76 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
77 *
78 */
79 private static final Object STATIC_INITIALIZER = ensureInitialized();
80
81 public static Object ensureInitialized() {
82 INSTANCE.ensureInitializedInternal();
83 return null;
84 }
85 }
86
87 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
88 private static final SpacecraftOfKind.GeneratedPQuery INSTANCE = new GeneratedPQuery();
89
90 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
91
92 private final PParameter parameter_Kind = new PParameter("Kind", "hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "SpacecraftKind")), PParameterDirection.INOUT);
93
94 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Kind);
95
96 private GeneratedPQuery() {
97 super(PVisibility.PRIVATE);
98 }
99
100 @Override
101 public String getFullyQualifiedName() {
102 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind";
103 }
104
105 @Override
106 public List<String> getParameterNames() {
107 return Arrays.asList("Spacecraft","Kind");
108 }
109
110 @Override
111 public List<PParameter> getParameters() {
112 return parameters;
113 }
114
115 @Override
116 public Set<PBody> doGetContainedBodies() {
117 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
118 Set<PBody> bodies = new LinkedHashSet<>();
119 {
120 PBody body = new PBody(this);
121 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
122 PVariable var_Kind = body.getOrCreateVariableByName("Kind");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
124 new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
125 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
126 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
127 new ExportedParameter(body, var_Kind, parameter_Kind)
128 ));
129 // Spacecraft.kind(Spacecraft, Kind)
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
131 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind")));
133 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind")));
134 new Equality(body, var__virtual_0_, var_Kind);
135 bodies.add(body);
136 }
137 return bodies;
138 }
139 }
140}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java
deleted file mode 100644
index 966ff6f8..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java
+++ /dev/null
@@ -1,171 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EDataType;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
16import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
19import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
26import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
27
28/**
29 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
30 *
31 * <p>Original source:
32 * <code><pre>
33 * private pattern spacecraftUplink(Spacecraft : Spacecraft, Band : TransceiverBand, Target : CommunicatingElement) {
34 * CommunicatingElement.communicationLink(Spacecraft, Link);
35 * DirectedCommunicationLink.source.band(Link, Band);
36 * DirectedCommunicationLink.target(Link, TargetSubsystem);
37 * CommunicatingElement.commSubsystem(Target, TargetSubsystem);
38 * }
39 * </pre></code>
40 *
41 * @see GenericPatternMatcher
42 * @see GenericPatternMatch
43 *
44 */
45@SuppressWarnings("all")
46public final class SpacecraftUplink extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
47 private SpacecraftUplink() {
48 super(GeneratedPQuery.INSTANCE);
49 }
50
51 /**
52 * @return the singleton instance of the query specification
53 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
54 *
55 */
56 public static SpacecraftUplink instance() {
57 try{
58 return LazyHolder.INSTANCE;
59 } catch (ExceptionInInitializerError err) {
60 throw processInitializerError(err);
61 }
62 }
63
64 /**
65 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink (visibility: PUBLIC, simpleName: SpacecraftUplink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
66 * <b>not</b> at the class load time of the outer class,
67 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink (visibility: PUBLIC, simpleName: SpacecraftUplink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
68 *
69 * <p> This workaround is required e.g. to support recursion.
70 *
71 */
72 private static class LazyHolder {
73 private static final SpacecraftUplink INSTANCE = new SpacecraftUplink();
74
75 /**
76 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
77 * This initialization order is required to support indirect recursion.
78 *
79 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
80 *
81 */
82 private static final Object STATIC_INITIALIZER = ensureInitialized();
83
84 public static Object ensureInitialized() {
85 INSTANCE.ensureInitializedInternal();
86 return null;
87 }
88 }
89
90 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
91 private static final SpacecraftUplink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
92
93 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
94
95 private final PParameter parameter_Band = new PParameter("Band", "hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "TransceiverBand")), PParameterDirection.INOUT);
96
97 private final PParameter parameter_Target = new PParameter("Target", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
98
99 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Band, parameter_Target);
100
101 private GeneratedPQuery() {
102 super(PVisibility.PRIVATE);
103 }
104
105 @Override
106 public String getFullyQualifiedName() {
107 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftUplink";
108 }
109
110 @Override
111 public List<String> getParameterNames() {
112 return Arrays.asList("Spacecraft","Band","Target");
113 }
114
115 @Override
116 public List<PParameter> getParameters() {
117 return parameters;
118 }
119
120 @Override
121 public Set<PBody> doGetContainedBodies() {
122 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
123 Set<PBody> bodies = new LinkedHashSet<>();
124 {
125 PBody body = new PBody(this);
126 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
127 PVariable var_Band = body.getOrCreateVariableByName("Band");
128 PVariable var_Target = body.getOrCreateVariableByName("Target");
129 PVariable var_Link = body.getOrCreateVariableByName("Link");
130 PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem");
131 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Band), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
133 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
134 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
135 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
136 new ExportedParameter(body, var_Band, parameter_Band),
137 new ExportedParameter(body, var_Target, parameter_Target)
138 ));
139 // CommunicatingElement.communicationLink(Spacecraft, Link)
140 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
141 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
142 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "communicationLink")));
143 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
144 new Equality(body, var__virtual_0_, var_Link);
145 // DirectedCommunicationLink.source.band(Link, Band)
146 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
147 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
148 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
149 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
150 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
151 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
152 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
153 new Equality(body, var__virtual_2_, var_Band);
154 // DirectedCommunicationLink.target(Link, TargetSubsystem)
155 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
156 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
157 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target")));
158 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
159 new Equality(body, var__virtual_3_, var_TargetSubsystem);
160 // CommunicatingElement.commSubsystem(Target, TargetSubsystem)
161 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
162 PVariable var__virtual_4_ = body.getOrCreateVariableByName(".virtual{4}");
163 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_4_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
164 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
165 new Equality(body, var__virtual_4_, var_TargetSubsystem);
166 bodies.add(body);
167 }
168 return bodies;
169 }
170 }
171}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java
deleted file mode 100644
index 98f1be7b..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java
+++ /dev/null
@@ -1,146 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
25import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
26
27/**
28 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
29 *
30 * <p>Original source:
31 * <code><pre>
32 * private pattern spacecraftWithTwoCommSubsystems(Spacecraft : Spacecraft) {
33 * Spacecraft.commSubsystem(Spacecraft, Subsystem1);
34 * Spacecraft.commSubsystem(Spacecraft, Subsystem2);
35 * Subsystem1 != Subsystem2;
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class SpacecraftWithTwoCommSubsystems extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private SpacecraftWithTwoCommSubsystems() {
46 super(GeneratedPQuery.INSTANCE);
47 }
48
49 /**
50 * @return the singleton instance of the query specification
51 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
52 *
53 */
54 public static SpacecraftWithTwoCommSubsystems instance() {
55 try{
56 return LazyHolder.INSTANCE;
57 } catch (ExceptionInInitializerError err) {
58 throw processInitializerError(err);
59 }
60 }
61
62 /**
63 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems (visibility: PUBLIC, simpleName: SpacecraftWithTwoCommSubsystems, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
64 * <b>not</b> at the class load time of the outer class,
65 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems (visibility: PUBLIC, simpleName: SpacecraftWithTwoCommSubsystems, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
66 *
67 * <p> This workaround is required e.g. to support recursion.
68 *
69 */
70 private static class LazyHolder {
71 private static final SpacecraftWithTwoCommSubsystems INSTANCE = new SpacecraftWithTwoCommSubsystems();
72
73 /**
74 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
75 * This initialization order is required to support indirect recursion.
76 *
77 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
78 *
79 */
80 private static final Object STATIC_INITIALIZER = ensureInitialized();
81
82 public static Object ensureInitialized() {
83 INSTANCE.ensureInitializedInternal();
84 return null;
85 }
86 }
87
88 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
89 private static final SpacecraftWithTwoCommSubsystems.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
94
95 private GeneratedPQuery() {
96 super(PVisibility.PRIVATE);
97 }
98
99 @Override
100 public String getFullyQualifiedName() {
101 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithTwoCommSubsystems";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Spacecraft");
107 }
108
109 @Override
110 public List<PParameter> getParameters() {
111 return parameters;
112 }
113
114 @Override
115 public Set<PBody> doGetContainedBodies() {
116 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
117 Set<PBody> bodies = new LinkedHashSet<>();
118 {
119 PBody body = new PBody(this);
120 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
121 PVariable var_Subsystem1 = body.getOrCreateVariableByName("Subsystem1");
122 PVariable var_Subsystem2 = body.getOrCreateVariableByName("Subsystem2");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
124 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
125 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
126 ));
127 // Spacecraft.commSubsystem(Spacecraft, Subsystem1)
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
129 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
131 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
132 new Equality(body, var__virtual_0_, var_Subsystem1);
133 // Spacecraft.commSubsystem(Spacecraft, Subsystem2)
134 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
135 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
136 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
137 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
138 new Equality(body, var__virtual_1_, var_Subsystem2);
139 // Subsystem1 != Subsystem2
140 new Inequality(body, var_Subsystem1, var_Subsystem2);
141 bodies.add(body);
142 }
143 return bodies;
144 }
145 }
146}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java
deleted file mode 100644
index 2faa7733..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java
+++ /dev/null
@@ -1,277 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
26import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
27import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
28import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
29
30/**
31 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
32 *
33 * <p>Original source:
34 * <code><pre>
35 * private pattern transmitRate(Spacecraft : Spacecraft, TransmitRate : java Double) {
36 * find spacecraftUplink(Spacecraft, TransceiverBand::UHF, Target);
37 * Spacecraft(Target);
38 * TransmitRate == 5.0;
39 * } or {
40 * find spacecraftUplink(Spacecraft, TransceiverBand::X, Target);
41 * Spacecraft(Target);
42 * TransmitRate == 1.6;
43 * } or {
44 * find spacecraftUplink(Spacecraft, TransceiverBand::X, Target);
45 * GroundStationNetwork(Target);
46 * TransmitRate == 0.7;
47 * } or {
48 * find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target);
49 * Spacecraft(Target);
50 * TransmitRate == 220.0;
51 * } or {
52 * find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target);
53 * GroundStationNetwork(Target);
54 * TransmitRate == 80.0;
55 * }
56 * </pre></code>
57 *
58 * @see GenericPatternMatcher
59 * @see GenericPatternMatch
60 *
61 */
62@SuppressWarnings("all")
63public final class TransmitRate extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
64 private TransmitRate() {
65 super(GeneratedPQuery.INSTANCE);
66 }
67
68 /**
69 * @return the singleton instance of the query specification
70 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
71 *
72 */
73 public static TransmitRate instance() {
74 try{
75 return LazyHolder.INSTANCE;
76 } catch (ExceptionInInitializerError err) {
77 throw processInitializerError(err);
78 }
79 }
80
81 /**
82 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate (visibility: PUBLIC, simpleName: TransmitRate, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
83 * <b>not</b> at the class load time of the outer class,
84 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate (visibility: PUBLIC, simpleName: TransmitRate, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
85 *
86 * <p> This workaround is required e.g. to support recursion.
87 *
88 */
89 private static class LazyHolder {
90 private static final TransmitRate INSTANCE = new TransmitRate();
91
92 /**
93 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
94 * This initialization order is required to support indirect recursion.
95 *
96 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
97 *
98 */
99 private static final Object STATIC_INITIALIZER = ensureInitialized();
100
101 public static Object ensureInitialized() {
102 INSTANCE.ensureInitializedInternal();
103 return null;
104 }
105 }
106
107 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
108 private static final TransmitRate.GeneratedPQuery INSTANCE = new GeneratedPQuery();
109
110 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
111
112 private final PParameter parameter_TransmitRate = new PParameter("TransmitRate", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
113
114 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_TransmitRate);
115
116 private GeneratedPQuery() {
117 super(PVisibility.PRIVATE);
118 }
119
120 @Override
121 public String getFullyQualifiedName() {
122 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmitRate";
123 }
124
125 @Override
126 public List<String> getParameterNames() {
127 return Arrays.asList("Spacecraft","TransmitRate");
128 }
129
130 @Override
131 public List<PParameter> getParameters() {
132 return parameters;
133 }
134
135 @Override
136 public Set<PBody> doGetContainedBodies() {
137 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
138 Set<PBody> bodies = new LinkedHashSet<>();
139 {
140 PBody body = new PBody(this);
141 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
142 PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate");
143 PVariable var_Target = body.getOrCreateVariableByName("Target");
144 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
145 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class));
146 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
147 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
148 new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate)
149 ));
150 // find spacecraftUplink(Spacecraft, TransceiverBand::UHF, Target)
151 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
152 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "UHF").getInstance());
153 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation());
154 // Spacecraft(Target)
155 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
156 // TransmitRate == 5.0
157 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
158 new ConstantValue(body, var__virtual_1_, 5.0);
159 new Equality(body, var_TransmitRate, var__virtual_1_);
160 bodies.add(body);
161 }
162 {
163 PBody body = new PBody(this);
164 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
165 PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate");
166 PVariable var_Target = body.getOrCreateVariableByName("Target");
167 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
168 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class));
169 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
170 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
171 new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate)
172 ));
173 // find spacecraftUplink(Spacecraft, TransceiverBand::X, Target)
174 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
175 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "X").getInstance());
176 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation());
177 // Spacecraft(Target)
178 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
179 // TransmitRate == 1.6
180 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
181 new ConstantValue(body, var__virtual_1_, 1.6);
182 new Equality(body, var_TransmitRate, var__virtual_1_);
183 bodies.add(body);
184 }
185 {
186 PBody body = new PBody(this);
187 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
188 PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate");
189 PVariable var_Target = body.getOrCreateVariableByName("Target");
190 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
191 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class));
192 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
193 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
194 new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate)
195 ));
196 // find spacecraftUplink(Spacecraft, TransceiverBand::X, Target)
197 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
198 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "X").getInstance());
199 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation());
200 // GroundStationNetwork(Target)
201 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
202 // TransmitRate == 0.7
203 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
204 new ConstantValue(body, var__virtual_1_, 0.7);
205 new Equality(body, var_TransmitRate, var__virtual_1_);
206 bodies.add(body);
207 }
208 {
209 PBody body = new PBody(this);
210 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
211 PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate");
212 PVariable var_Target = body.getOrCreateVariableByName("Target");
213 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
214 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class));
215 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
216 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
217 new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate)
218 ));
219 // find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target)
220 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
221 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "Ka").getInstance());
222 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation());
223 // Spacecraft(Target)
224 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
225 // TransmitRate == 220.0
226 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
227 new ConstantValue(body, var__virtual_1_, 220.0);
228 new Equality(body, var_TransmitRate, var__virtual_1_);
229 bodies.add(body);
230 }
231 {
232 PBody body = new PBody(this);
233 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
234 PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate");
235 PVariable var_Target = body.getOrCreateVariableByName("Target");
236 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
237 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class));
238 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
239 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
240 new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate)
241 ));
242 // find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target)
243 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
244 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "Ka").getInstance());
245 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation());
246 // GroundStationNetwork(Target)
247 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
248 // TransmitRate == 80.0
249 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
250 new ConstantValue(body, var__virtual_1_, 80.0);
251 new Equality(body, var_TransmitRate, var__virtual_1_);
252 bodies.add(body);
253 }
254 return bodies;
255 }
256 }
257
258 private static double evaluateExpression_1_1() {
259 return 5.0;
260 }
261
262 private static double evaluateExpression_2_1() {
263 return 1.6;
264 }
265
266 private static double evaluateExpression_3_1() {
267 return 0.7;
268 }
269
270 private static double evaluateExpression_4_1() {
271 return 220.0;
272 }
273
274 private static double evaluateExpression_5_1() {
275 return 80.0;
276 }
277}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java
deleted file mode 100644
index eb338bec..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java
+++ /dev/null
@@ -1,200 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate;
9import java.util.Arrays;
10import java.util.LinkedHashSet;
11import java.util.List;
12import java.util.Set;
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
15import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
16import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
17import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
18import org.eclipse.viatra.query.runtime.matchers.aggregators.sum;
19import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
20import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
21import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
22import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
23import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
24import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
28import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
34import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.xtext.xbase.lib.DoubleExtensions;
37
38/**
39 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * private pattern transmitTime(Mission : InterferometryMission, Spacecraft : Spacecraft, TransmitTime : java Double) {
44 * ConstellationMission.spacecraft(Mission, Spacecraft);
45 * find scienceData(Spacecraft, ScienceData);
46 * IncomingData == sum find incomingData(Spacecraft, _, #_);
47 * find transmitRate(Spacecraft, TransmitRate);
48 * TransmitTime == eval((ScienceData + IncomingData) / (7.5 TransmitRate));
49 * }
50 * </pre></code>
51 *
52 * @see GenericPatternMatcher
53 * @see GenericPatternMatch
54 *
55 */
56@SuppressWarnings("all")
57public final class TransmitTime extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
58 private TransmitTime() {
59 super(GeneratedPQuery.INSTANCE);
60 }
61
62 /**
63 * @return the singleton instance of the query specification
64 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
65 *
66 */
67 public static TransmitTime instance() {
68 try{
69 return LazyHolder.INSTANCE;
70 } catch (ExceptionInInitializerError err) {
71 throw processInitializerError(err);
72 }
73 }
74
75 /**
76 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime (visibility: PUBLIC, simpleName: TransmitTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
77 * <b>not</b> at the class load time of the outer class,
78 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime (visibility: PUBLIC, simpleName: TransmitTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
79 *
80 * <p> This workaround is required e.g. to support recursion.
81 *
82 */
83 private static class LazyHolder {
84 private static final TransmitTime INSTANCE = new TransmitTime();
85
86 /**
87 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
88 * This initialization order is required to support indirect recursion.
89 *
90 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
91 *
92 */
93 private static final Object STATIC_INITIALIZER = ensureInitialized();
94
95 public static Object ensureInitialized() {
96 INSTANCE.ensureInitializedInternal();
97 return null;
98 }
99 }
100
101 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
102 private static final TransmitTime.GeneratedPQuery INSTANCE = new GeneratedPQuery();
103
104 private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
105
106 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
107
108 private final PParameter parameter_TransmitTime = new PParameter("TransmitTime", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
109
110 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft, parameter_TransmitTime);
111
112 private GeneratedPQuery() {
113 super(PVisibility.PRIVATE);
114 }
115
116 @Override
117 public String getFullyQualifiedName() {
118 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmitTime";
119 }
120
121 @Override
122 public List<String> getParameterNames() {
123 return Arrays.asList("Mission","Spacecraft","TransmitTime");
124 }
125
126 @Override
127 public List<PParameter> getParameters() {
128 return parameters;
129 }
130
131 @Override
132 public Set<PBody> doGetContainedBodies() {
133 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
134 Set<PBody> bodies = new LinkedHashSet<>();
135 {
136 PBody body = new PBody(this);
137 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
138 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
139 PVariable var_TransmitTime = body.getOrCreateVariableByName("TransmitTime");
140 PVariable var_ScienceData = body.getOrCreateVariableByName("ScienceData");
141 PVariable var_IncomingData = body.getOrCreateVariableByName("IncomingData");
142 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
143 PVariable var___1_ = body.getOrCreateVariableByName("_<1>");
144 PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate");
145 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
146 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
147 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitTime), new JavaTransitiveInstancesKey(java.lang.Double.class));
148 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
149 new ExportedParameter(body, var_Mission, parameter_Mission),
150 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft),
151 new ExportedParameter(body, var_TransmitTime, parameter_TransmitTime)
152 ));
153 // ConstellationMission.spacecraft(Mission, Spacecraft)
154 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
155 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
156 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
157 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
158 new Equality(body, var__virtual_0_, var_Spacecraft);
159 // find scienceData(Spacecraft, ScienceData)
160 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_ScienceData), ScienceData.instance().getInternalQueryRepresentation());
161 // IncomingData == sum find incomingData(Spacecraft, _, #_)
162 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
163 new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var_Spacecraft, var___0_, var___1_), IncomingData.instance().getInternalQueryRepresentation(), var__virtual_1_, 2);
164 new Equality(body, var_IncomingData, var__virtual_1_);
165 // find transmitRate(Spacecraft, TransmitRate)
166 new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_TransmitRate), TransmitRate.instance().getInternalQueryRepresentation());
167 // TransmitTime == eval((ScienceData + IncomingData) / (7.5 * TransmitRate))
168 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
169 new ExpressionEvaluation(body, new IExpressionEvaluator() {
170
171 @Override
172 public String getShortDescription() {
173 return "Expression evaluation from pattern transmitTime";
174 }
175
176 @Override
177 public Iterable<String> getInputParameterNames() {
178 return Arrays.asList("IncomingData", "ScienceData", "TransmitRate");}
179
180 @Override
181 public Object evaluateExpression(IValueProvider provider) throws Exception {
182 Double IncomingData = (Double) provider.getValue("IncomingData");
183 Double ScienceData = (Double) provider.getValue("ScienceData");
184 Double TransmitRate = (Double) provider.getValue("TransmitRate");
185 return evaluateExpression_1_1(IncomingData, ScienceData, TransmitRate);
186 }
187 }, var__virtual_2_ );
188 new Equality(body, var_TransmitTime, var__virtual_2_);
189 bodies.add(body);
190 }
191 return bodies;
192 }
193 }
194
195 private static double evaluateExpression_1_1(final Double IncomingData, final Double ScienceData, final Double TransmitRate) {
196 double _plus = DoubleExtensions.operator_plus(ScienceData, IncomingData);
197 double _divide = (_plus / (7.5 * (TransmitRate).doubleValue()));
198 return _divide;
199 }
200}
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 7ca948cc..40553e29 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
@@ -13,8 +13,8 @@ pattern communicationLinkDoesNotStartAtContainingElement(Link : DirectedCommunic
13 13
14// At least two spacecraft must have the interferometry payload configured 14// At least two spacecraft must have the interferometry payload configured
15 15
16//@Constraint(severity = "error", key = {Mission}, 16@Constraint(severity = "error", key = {Mission},
17// message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.") 17 message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
18pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) { 18pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
19 InterferometryMission(Mission); 19 InterferometryMission(Mission);
20 neg find atLeastTwoInterferometryPayloads(Mission); 20 neg find atLeastTwoInterferometryPayloads(Mission);
@@ -42,6 +42,41 @@ pattern noLinkToGroundStation(Spacecraft : Spacecraft) {
42 neg find indirectCommunicationLink(Spacecraft, GroundStation); 42 neg find indirectCommunicationLink(Spacecraft, GroundStation);
43} 43}
44 44
45@Constraint(severity = "error", key = {Spacecraft},
46 message = "Spacecraft has no potential communication path to the ground station.")
47pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) {
48 ConstellationMission.groundStationNetwork(Mission, GroundStation);
49 ConstellationMission.spacecraft(Mission, Spacecraft);
50 neg find indirectLinkAllowed(Spacecraft, GroundStation);
51}
52
53private pattern indirectLinkAllowed(From : Spacecraft, To : CommunicatingElement) {
54 find linkAllowed+(From, To);
55}
56
57private pattern linkAllowed(From : Spacecraft, To : CommunicatingElement) {
58 find matchingAntenna(From, To, _);
59 neg find cubeSat3U(From);
60} or {
61 find matchingAntenna(From, To, TransceiverBand::UHF);
62 CubeSat3U(From);
63} or {
64 find matchingAntenna(From, To, _);
65 CubeSat3U(From);
66 GroundStationNetwork(To);
67}
68
69private pattern matchingAntenna(From : Spacecraft, To : CommunicatingElement, Band : TransceiverBand) {
70 CommunicatingElement.commSubsystem.band(From, Band);
71 CommunicatingElement.commSubsystem.band(To, Band);
72 CommunicatingElement.commSubsystem.gain(From, Gain);
73 CommunicatingElement.commSubsystem.gain(To, Gain);
74}
75
76private pattern cubeSat3U(Sat : CubeSat3U) {
77 CubeSat3U(Sat);
78}
79
45// No communication loops may exist 80// No communication loops may exist
46// No spacecraft may directly communicate with itself 81// No spacecraft may directly communicate with itself
47 82
@@ -133,8 +168,7 @@ pattern kaAntennaGainLow(Comm : CommSubsystem) {
133 168
134@Constraint(severity = "error", key = {Sat}, 169@Constraint(severity = "error", key = {Sat},
135 message = "3U CubeSats can only cross-link using UHF.") 170 message = "3U CubeSats can only cross-link using UHF.")
136pattern threeUCubeSatWithNonUhfCrossLink(Sat : Spacecraft) { 171pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
137 Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U);
138 CommunicatingElement.commSubsystem(Sat, SourceComm); 172 CommunicatingElement.commSubsystem(Sat, SourceComm);
139 neg find commSubsystemBandUhf(SourceComm); 173 neg find commSubsystemBandUhf(SourceComm);
140 DirectedCommunicationLink.source(Link, SourceComm); 174 DirectedCommunicationLink.source(Link, SourceComm);
@@ -160,10 +194,23 @@ pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) {
160 neg find smallSat(Spacecraft); 194 neg find smallSat(Spacecraft);
161} 195}
162 196
163private pattern smallSat(Sat : Spacecraft) { 197pattern smallSat(Sat : SmallSat) {
164 Spacecraft.kind(Sat, SpacecraftKind::SmallSat); 198 SmallSat(Sat);
165} 199}
166 200
201@QueryBasedFeature(feature = "kind")
202pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) {
203 CubeSat3U(Spacecraft);
204 Kind == SpacecraftKind::CubeSat3U;
205} or {
206 CubeSat6U(Spacecraft);
207 Kind == SpacecraftKind::CubeSat6U;
208} or {
209 SmallSat(Spacecraft);
210 Kind == SpacecraftKind::SmallSat;
211}
212
213/*
167// 214//
168// Metrics 215// Metrics
169// 216//
@@ -262,10 +309,6 @@ private pattern spacecraftCost(Mission : InterferometryMission, Spacecraft : Spa
262 Cost == eval(BasePrice * Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost); 309 Cost == eval(BasePrice * Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost);
263} 310}
264 311
265private pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) {
266 Spacecraft.kind(Spacecraft, Kind);
267}
268
269private pattern basePrice(Spacecraft : Spacecraft, BasePrice : java Double) { 312private pattern basePrice(Spacecraft : Spacecraft, BasePrice : java Double) {
270 Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U); 313 Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U);
271 BasePrice == 250000.0; 314 BasePrice == 250000.0;
@@ -298,3 +341,4 @@ private pattern spacecraftWithTwoCommSubsystems(Spacecraft : Spacecraft) {
298 Spacecraft.commSubsystem(Spacecraft, Subsystem2); 341 Spacecraft.commSubsystem(Spacecraft, Subsystem2);
299 Subsystem1 != Subsystem2; 342 Subsystem1 != Subsystem2;
300} 343}
344*/ \ No newline at end of file
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.SatelliteGeneratorMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.SatelliteGeneratorMain.xtendbin
new file mode 100644
index 00000000..2f1887a8
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.SatelliteGeneratorMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java
new file mode 100644
index 00000000..f6890163
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java
@@ -0,0 +1,15 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.runner;
2
3import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor;
4import org.eclipse.xtext.xbase.lib.InputOutput;
5
6@SuppressWarnings("all")
7public final class SatelliteGeneratorMain {
8 private SatelliteGeneratorMain() {
9 throw new IllegalStateException("This is a static utility class and should not be instantiated directly.");
10 }
11
12 public static void main(final String[] args) {
13 InputOutput.<String>println(StandaloneScriptExecutor.executeScript("configs/generation.vsconfig"));
14 }
15}
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
index 6ff867d7..077fea21 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
@@ -20,6 +20,7 @@ import java.util.List;
20import java.util.PriorityQueue; 20import java.util.PriorityQueue;
21import java.util.Random; 21import java.util.Random;
22 22
23import org.apache.log4j.Level;
23import org.apache.log4j.Logger; 24import org.apache.log4j.Logger;
24import org.eclipse.emf.ecore.util.EcoreUtil; 25import org.eclipse.emf.ecore.util.EcoreUtil;
25import org.eclipse.viatra.dse.api.strategy.interfaces.IStrategy; 26import org.eclipse.viatra.dse.api.strategy.interfaces.IStrategy;
@@ -93,6 +94,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
93 this.workspace = workspace; 94 this.workspace = workspace;
94 this.configuration = configuration; 95 this.configuration = configuration;
95 this.method = method; 96 this.method = method;
97 //logger.setLevel(Level.DEBUG);
96 } 98 }
97 99
98 public int getNumberOfStatecoderFail() { 100 public int getNumberOfStatecoderFail() {