aboutsummaryrefslogtreecommitdiffstats
path: root/Domains
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-04-15 16:23:19 +0200
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-04-15 16:23:19 +0200
commit2531cfb60d747c261a20201415728beb0e24ab9b (patch)
tree0d7a242c674d735879e8c017bda7212e7ad02df2 /Domains
parentMake diversity checking work with optimization (diff)
downloadVIATRA-Generator-2531cfb60d747c261a20201415728beb0e24ab9b.tar.gz
VIATRA-Generator-2531cfb60d747c261a20201415728beb0e24ab9b.tar.zst
VIATRA-Generator-2531cfb60d747c261a20201415728beb0e24ab9b.zip
Satellite constellation case study WIP
Diffstat (limited to 'Domains')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.classpath7
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.project29
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/META-INF/MANIFEST.MF7
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/README.md7
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird828
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.ecore81
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.genmodel62
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath10
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project41
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF23
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/build.properties11
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig25
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/AntennaGain.java242
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CommSubsystem.java83
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CommunicatingElement.java69
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/ConstellationMission.java69
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/DirectedCommunicationLink.java77
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/GroundStationNetwork.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryMission.java49
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryPayload.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Payload.java18
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java105
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java1137
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SmallSat.java16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java48
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/TransceiverBand.java242
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommSubsystemImpl.java226
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommunicatingElementImpl.java237
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/ConstellationMissionImpl.java237
-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/DirectedCommunicationLinkImpl.java227
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/GroundStationNetworkImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryMissionImpl.java166
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryPayloadImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/PayloadImpl.java39
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java268
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java624
-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.java184
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java328
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java374
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird2121
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore50
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel54
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated3021
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem1759
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel161
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml1517
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.pngbin0 -> 230457 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi19
-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.pngbin0 -> 211085 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.pngbin0 -> 206387 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.pngbin0 -> 209322 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.pngbin0 -> 204074 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.csv3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.properties4
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml22
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java579
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java557
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java573
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java586
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetGain.java582
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/KaAntennaGainLow.java574
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java575
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java548
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java163
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java600
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/UhfAntennaGainNotLow.java576
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/XAntennaGainNotMedium.java570
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore15
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java138
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBand.java140
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java138
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGain.java140
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainLow.java138
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainMedium.java138
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java162
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java127
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java134
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java105
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SmallSat.java127
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java149
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql164
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend13
-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/.gitignore1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java15
102 files changed, 31477 insertions, 0 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.classpath b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.classpath
new file mode 100644
index 00000000..22f30643
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.classpath
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
5 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
6 <classpathentry kind="output" path="bin"/>
7</classpath>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.project b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.project
new file mode 100644
index 00000000..994e7632
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.project
@@ -0,0 +1,29 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>hu.bme.mit.inf.dslreasoner.domains.cps</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.pde.ManifestBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.pde.SchemaBuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 </buildSpec>
24 <natures>
25 <nature>org.eclipse.sirius.nature.modelingproject</nature>
26 <nature>org.eclipse.jdt.core.javanature</nature>
27 <nature>org.eclipse.pde.PluginNature</nature>
28 </natures>
29</projectDescription>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/META-INF/MANIFEST.MF b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..4d2fd769
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: hu.bme.mit.inf.dslreasoner.domains.cps
4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.domains.cps; singleton:=true
5Bundle-Version: 0.1.0.qualifier
6Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
7 org.eclipse.core.runtime
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/README.md b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/README.md
new file mode 100644
index 00000000..986663fd
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/README.md
@@ -0,0 +1,7 @@
1# Cyber Physical System case study for VIATRA Solver
2
3## Modifications to the metamodel
4
5* Removed the `State` enumeration and the `ApplicationInstance.state` attribute, as we are only optimizing static configurations of applications instead of deployment strategies.
6* Added `ApplicationInstance.requirement` as an opposite reference of `Requirement.instances` with multiplicity `[1..1]` to ensure that each `ApplicationInstance` satisfies exactly one `Requirement`.
7* Marked `HostInstance.availableMemory`, `availableHdd`, `totalMemory`, `totalHdd` as derived. The values of `availableMemory` and `availableHdd` can be computed from `totalMemory`, `totalHdd` and the `ResourceRequirement`s associated with the `ApplicationInstances` allocated to the `HostInstance`, while `totalMemory` and `totalHdd` are always equal to `HostType.defaultMemory` and `defaultHdd`. \ No newline at end of file
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird
new file mode 100644
index 00000000..d94d68b4
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird
@@ -0,0 +1,828 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
3 <viewpoint:DAnalysis uid="_kQWZMFvMEemLJtrAOuDPFQ" selectedViews="_kSYZgFvMEemLJtrAOuDPFQ" version="14.1.0.201810161215">
4 <semanticResources>cps.ecore</semanticResources>
5 <semanticResources>cps.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_kSYZgFvMEemLJtrAOuDPFQ">
7 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_kTNf8FvMEemLJtrAOuDPFQ" name="cps" repPath="#_kSw0AFvMEemLJtrAOuDPFQ">
9 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
10 <target xmi:type="ecore:EPackage" href="cps.ecore#/"/>
11 </ownedRepresentationDescriptors>
12 </ownedViews>
13 </viewpoint:DAnalysis>
14 <diagram:DSemanticDiagram uid="_kSw0AFvMEemLJtrAOuDPFQ" name="cps">
15 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_kTLqwFvMEemLJtrAOuDPFQ" source="DANNOTATION_CUSTOMIZATION_KEY">
16 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_kTLqwVvMEemLJtrAOuDPFQ">
17 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_-5WboFvNEemLJtrAOuDPFQ" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
18 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
19 <labelFormat>bold</labelFormat>
20 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
21 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
22 </computedStyleDescriptions>
23 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_CU6KQFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan">
24 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
25 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_CU6KQVvTEemLJtrAOuDPFQ" showIcon="false" labelExpression="service:render">
26 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
27 </centerLabelStyleDescription>
28 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_CU6KQlvTEemLJtrAOuDPFQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
29 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
30 </endLabelStyleDescription>
31 </computedStyleDescriptions>
32 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_KkeMsFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan">
33 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
34 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_KkeMsVvTEemLJtrAOuDPFQ" showIcon="false" labelExpression="service:renderEOpposite">
35 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
36 </beginLabelStyleDescription>
37 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_KkeMslvTEemLJtrAOuDPFQ" showIcon="false" labelExpression="service:render">
38 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
39 </endLabelStyleDescription>
40 </computedStyleDescriptions>
41 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_PIc4wFvUEemLJtrAOuDPFQ" routingStyle="manhattan">
42 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
43 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_PIc4wVvUEemLJtrAOuDPFQ" showIcon="false" labelExpression="service:render">
44 <labelFormat>bold</labelFormat>
45 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
46 </centerLabelStyleDescription>
47 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_PIc4wlvUEemLJtrAOuDPFQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
48 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
49 </endLabelStyleDescription>
50 </computedStyleDescriptions>
51 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_8rRg4lvVEemLJtrAOuDPFQ" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
52 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
53 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
54 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
55 </computedStyleDescriptions>
56 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_QukvxlvZEemLJtrAOuDPFQ" routingStyle="manhattan">
57 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
58 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_Qukvx1vZEemLJtrAOuDPFQ" showIcon="false" labelExpression="service:render">
59 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
60 </centerLabelStyleDescription>
61 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_QukvyFvZEemLJtrAOuDPFQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
62 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
63 </endLabelStyleDescription>
64 </computedStyleDescriptions>
65 </data>
66 </ownedAnnotationEntries>
67 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_kTOHAFvMEemLJtrAOuDPFQ" source="GMF_DIAGRAMS">
68 <data xmi:type="notation:Diagram" xmi:id="_kTOHAVvMEemLJtrAOuDPFQ" type="Sirius" element="_kSw0AFvMEemLJtrAOuDPFQ" measurementUnit="Pixel">
69 <children xmi:type="notation:Node" xmi:id="_IuOrgFvNEemLJtrAOuDPFQ" type="2003" element="_Itg50FvNEemLJtrAOuDPFQ">
70 <children xmi:type="notation:Node" xmi:id="_IuS88FvNEemLJtrAOuDPFQ" type="5007"/>
71 <children xmi:type="notation:Node" xmi:id="_IuWnUFvNEemLJtrAOuDPFQ" type="7004">
72 <styles xmi:type="notation:SortingStyle" xmi:id="_IuWnUVvNEemLJtrAOuDPFQ"/>
73 <styles xmi:type="notation:FilteringStyle" xmi:id="_IuWnUlvNEemLJtrAOuDPFQ"/>
74 </children>
75 <styles xmi:type="notation:ShapeStyle" xmi:id="_IuOrgVvNEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
76 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IuOrglvNEemLJtrAOuDPFQ" x="503" y="30" width="138" height="100"/>
77 </children>
78 <children xmi:type="notation:Node" xmi:id="_8icOoFvNEemLJtrAOuDPFQ" type="2003" element="_8iM-EFvNEemLJtrAOuDPFQ">
79 <children xmi:type="notation:Node" xmi:id="_8idcwFvNEemLJtrAOuDPFQ" type="5007"/>
80 <children xmi:type="notation:Node" xmi:id="_8idcwVvNEemLJtrAOuDPFQ" type="7004">
81 <styles xmi:type="notation:SortingStyle" xmi:id="_8idcwlvNEemLJtrAOuDPFQ"/>
82 <styles xmi:type="notation:FilteringStyle" xmi:id="_8idcw1vNEemLJtrAOuDPFQ"/>
83 </children>
84 <styles xmi:type="notation:ShapeStyle" xmi:id="_8icOoVvNEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
85 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8icOolvNEemLJtrAOuDPFQ" x="270" y="210" width="120" height="100"/>
86 </children>
87 <children xmi:type="notation:Node" xmi:id="_FZ9o8FvOEemLJtrAOuDPFQ" type="2003" element="_FZ1GEFvOEemLJtrAOuDPFQ">
88 <children xmi:type="notation:Node" xmi:id="_FZ9o81vOEemLJtrAOuDPFQ" type="5007"/>
89 <children xmi:type="notation:Node" xmi:id="_FZ-QAFvOEemLJtrAOuDPFQ" type="7004">
90 <children xmi:type="notation:Node" xmi:id="_XxoccFvREemLJtrAOuDPFQ" type="3010" element="_Xxc2QFvREemLJtrAOuDPFQ">
91 <styles xmi:type="notation:FontStyle" xmi:id="_XxoccVvREemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
92 <layoutConstraint xmi:type="notation:Location" xmi:id="_XxocclvREemLJtrAOuDPFQ"/>
93 </children>
94 <children xmi:type="notation:Node" xmi:id="_bL_qgFvREemLJtrAOuDPFQ" type="3010" element="_bLzdQFvREemLJtrAOuDPFQ">
95 <styles xmi:type="notation:FontStyle" xmi:id="_bL_qgVvREemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
96 <layoutConstraint xmi:type="notation:Location" xmi:id="_bL_qglvREemLJtrAOuDPFQ"/>
97 </children>
98 <styles xmi:type="notation:SortingStyle" xmi:id="_FZ-QAVvOEemLJtrAOuDPFQ"/>
99 <styles xmi:type="notation:FilteringStyle" xmi:id="_FZ-QAlvOEemLJtrAOuDPFQ"/>
100 </children>
101 <styles xmi:type="notation:ShapeStyle" xmi:id="_FZ9o8VvOEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
102 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FZ9o8lvOEemLJtrAOuDPFQ" x="750" y="210" width="153" height="100"/>
103 </children>
104 <children xmi:type="notation:Node" xmi:id="_jfOE8FvREemLJtrAOuDPFQ" type="2003" element="_jfFiEFvREemLJtrAOuDPFQ">
105 <children xmi:type="notation:Node" xmi:id="_jfOE81vREemLJtrAOuDPFQ" type="5007"/>
106 <children xmi:type="notation:Node" xmi:id="_jfOE9FvREemLJtrAOuDPFQ" type="7004">
107 <styles xmi:type="notation:SortingStyle" xmi:id="_jfOE9VvREemLJtrAOuDPFQ"/>
108 <styles xmi:type="notation:FilteringStyle" xmi:id="_jfOE9lvREemLJtrAOuDPFQ"/>
109 </children>
110 <styles xmi:type="notation:ShapeStyle" xmi:id="_jfOE8VvREemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
111 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jfOE8lvREemLJtrAOuDPFQ" x="30" y="30" width="120" height="100"/>
112 </children>
113 <children xmi:type="notation:Node" xmi:id="_p1JFMFvREemLJtrAOuDPFQ" type="2003" element="_p05NkFvREemLJtrAOuDPFQ">
114 <children xmi:type="notation:Node" xmi:id="_p1JsQFvREemLJtrAOuDPFQ" type="5007"/>
115 <children xmi:type="notation:Node" xmi:id="_p1JsQVvREemLJtrAOuDPFQ" type="7004">
116 <children xmi:type="notation:Node" xmi:id="_NsXKsFvTEemLJtrAOuDPFQ" type="3010" element="_Nr-JIFvTEemLJtrAOuDPFQ">
117 <styles xmi:type="notation:FontStyle" xmi:id="_NsXKsVvTEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
118 <layoutConstraint xmi:type="notation:Location" xmi:id="_NsXKslvTEemLJtrAOuDPFQ"/>
119 </children>
120 <styles xmi:type="notation:SortingStyle" xmi:id="_p1JsQlvREemLJtrAOuDPFQ"/>
121 <styles xmi:type="notation:FilteringStyle" xmi:id="_p1JsQ1vREemLJtrAOuDPFQ"/>
122 </children>
123 <styles xmi:type="notation:ShapeStyle" xmi:id="_p1JFMVvREemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
124 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p1JFMlvREemLJtrAOuDPFQ" x="30" y="210" width="120" height="100"/>
125 </children>
126 <children xmi:type="notation:Node" xmi:id="_vI6r8FvREemLJtrAOuDPFQ" type="2003" element="_vIvs0FvREemLJtrAOuDPFQ">
127 <children xmi:type="notation:Node" xmi:id="_vI7TAFvREemLJtrAOuDPFQ" type="5007"/>
128 <children xmi:type="notation:Node" xmi:id="_vI7TAVvREemLJtrAOuDPFQ" type="7004">
129 <styles xmi:type="notation:SortingStyle" xmi:id="_vI7TAlvREemLJtrAOuDPFQ"/>
130 <styles xmi:type="notation:FilteringStyle" xmi:id="_vI7TA1vREemLJtrAOuDPFQ"/>
131 </children>
132 <styles xmi:type="notation:ShapeStyle" xmi:id="_vI6r8VvREemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
133 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vI6r8lvREemLJtrAOuDPFQ" x="261" y="390" width="138" height="100"/>
134 </children>
135 <children xmi:type="notation:Node" xmi:id="_PdzIkFvSEemLJtrAOuDPFQ" type="2003" element="_PdlGIFvSEemLJtrAOuDPFQ">
136 <children xmi:type="notation:Node" xmi:id="_PdzvoFvSEemLJtrAOuDPFQ" type="5007"/>
137 <children xmi:type="notation:Node" xmi:id="_PdzvoVvSEemLJtrAOuDPFQ" type="7004">
138 <children xmi:type="notation:Node" xmi:id="_ReTnwFvSEemLJtrAOuDPFQ" type="3010" element="_ReIBkFvSEemLJtrAOuDPFQ">
139 <styles xmi:type="notation:FontStyle" xmi:id="_ReTnwVvSEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
140 <layoutConstraint xmi:type="notation:Location" xmi:id="_ReTnwlvSEemLJtrAOuDPFQ"/>
141 </children>
142 <children xmi:type="notation:Node" xmi:id="_S48ZwFvSEemLJtrAOuDPFQ" type="3010" element="_S4npoFvSEemLJtrAOuDPFQ">
143 <styles xmi:type="notation:FontStyle" xmi:id="_S48ZwVvSEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
144 <layoutConstraint xmi:type="notation:Location" xmi:id="_S48ZwlvSEemLJtrAOuDPFQ"/>
145 </children>
146 <styles xmi:type="notation:SortingStyle" xmi:id="_PdzvolvSEemLJtrAOuDPFQ"/>
147 <styles xmi:type="notation:FilteringStyle" xmi:id="_Pdzvo1vSEemLJtrAOuDPFQ"/>
148 </children>
149 <styles xmi:type="notation:ShapeStyle" xmi:id="_PdzIkVvSEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
150 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdzIklvSEemLJtrAOuDPFQ" x="495" y="210" width="153" height="100"/>
151 </children>
152 <children xmi:type="notation:Node" xmi:id="_UoYsMFvUEemLJtrAOuDPFQ" type="2003" element="_UoGYUFvUEemLJtrAOuDPFQ">
153 <children xmi:type="notation:Node" xmi:id="_UoZTQFvUEemLJtrAOuDPFQ" type="5007"/>
154 <children xmi:type="notation:Node" xmi:id="_UoZTQVvUEemLJtrAOuDPFQ" type="7004">
155 <children xmi:type="notation:Node" xmi:id="_jPSrMFvUEemLJtrAOuDPFQ" type="3010" element="_jO97EFvUEemLJtrAOuDPFQ">
156 <styles xmi:type="notation:FontStyle" xmi:id="_jPSrMVvUEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
157 <layoutConstraint xmi:type="notation:Location" xmi:id="_jPSrMlvUEemLJtrAOuDPFQ"/>
158 </children>
159 <children xmi:type="notation:Node" xmi:id="_lZeDwFvUEemLJtrAOuDPFQ" type="3010" element="_lZB-4FvUEemLJtrAOuDPFQ">
160 <styles xmi:type="notation:FontStyle" xmi:id="_lZeDwVvUEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
161 <layoutConstraint xmi:type="notation:Location" xmi:id="_lZeDwlvUEemLJtrAOuDPFQ"/>
162 </children>
163 <children xmi:type="notation:Node" xmi:id="_n0xokFvUEemLJtrAOuDPFQ" type="3010" element="_n0acMFvUEemLJtrAOuDPFQ">
164 <styles xmi:type="notation:FontStyle" xmi:id="_n0xokVvUEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
165 <layoutConstraint xmi:type="notation:Location" xmi:id="_n0xoklvUEemLJtrAOuDPFQ"/>
166 </children>
167 <children xmi:type="notation:Node" xmi:id="_pHqMwFvUEemLJtrAOuDPFQ" type="3010" element="_pHVcoFvUEemLJtrAOuDPFQ">
168 <styles xmi:type="notation:FontStyle" xmi:id="_pHqMwVvUEemLJtrAOuDPFQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
169 <layoutConstraint xmi:type="notation:Location" xmi:id="_pHqMwlvUEemLJtrAOuDPFQ"/>
170 </children>
171 <styles xmi:type="notation:SortingStyle" xmi:id="_UoZTQlvUEemLJtrAOuDPFQ"/>
172 <styles xmi:type="notation:FilteringStyle" xmi:id="_UoZTQ1vUEemLJtrAOuDPFQ"/>
173 </children>
174 <styles xmi:type="notation:ShapeStyle" xmi:id="_UoYsMVvUEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
175 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UoYsMlvUEemLJtrAOuDPFQ" x="750" y="390" width="153" height="100"/>
176 </children>
177 <styles xmi:type="notation:DiagramStyle" xmi:id="_kTOHAlvMEemLJtrAOuDPFQ"/>
178 <edges xmi:type="notation:Edge" xmi:id="_CVagkFvTEemLJtrAOuDPFQ" type="4001" element="_CU3uAFvTEemLJtrAOuDPFQ" source="_IuOrgFvNEemLJtrAOuDPFQ" target="_jfOE8FvREemLJtrAOuDPFQ">
179 <children xmi:type="notation:Node" xmi:id="_CVcVwFvTEemLJtrAOuDPFQ" type="6001">
180 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CVcVwVvTEemLJtrAOuDPFQ" x="-3" y="11"/>
181 </children>
182 <children xmi:type="notation:Node" xmi:id="_CVc80FvTEemLJtrAOuDPFQ" type="6002">
183 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CVc80VvTEemLJtrAOuDPFQ" x="109" y="10"/>
184 </children>
185 <children xmi:type="notation:Node" xmi:id="_CVdj4FvTEemLJtrAOuDPFQ" type="6003">
186 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CVdj4VvTEemLJtrAOuDPFQ" x="19" y="10"/>
187 </children>
188 <styles xmi:type="notation:ConnectorStyle" xmi:id="_CVbHoFvTEemLJtrAOuDPFQ" routing="Rectilinear"/>
189 <styles xmi:type="notation:FontStyle" xmi:id="_CVbHoVvTEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
190 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CVbHolvTEemLJtrAOuDPFQ" points="[0, 0, 355, 0]$[-355, 0, 0, 0]"/>
191 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CVicYFvTEemLJtrAOuDPFQ" id="(0.0,0.5)"/>
192 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CVicYVvTEemLJtrAOuDPFQ" id="(1.0,0.5)"/>
193 </edges>
194 <edges xmi:type="notation:Edge" xmi:id="_IODu8FvTEemLJtrAOuDPFQ" type="4001" element="_INyCIFvTEemLJtrAOuDPFQ" source="_jfOE8FvREemLJtrAOuDPFQ" target="_p1JFMFvREemLJtrAOuDPFQ">
195 <children xmi:type="notation:Node" xmi:id="_IODu9FvTEemLJtrAOuDPFQ" type="6001">
196 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IODu9VvTEemLJtrAOuDPFQ" y="-10"/>
197 </children>
198 <children xmi:type="notation:Node" xmi:id="_IODu9lvTEemLJtrAOuDPFQ" type="6002">
199 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IODu91vTEemLJtrAOuDPFQ" x="3" y="-50"/>
200 </children>
201 <children xmi:type="notation:Node" xmi:id="_IOEWAFvTEemLJtrAOuDPFQ" type="6003">
202 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IOEWAVvTEemLJtrAOuDPFQ" x="-10" y="-62"/>
203 </children>
204 <styles xmi:type="notation:ConnectorStyle" xmi:id="_IODu8VvTEemLJtrAOuDPFQ" routing="Rectilinear"/>
205 <styles xmi:type="notation:FontStyle" xmi:id="_IODu8lvTEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
206 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IODu81vTEemLJtrAOuDPFQ" points="[0, 0, 0, -82]$[0, 82, 0, 0]"/>
207 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IOEWAlvTEemLJtrAOuDPFQ" id="(0.5,1.0)"/>
208 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IOEWA1vTEemLJtrAOuDPFQ" id="(0.5,0.0)"/>
209 </edges>
210 <edges xmi:type="notation:Edge" xmi:id="_XdMLkFvTEemLJtrAOuDPFQ" type="4001" element="_Xc3bc1vTEemLJtrAOuDPFQ" source="_p1JFMFvREemLJtrAOuDPFQ" target="_8icOoFvNEemLJtrAOuDPFQ">
211 <children xmi:type="notation:Node" xmi:id="_XdMLlFvTEemLJtrAOuDPFQ" type="6001">
212 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XdMLlVvTEemLJtrAOuDPFQ" x="-19" y="-11"/>
213 </children>
214 <children xmi:type="notation:Node" xmi:id="_XdMLllvTEemLJtrAOuDPFQ" type="6002">
215 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XdMLl1vTEemLJtrAOuDPFQ" y="10"/>
216 </children>
217 <children xmi:type="notation:Node" xmi:id="_XdMyoFvTEemLJtrAOuDPFQ" type="6003">
218 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XdMyoVvTEemLJtrAOuDPFQ" y="10"/>
219 </children>
220 <styles xmi:type="notation:ConnectorStyle" xmi:id="_XdMLkVvTEemLJtrAOuDPFQ" routing="Rectilinear"/>
221 <styles xmi:type="notation:FontStyle" xmi:id="_XdMLklvTEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
222 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XdMLk1vTEemLJtrAOuDPFQ" points="[0, 0, -122, 0]$[122, 0, 0, 0]"/>
223 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XdMyolvTEemLJtrAOuDPFQ" id="(1.0,0.5)"/>
224 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XdMyo1vTEemLJtrAOuDPFQ" id="(0.0,0.5)"/>
225 </edges>
226 <edges xmi:type="notation:Edge" xmi:id="_dUiZcFvTEemLJtrAOuDPFQ" type="4001" element="_dUZ2kFvTEemLJtrAOuDPFQ" source="_p1JFMFvREemLJtrAOuDPFQ" target="_vI6r8FvREemLJtrAOuDPFQ">
227 <children xmi:type="notation:Node" xmi:id="_dUiZdFvTEemLJtrAOuDPFQ" type="6001">
228 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dUiZdVvTEemLJtrAOuDPFQ" y="-10"/>
229 </children>
230 <children xmi:type="notation:Node" xmi:id="_dUiZdlvTEemLJtrAOuDPFQ" type="6002">
231 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dUiZd1vTEemLJtrAOuDPFQ" x="-17" y="-61"/>
232 </children>
233 <children xmi:type="notation:Node" xmi:id="_dUiZeFvTEemLJtrAOuDPFQ" type="6003">
234 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dUiZeVvTEemLJtrAOuDPFQ" x="-30" y="23"/>
235 </children>
236 <styles xmi:type="notation:ConnectorStyle" xmi:id="_dUiZcVvTEemLJtrAOuDPFQ" routing="Rectilinear"/>
237 <styles xmi:type="notation:FontStyle" xmi:id="_dUiZclvTEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
238 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dUiZc1vTEemLJtrAOuDPFQ" points="[0, 0, -171, -142]$[0, 142, -171, 0]$[171, 142, 0, 0]"/>
239 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dUiZelvTEemLJtrAOuDPFQ" id="(0.5084745762711864,1.0)"/>
240 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dUiZe1vTEemLJtrAOuDPFQ" id="(0.0,0.6122448979591837)"/>
241 </edges>
242 <edges xmi:type="notation:Edge" xmi:id="_jGlQkFvTEemLJtrAOuDPFQ" type="4001" element="_jGSVo1vTEemLJtrAOuDPFQ" source="_8icOoFvNEemLJtrAOuDPFQ" target="_vI6r8FvREemLJtrAOuDPFQ">
243 <children xmi:type="notation:Node" xmi:id="_jGlQlFvTEemLJtrAOuDPFQ" type="6001">
244 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jGl3oFvTEemLJtrAOuDPFQ" y="-10"/>
245 </children>
246 <children xmi:type="notation:Node" xmi:id="_jGl3oVvTEemLJtrAOuDPFQ" type="6002">
247 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jGl3olvTEemLJtrAOuDPFQ" x="3" y="-42"/>
248 </children>
249 <children xmi:type="notation:Node" xmi:id="_jGl3o1vTEemLJtrAOuDPFQ" type="6003">
250 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jGl3pFvTEemLJtrAOuDPFQ" x="-10" y="-54"/>
251 </children>
252 <styles xmi:type="notation:ConnectorStyle" xmi:id="_jGlQkVvTEemLJtrAOuDPFQ" routing="Rectilinear"/>
253 <styles xmi:type="notation:FontStyle" xmi:id="_jGlQklvTEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
254 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jGlQk1vTEemLJtrAOuDPFQ" points="[0, 0, 0, -82]$[0, 82, 0, 0]"/>
255 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jGl3pVvTEemLJtrAOuDPFQ" id="(0.5,1.0)"/>
256 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jGl3plvTEemLJtrAOuDPFQ" id="(0.5,0.0)"/>
257 </edges>
258 <edges xmi:type="notation:Edge" xmi:id="_GOZu4FvUEemLJtrAOuDPFQ" type="4001" element="_GOOItlvUEemLJtrAOuDPFQ" source="_8icOoFvNEemLJtrAOuDPFQ" target="_PdzIkFvSEemLJtrAOuDPFQ">
259 <children xmi:type="notation:Node" xmi:id="_GOZu5FvUEemLJtrAOuDPFQ" type="6001">
260 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GOZu5VvUEemLJtrAOuDPFQ" y="-10"/>
261 </children>
262 <children xmi:type="notation:Node" xmi:id="_GOZu5lvUEemLJtrAOuDPFQ" type="6002">
263 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GOZu51vUEemLJtrAOuDPFQ" y="10"/>
264 </children>
265 <children xmi:type="notation:Node" xmi:id="_GOZu6FvUEemLJtrAOuDPFQ" type="6003">
266 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GOZu6VvUEemLJtrAOuDPFQ" y="10"/>
267 </children>
268 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GOZu4VvUEemLJtrAOuDPFQ" routing="Rectilinear"/>
269 <styles xmi:type="notation:FontStyle" xmi:id="_GOZu4lvUEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
270 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GOZu41vUEemLJtrAOuDPFQ" points="[0, 0, -107, 0]$[107, 0, 0, 0]"/>
271 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GOZu6lvUEemLJtrAOuDPFQ" id="(1.0,0.5)"/>
272 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GOZu61vUEemLJtrAOuDPFQ" id="(0.0,0.5)"/>
273 </edges>
274 <edges xmi:type="notation:Edge" xmi:id="_OKpMsFvUEemLJtrAOuDPFQ" type="4001" element="_OKZ8IFvUEemLJtrAOuDPFQ" source="_PdzIkFvSEemLJtrAOuDPFQ" target="_FZ9o8FvOEemLJtrAOuDPFQ">
275 <children xmi:type="notation:Node" xmi:id="_OKpMtFvUEemLJtrAOuDPFQ" type="6001">
276 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OKpMtVvUEemLJtrAOuDPFQ" y="-10"/>
277 </children>
278 <children xmi:type="notation:Node" xmi:id="_OKpzwFvUEemLJtrAOuDPFQ" type="6002">
279 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OKpzwVvUEemLJtrAOuDPFQ" y="10"/>
280 </children>
281 <children xmi:type="notation:Node" xmi:id="_OKpzwlvUEemLJtrAOuDPFQ" type="6003">
282 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OKpzw1vUEemLJtrAOuDPFQ" y="10"/>
283 </children>
284 <styles xmi:type="notation:ConnectorStyle" xmi:id="_OKpMsVvUEemLJtrAOuDPFQ" routing="Rectilinear"/>
285 <styles xmi:type="notation:FontStyle" xmi:id="_OKpMslvUEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
286 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OKpMs1vUEemLJtrAOuDPFQ" points="[0, 0, -104, 0]$[104, 0, 0, 0]"/>
287 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OKpzxFvUEemLJtrAOuDPFQ" id="(1.0,0.5)"/>
288 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OKpzxVvUEemLJtrAOuDPFQ" id="(0.0,0.5)"/>
289 </edges>
290 <edges xmi:type="notation:Edge" xmi:id="_Ya-0EFvUEemLJtrAOuDPFQ" type="4001" element="_YawKkFvUEemLJtrAOuDPFQ" source="_FZ9o8FvOEemLJtrAOuDPFQ" target="_UoYsMFvUEemLJtrAOuDPFQ">
291 <children xmi:type="notation:Node" xmi:id="_Ya-0FFvUEemLJtrAOuDPFQ" type="6001">
292 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ya_bIFvUEemLJtrAOuDPFQ" y="-10"/>
293 </children>
294 <children xmi:type="notation:Node" xmi:id="_Ya_bIVvUEemLJtrAOuDPFQ" type="6002">
295 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ya_bIlvUEemLJtrAOuDPFQ" x="3" y="-40"/>
296 </children>
297 <children xmi:type="notation:Node" xmi:id="_Ya_bI1vUEemLJtrAOuDPFQ" type="6003">
298 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ya_bJFvUEemLJtrAOuDPFQ" x="-10" y="-53"/>
299 </children>
300 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Ya-0EVvUEemLJtrAOuDPFQ" routing="Rectilinear"/>
301 <styles xmi:type="notation:FontStyle" xmi:id="_Ya-0ElvUEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
302 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ya-0E1vUEemLJtrAOuDPFQ" points="[0, 0, 0, -82]$[0, 82, 0, 0]"/>
303 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya_bJVvUEemLJtrAOuDPFQ" id="(0.4966887417218543,1.0)"/>
304 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ya_bJlvUEemLJtrAOuDPFQ" id="(0.4966887417218543,0.0)"/>
305 </edges>
306 <edges xmi:type="notation:Edge" xmi:id="_Zl1ywFvWEemLJtrAOuDPFQ" type="4001" element="_ZlkF81vWEemLJtrAOuDPFQ" source="_vI6r8FvREemLJtrAOuDPFQ" target="_UoYsMFvUEemLJtrAOuDPFQ">
307 <children xmi:type="notation:Node" xmi:id="_Zl2Z0FvWEemLJtrAOuDPFQ" type="6001">
308 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zl2Z0VvWEemLJtrAOuDPFQ" x="9" y="-5"/>
309 </children>
310 <children xmi:type="notation:Node" xmi:id="_Zl3A4FvWEemLJtrAOuDPFQ" type="6002">
311 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zl3A4VvWEemLJtrAOuDPFQ" x="8" y="-11"/>
312 </children>
313 <children xmi:type="notation:Node" xmi:id="_Zl3A4lvWEemLJtrAOuDPFQ" type="6003">
314 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zl3A41vWEemLJtrAOuDPFQ" x="-9" y="-11"/>
315 </children>
316 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Zl1ywVvWEemLJtrAOuDPFQ" routing="Rectilinear"/>
317 <styles xmi:type="notation:FontStyle" xmi:id="_Zl1ywlvWEemLJtrAOuDPFQ" fontName="Noto Sans" fontHeight="8"/>
318 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Zl1yw1vWEemLJtrAOuDPFQ" points="[0, 11, -353, 0]$[353, 11, 0, 0]"/>
319 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zl3n8FvWEemLJtrAOuDPFQ" id="(1.0,0.5)"/>
320 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zl3n8VvWEemLJtrAOuDPFQ" id="(0.0,0.6122448979591837)"/>
321 </edges>
322 <edges xmi:type="notation:Edge" xmi:id="_EDBDIFvZEemLJtrAOuDPFQ" type="4001" element="_ECuvRlvZEemLJtrAOuDPFQ" source="_IuOrgFvNEemLJtrAOuDPFQ" target="_8icOoFvNEemLJtrAOuDPFQ">
323 <children xmi:type="notation:Node" xmi:id="_EDBDJFvZEemLJtrAOuDPFQ" type="6001">
324 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EDBDJVvZEemLJtrAOuDPFQ" x="7" y="22"/>
325 </children>
326 <children xmi:type="notation:Node" xmi:id="_EDBqMFvZEemLJtrAOuDPFQ" type="6002">
327 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EDBqMVvZEemLJtrAOuDPFQ" x="-10" y="63"/>
328 </children>
329 <children xmi:type="notation:Node" xmi:id="_EDBqMlvZEemLJtrAOuDPFQ" type="6003">
330 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EDBqM1vZEemLJtrAOuDPFQ" x="-5" y="8"/>
331 </children>
332 <styles xmi:type="notation:ConnectorStyle" xmi:id="_EDBDIVvZEemLJtrAOuDPFQ" routing="Rectilinear"/>
333 <styles xmi:type="notation:FontStyle" xmi:id="_EDBDIlvZEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
334 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EDBDI1vZEemLJtrAOuDPFQ" points="[22, 38, 180, -82]$[22, 75, 180, -45]$[-143, 75, 15, -45]$[-143, 120, 15, 0]"/>
335 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EDBqNFvZEemLJtrAOuDPFQ" id="(0.0,0.6122448979591837)"/>
336 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EDBqNVvZEemLJtrAOuDPFQ" id="(0.635593220338983,0.0)"/>
337 </edges>
338 <edges xmi:type="notation:Edge" xmi:id="_HQd2kFvZEemLJtrAOuDPFQ" type="4001" element="_HQRCT1vZEemLJtrAOuDPFQ" source="_IuOrgFvNEemLJtrAOuDPFQ" target="_FZ9o8FvOEemLJtrAOuDPFQ">
339 <children xmi:type="notation:Node" xmi:id="_HQd2lFvZEemLJtrAOuDPFQ" type="6001">
340 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HQd2lVvZEemLJtrAOuDPFQ" x="10" y="-22"/>
341 </children>
342 <children xmi:type="notation:Node" xmi:id="_HQedoFvZEemLJtrAOuDPFQ" type="6002">
343 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HQedoVvZEemLJtrAOuDPFQ" x="10" y="-70"/>
344 </children>
345 <children xmi:type="notation:Node" xmi:id="_HQedolvZEemLJtrAOuDPFQ" type="6003">
346 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HQedo1vZEemLJtrAOuDPFQ" x="23" y="10"/>
347 </children>
348 <styles xmi:type="notation:ConnectorStyle" xmi:id="_HQd2kVvZEemLJtrAOuDPFQ" routing="Rectilinear"/>
349 <styles xmi:type="notation:FontStyle" xmi:id="_HQd2klvZEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
350 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HQd2k1vZEemLJtrAOuDPFQ" points="[-24, 68, -180, -82]$[-24, 105, -180, -45]$[141, 105, -15, -45]$[141, 150, -15, 0]"/>
351 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HQedpFvZEemLJtrAOuDPFQ" id="(1.0,0.30612244897959184)"/>
352 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HQedpVvZEemLJtrAOuDPFQ" id="(0.2980132450331126,0.0)"/>
353 </edges>
354 <edges xmi:type="notation:Edge" xmi:id="_LsBb4FvZEemLJtrAOuDPFQ" type="4001" element="_Lr45GFvZEemLJtrAOuDPFQ" source="_IuOrgFvNEemLJtrAOuDPFQ" target="_UoYsMFvUEemLJtrAOuDPFQ">
355 <children xmi:type="notation:Node" xmi:id="_LsBb5FvZEemLJtrAOuDPFQ" type="6001">
356 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsBb5VvZEemLJtrAOuDPFQ" x="-65" y="135"/>
357 </children>
358 <children xmi:type="notation:Node" xmi:id="_LsBb5lvZEemLJtrAOuDPFQ" type="6002">
359 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsBb51vZEemLJtrAOuDPFQ" x="-29" y="10"/>
360 </children>
361 <children xmi:type="notation:Node" xmi:id="_LsBb6FvZEemLJtrAOuDPFQ" type="6003">
362 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsBb6VvZEemLJtrAOuDPFQ" x="-65" y="10"/>
363 </children>
364 <styles xmi:type="notation:ConnectorStyle" xmi:id="_LsBb4VvZEemLJtrAOuDPFQ" routing="Rectilinear"/>
365 <styles xmi:type="notation:FontStyle" xmi:id="_LsBb4lvZEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
366 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LsBb41vZEemLJtrAOuDPFQ" points="[54, -50, -216, -312]$[345, -50, 75, -312]$[345, 322, 75, 60]$[316, 322, 46, 60]"/>
367 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LsCC8FvZEemLJtrAOuDPFQ" id="(0.6029411764705882,1.0)"/>
368 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LsCC8VvZEemLJtrAOuDPFQ" id="(0.695364238410596,0.0)"/>
369 </edges>
370 <edges xmi:type="notation:Edge" xmi:id="_TAsjYFvZEemLJtrAOuDPFQ" type="4001" element="_TAeg9lvZEemLJtrAOuDPFQ" source="_IuOrgFvNEemLJtrAOuDPFQ" target="_vI6r8FvREemLJtrAOuDPFQ">
371 <children xmi:type="notation:Node" xmi:id="_TAsjZFvZEemLJtrAOuDPFQ" type="6001">
372 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TAsjZVvZEemLJtrAOuDPFQ" x="-44" y="-154"/>
373 </children>
374 <children xmi:type="notation:Node" xmi:id="_TAsjZlvZEemLJtrAOuDPFQ" type="6002">
375 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TAsjZ1vZEemLJtrAOuDPFQ" x="-21" y="10"/>
376 </children>
377 <children xmi:type="notation:Node" xmi:id="_TAtKcFvZEemLJtrAOuDPFQ" type="6003">
378 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TAtKcVvZEemLJtrAOuDPFQ" x="-45" y="10"/>
379 </children>
380 <styles xmi:type="notation:ConnectorStyle" xmi:id="_TAsjYVvZEemLJtrAOuDPFQ" routing="Rectilinear"/>
381 <styles xmi:type="notation:FontStyle" xmi:id="_TAsjYlvZEemLJtrAOuDPFQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
382 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TAsjY1vZEemLJtrAOuDPFQ" points="[0, 15, 188, -285]$[-278, 15, -90, -285]$[-278, 330, -90, 30]$[-242, 330, -54, 30]"/>
383 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TAtKclvZEemLJtrAOuDPFQ" id="(0.0,0.6122448979591837)"/>
384 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TAtKc1vZEemLJtrAOuDPFQ" id="(0.39705882352941174,0.0)"/>
385 </edges>
386 <edges xmi:type="notation:Edge" xmi:id="_sSYbUFvfEemLJtrAOuDPFQ" type="4001" element="_sSGHdlvfEemLJtrAOuDPFQ" source="_8icOoFvNEemLJtrAOuDPFQ" target="_8icOoFvNEemLJtrAOuDPFQ">
387 <children xmi:type="notation:Node" xmi:id="_sSYbVFvfEemLJtrAOuDPFQ" type="6001">
388 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sSYbVVvfEemLJtrAOuDPFQ" x="22" y="-22"/>
389 </children>
390 <children xmi:type="notation:Node" xmi:id="_sSYbVlvfEemLJtrAOuDPFQ" type="6002">
391 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sSYbV1vfEemLJtrAOuDPFQ" x="-13" y="19"/>
392 </children>
393 <children xmi:type="notation:Node" xmi:id="_sSYbWFvfEemLJtrAOuDPFQ" type="6003">
394 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sSYbWVvfEemLJtrAOuDPFQ" x="11" y="7"/>
395 </children>
396 <styles xmi:type="notation:ConnectorStyle" xmi:id="_sSYbUVvfEemLJtrAOuDPFQ" routing="Rectilinear" lineColor="1345869"/>
397 <styles xmi:type="notation:FontStyle" xmi:id="_sSYbUlvfEemLJtrAOuDPFQ" fontColor="1345869" fontName="Noto Sans" fontHeight="8"/>
398 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sSYbU1vfEemLJtrAOuDPFQ" points="[-118, 0, -39, 15]$[-148, 0, -69, 15]$[-148, -60, -69, -45]$[-60, -60, 19, -45]$[-60, -15, 19, 0]"/>
399 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sSZCYFvfEemLJtrAOuDPFQ" id="(1.0,0.15306122448979592)"/>
400 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sSZCYVvfEemLJtrAOuDPFQ" id="(0.3333333333333333,0.0)"/>
401 </edges>
402 <edges xmi:type="notation:Edge" xmi:id="_D2rzIFvgEemLJtrAOuDPFQ" type="4001" element="_D2lspFvgEemLJtrAOuDPFQ" source="_vI6r8FvREemLJtrAOuDPFQ" target="_vI6r8FvREemLJtrAOuDPFQ">
403 <children xmi:type="notation:Node" xmi:id="_D2saMFvgEemLJtrAOuDPFQ" type="6001">
404 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D2saMVvgEemLJtrAOuDPFQ" x="101" y="-7"/>
405 </children>
406 <children xmi:type="notation:Node" xmi:id="_D2saMlvgEemLJtrAOuDPFQ" type="6002">
407 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D2saM1vgEemLJtrAOuDPFQ" x="-7" y="10"/>
408 </children>
409 <children xmi:type="notation:Node" xmi:id="_D2saNFvgEemLJtrAOuDPFQ" type="6003">
410 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D2saNVvgEemLJtrAOuDPFQ" x="7" y="10"/>
411 </children>
412 <styles xmi:type="notation:ConnectorStyle" xmi:id="_D2rzIVvgEemLJtrAOuDPFQ" routing="Rectilinear" lineColor="1345869"/>
413 <styles xmi:type="notation:FontStyle" xmi:id="_D2rzIlvgEemLJtrAOuDPFQ" fontColor="1345869" fontName="Noto Sans" fontHeight="8"/>
414 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D2rzI1vgEemLJtrAOuDPFQ" points="[0, 98, -60, 0]$[0, 135, -60, 37]$[90, 135, 30, 37]$[90, 98, 30, 0]"/>
415 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D2saNlvgEemLJtrAOuDPFQ" id="(0.17647058823529413,0.0)"/>
416 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D2saN1vgEemLJtrAOuDPFQ" id="(0.6176470588235294,1.0)"/>
417 </edges>
418 <edges xmi:type="notation:Edge" xmi:id="_rSkHoFvgEemLJtrAOuDPFQ" type="4001" element="_rSSa1lvgEemLJtrAOuDPFQ" source="_FZ9o8FvOEemLJtrAOuDPFQ" target="_FZ9o8FvOEemLJtrAOuDPFQ">
419 <children xmi:type="notation:Node" xmi:id="_rSkHpFvgEemLJtrAOuDPFQ" type="6001">
420 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rSkHpVvgEemLJtrAOuDPFQ" x="1" y="22"/>
421 </children>
422 <children xmi:type="notation:Node" xmi:id="_rSkHplvgEemLJtrAOuDPFQ" type="6002">
423 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rSkHp1vgEemLJtrAOuDPFQ" x="-10"/>
424 </children>
425 <children xmi:type="notation:Node" xmi:id="_rSkHqFvgEemLJtrAOuDPFQ" type="6003">
426 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rSkHqVvgEemLJtrAOuDPFQ" x="-9" y="-10"/>
427 </children>
428 <styles xmi:type="notation:ConnectorStyle" xmi:id="_rSkHoVvgEemLJtrAOuDPFQ" routing="Rectilinear" lineColor="1345869"/>
429 <styles xmi:type="notation:FontStyle" xmi:id="_rSkHolvgEemLJtrAOuDPFQ" fontColor="1345869" fontName="Noto Sans" fontHeight="8"/>
430 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rSkHo1vgEemLJtrAOuDPFQ" points="[135, -15, -16, -15]$[135, -60, -16, -60]$[60, -60, -91, -60]$[60, -15, -91, -15]"/>
431 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSkusFvgEemLJtrAOuDPFQ" id="(0.0,0.15306122448979592)"/>
432 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSkusVvgEemLJtrAOuDPFQ" id="(1.0,0.15306122448979592)"/>
433 </edges>
434 <edges xmi:type="notation:Edge" xmi:id="_xXkXAFvgEemLJtrAOuDPFQ" type="4001" element="_xXdpelvgEemLJtrAOuDPFQ" source="_UoYsMFvUEemLJtrAOuDPFQ" target="_UoYsMFvUEemLJtrAOuDPFQ">
435 <children xmi:type="notation:Node" xmi:id="_xXkXBFvgEemLJtrAOuDPFQ" type="6001">
436 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xXkXBVvgEemLJtrAOuDPFQ" x="-104" y="-7"/>
437 </children>
438 <children xmi:type="notation:Node" xmi:id="_xXkXBlvgEemLJtrAOuDPFQ" type="6002">
439 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xXkXB1vgEemLJtrAOuDPFQ" x="1" y="8"/>
440 </children>
441 <children xmi:type="notation:Node" xmi:id="_xXk-EFvgEemLJtrAOuDPFQ" type="6003">
442 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xXk-EVvgEemLJtrAOuDPFQ" x="-2" y="10"/>
443 </children>
444 <styles xmi:type="notation:ConnectorStyle" xmi:id="_xXkXAVvgEemLJtrAOuDPFQ" routing="Rectilinear" lineColor="1345869"/>
445 <styles xmi:type="notation:FontStyle" xmi:id="_xXkXAlvgEemLJtrAOuDPFQ" fontColor="1345869" fontName="Noto Sans" fontHeight="8"/>
446 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xXkXA1vgEemLJtrAOuDPFQ" points="[-121, 83, 30, 83]$[-121, 120, 30, 120]$[-31, 120, 120, 120]$[-31, 83, 120, 83]"/>
447 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xXk-ElvgEemLJtrAOuDPFQ" id="(1.0,0.15306122448979592)"/>
448 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xXk-E1vgEemLJtrAOuDPFQ" id="(0.0,0.15306122448979592)"/>
449 </edges>
450 </data>
451 </ownedAnnotationEntries>
452 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Itg50FvNEemLJtrAOuDPFQ" name="CyberPhysicalSystem" tooltipText="" outgoingEdges="_CU3uAFvTEemLJtrAOuDPFQ _ECuvRlvZEemLJtrAOuDPFQ _HQRCT1vZEemLJtrAOuDPFQ _Lr45GFvZEemLJtrAOuDPFQ _TAeg9lvZEemLJtrAOuDPFQ" width="12" height="10">
453 <target xmi:type="ecore:EClass" href="cps.ecore#//CyberPhysicalSystem"/>
454 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//CyberPhysicalSystem"/>
455 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
456 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
457 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
458 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Itr48FvNEemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
459 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
460 </ownedStyle>
461 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
462 </ownedDiagramElements>
463 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8iM-EFvNEemLJtrAOuDPFQ" name="ApplicationType" tooltipText="" outgoingEdges="_jGSVo1vTEemLJtrAOuDPFQ _GOOItlvUEemLJtrAOuDPFQ _sSGHdlvfEemLJtrAOuDPFQ" incomingEdges="_Xc3bc1vTEemLJtrAOuDPFQ _ECuvRlvZEemLJtrAOuDPFQ _sSGHdlvfEemLJtrAOuDPFQ" width="12" height="10">
464 <target xmi:type="ecore:EClass" href="cps.ecore#//ApplicationType"/>
465 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//ApplicationType"/>
466 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
467 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
468 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
469 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_9yN0clvNEemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
470 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
471 </ownedStyle>
472 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
473 </ownedDiagramElements>
474 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_FZ1GEFvOEemLJtrAOuDPFQ" name="HostType" tooltipText="" outgoingEdges="_YawKkFvUEemLJtrAOuDPFQ _rSSa1lvgEemLJtrAOuDPFQ" incomingEdges="_OKZ8IFvUEemLJtrAOuDPFQ _HQRCT1vZEemLJtrAOuDPFQ _rSSa1lvgEemLJtrAOuDPFQ" width="12" height="10">
475 <target xmi:type="ecore:EClass" href="cps.ecore#//HostType"/>
476 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//HostType"/>
477 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
478 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
479 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
480 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_eEUig1vREemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
481 <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"/>
482 </ownedStyle>
483 <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']"/>
484 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Xxc2QFvREemLJtrAOuDPFQ" name="defaultMemory : EInt" tooltipText="">
485 <target xmi:type="ecore:EAttribute" href="cps.ecore#//HostType/defaultMemory"/>
486 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//HostType/defaultMemory"/>
487 <ownedStyle xmi:type="diagram:BundledImage" uid="_aQuVEVvREemLJtrAOuDPFQ" labelAlignment="LEFT" description="_-5WboFvNEemLJtrAOuDPFQ">
488 <labelFormat>bold</labelFormat>
489 </ownedStyle>
490 <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']"/>
491 </ownedElements>
492 <ownedElements xmi:type="diagram:DNodeListElement" uid="_bLzdQFvREemLJtrAOuDPFQ" name="defaultHdd : EInt" tooltipText="">
493 <target xmi:type="ecore:EAttribute" href="cps.ecore#//HostType/defaultHdd"/>
494 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//HostType/defaultHdd"/>
495 <ownedStyle xmi:type="diagram:BundledImage" uid="_ednzUVvREemLJtrAOuDPFQ" labelAlignment="LEFT" description="_-5WboFvNEemLJtrAOuDPFQ">
496 <labelFormat>bold</labelFormat>
497 </ownedStyle>
498 <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']"/>
499 </ownedElements>
500 </ownedDiagramElements>
501 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_jfFiEFvREemLJtrAOuDPFQ" name="Request" tooltipText="" outgoingEdges="_INyCIFvTEemLJtrAOuDPFQ" incomingEdges="_CU3uAFvTEemLJtrAOuDPFQ" width="12" height="10">
502 <target xmi:type="ecore:EClass" href="cps.ecore#//Request"/>
503 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//Request"/>
504 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
505 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
506 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
507 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_jfGJIFvREemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
508 <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"/>
509 </ownedStyle>
510 <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']"/>
511 </ownedDiagramElements>
512 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_p05NkFvREemLJtrAOuDPFQ" name="Requirement" tooltipText="" outgoingEdges="_Xc3bc1vTEemLJtrAOuDPFQ _dUZ2kFvTEemLJtrAOuDPFQ" incomingEdges="_INyCIFvTEemLJtrAOuDPFQ" width="12" height="10">
513 <target xmi:type="ecore:EClass" href="cps.ecore#//Requirement"/>
514 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//Requirement"/>
515 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
516 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
517 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
518 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_OP1EIVvTEemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
519 <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"/>
520 </ownedStyle>
521 <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']"/>
522 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Nr-JIFvTEemLJtrAOuDPFQ" name="count : EInt" tooltipText="">
523 <target xmi:type="ecore:EAttribute" href="cps.ecore#//Requirement/count"/>
524 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//Requirement/count"/>
525 <ownedStyle xmi:type="diagram:BundledImage" uid="_ZNL60VvZEemLJtrAOuDPFQ" labelAlignment="LEFT" description="_-5WboFvNEemLJtrAOuDPFQ">
526 <labelFormat>bold</labelFormat>
527 </ownedStyle>
528 <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']"/>
529 </ownedElements>
530 </ownedDiagramElements>
531 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vIvs0FvREemLJtrAOuDPFQ" name="ApplicationInstance" tooltipText="" outgoingEdges="_ZlkF81vWEemLJtrAOuDPFQ _D2lspFvgEemLJtrAOuDPFQ" incomingEdges="_dUZ2kFvTEemLJtrAOuDPFQ _jGSVo1vTEemLJtrAOuDPFQ _TAeg9lvZEemLJtrAOuDPFQ _D2lspFvgEemLJtrAOuDPFQ" width="12" height="10">
532 <target xmi:type="ecore:EClass" href="cps.ecore#//ApplicationInstance"/>
533 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//ApplicationInstance"/>
534 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
535 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
536 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
537 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_vIwT4FvREemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
538 <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"/>
539 </ownedStyle>
540 <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']"/>
541 </ownedDiagramElements>
542 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_PdlGIFvSEemLJtrAOuDPFQ" name="ResourceRequirement" tooltipText="" outgoingEdges="_OKZ8IFvUEemLJtrAOuDPFQ" incomingEdges="_GOOItlvUEemLJtrAOuDPFQ" width="12" height="10">
543 <target xmi:type="ecore:EClass" href="cps.ecore#//ResourceRequirement"/>
544 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//ResourceRequirement"/>
545 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
546 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
547 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
548 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_TcKbkVvSEemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
549 <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"/>
550 </ownedStyle>
551 <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']"/>
552 <ownedElements xmi:type="diagram:DNodeListElement" uid="_ReIBkFvSEemLJtrAOuDPFQ" name="requiredMemory : EInt" tooltipText="">
553 <target xmi:type="ecore:EAttribute" href="cps.ecore#//ResourceRequirement/requiredMemory"/>
554 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//ResourceRequirement/requiredMemory"/>
555 <ownedStyle xmi:type="diagram:BundledImage" uid="_ShoF8VvSEemLJtrAOuDPFQ" labelAlignment="LEFT" description="_-5WboFvNEemLJtrAOuDPFQ">
556 <labelFormat>bold</labelFormat>
557 </ownedStyle>
558 <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']"/>
559 </ownedElements>
560 <ownedElements xmi:type="diagram:DNodeListElement" uid="_S4npoFvSEemLJtrAOuDPFQ" name="requiredHdd : EInt" tooltipText="">
561 <target xmi:type="ecore:EAttribute" href="cps.ecore#//ResourceRequirement/requiredHdd"/>
562 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//ResourceRequirement/requiredHdd"/>
563 <ownedStyle xmi:type="diagram:BundledImage" uid="_T0XgMFvSEemLJtrAOuDPFQ" labelAlignment="LEFT" description="_-5WboFvNEemLJtrAOuDPFQ">
564 <labelFormat>bold</labelFormat>
565 </ownedStyle>
566 <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']"/>
567 </ownedElements>
568 </ownedDiagramElements>
569 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CU3uAFvTEemLJtrAOuDPFQ" name="[0..*] requests" sourceNode="_Itg50FvNEemLJtrAOuDPFQ" targetNode="_jfFiEFvREemLJtrAOuDPFQ">
570 <target xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/requests"/>
571 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/requests"/>
572 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_CVAQ4FvTEemLJtrAOuDPFQ" description="_CU6KQFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
573 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_CVBfAFvTEemLJtrAOuDPFQ" showIcon="false">
574 <customFeatures>labelSize</customFeatures>
575 </centerLabelStyle>
576 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_CVA38FvTEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114">
577 <customFeatures>labelSize</customFeatures>
578 </endLabelStyle>
579 </ownedStyle>
580 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
581 </ownedDiagramElements>
582 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_INyCIFvTEemLJtrAOuDPFQ" sourceNode="_jfFiEFvREemLJtrAOuDPFQ" targetNode="_p05NkFvREemLJtrAOuDPFQ" beginLabel="[1..1] request" endLabel="[0..*] requirements">
583 <target xmi:type="ecore:EReference" href="cps.ecore#//Request/requirements"/>
584 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//Requirement/request"/>
585 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//Request/requirements"/>
586 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_KkeMs1vTEemLJtrAOuDPFQ" description="_KkeMsFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
587 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_KkeMtFvTEemLJtrAOuDPFQ" showIcon="false"/>
588 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_KkeMtVvTEemLJtrAOuDPFQ" showIcon="false"/>
589 </ownedStyle>
590 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
591 </ownedDiagramElements>
592 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Xc3bc1vTEemLJtrAOuDPFQ" name="[0..1] type" sourceNode="_p05NkFvREemLJtrAOuDPFQ" targetNode="_8iM-EFvNEemLJtrAOuDPFQ">
593 <target xmi:type="ecore:EReference" href="cps.ecore#//Requirement/type"/>
594 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//Requirement/type"/>
595 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Xc5QoFvTEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="0,0,0">
596 <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_EReference']/@style"/>
597 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Xc5QolvTEemLJtrAOuDPFQ" showIcon="false">
598 <customFeatures>labelSize</customFeatures>
599 </centerLabelStyle>
600 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Xc5QoVvTEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114">
601 <customFeatures>labelSize</customFeatures>
602 </endLabelStyle>
603 </ownedStyle>
604 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
605 </ownedDiagramElements>
606 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dUZ2kFvTEemLJtrAOuDPFQ" sourceNode="_p05NkFvREemLJtrAOuDPFQ" targetNode="_vIvs0FvREemLJtrAOuDPFQ" beginLabel="[0..*] requirement" endLabel="[0..*] instances">
607 <target xmi:type="ecore:EReference" href="cps.ecore#//Requirement/instances"/>
608 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//Requirement/instances"/>
609 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationInstance/requirement"/>
610 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_dUadoFvTEemLJtrAOuDPFQ" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
611 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
612 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_dUadoVvTEemLJtrAOuDPFQ" showIcon="false"/>
613 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_dUadolvTEemLJtrAOuDPFQ" showIcon="false"/>
614 </ownedStyle>
615 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
616 </ownedDiagramElements>
617 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_jGSVo1vTEemLJtrAOuDPFQ" sourceNode="_8iM-EFvNEemLJtrAOuDPFQ" targetNode="_vIvs0FvREemLJtrAOuDPFQ" beginLabel="[1..1] type" endLabel="[0..*] instances">
618 <target xmi:type="ecore:EReference" href="cps.ecore#//ApplicationType/instances"/>
619 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationType/instances"/>
620 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationInstance/type"/>
621 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_nwVC4FvTEemLJtrAOuDPFQ" description="_KkeMsFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
622 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_nwVC4VvTEemLJtrAOuDPFQ" showIcon="false"/>
623 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_nwVC4lvTEemLJtrAOuDPFQ" showIcon="false"/>
624 </ownedStyle>
625 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
626 </ownedDiagramElements>
627 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GOOItlvUEemLJtrAOuDPFQ" name="[0..*] requirements" sourceNode="_8iM-EFvNEemLJtrAOuDPFQ" targetNode="_PdlGIFvSEemLJtrAOuDPFQ">
628 <target xmi:type="ecore:EReference" href="cps.ecore#//ApplicationType/requirements"/>
629 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationType/requirements"/>
630 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GOPW0FvUEemLJtrAOuDPFQ" description="_CU6KQFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
631 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GOPW0lvUEemLJtrAOuDPFQ" showIcon="false">
632 <customFeatures>labelSize</customFeatures>
633 </centerLabelStyle>
634 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GOPW0VvUEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114">
635 <customFeatures>labelSize</customFeatures>
636 </endLabelStyle>
637 </ownedStyle>
638 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
639 </ownedDiagramElements>
640 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_OKZ8IFvUEemLJtrAOuDPFQ" name="[1..1] hostType" sourceNode="_PdlGIFvSEemLJtrAOuDPFQ" targetNode="_FZ1GEFvOEemLJtrAOuDPFQ">
641 <target xmi:type="ecore:EReference" href="cps.ecore#//ResourceRequirement/hostType"/>
642 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ResourceRequirement/hostType"/>
643 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_PIc4w1vUEemLJtrAOuDPFQ" description="_PIc4wFvUEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="0,0,0">
644 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_PIc4xVvUEemLJtrAOuDPFQ" showIcon="false">
645 <labelFormat>bold</labelFormat>
646 </centerLabelStyle>
647 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_PIc4xFvUEemLJtrAOuDPFQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
648 </ownedStyle>
649 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
650 </ownedDiagramElements>
651 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_UoGYUFvUEemLJtrAOuDPFQ" name="HostInstance" tooltipText="" outgoingEdges="_xXdpelvgEemLJtrAOuDPFQ" incomingEdges="_YawKkFvUEemLJtrAOuDPFQ _ZlkF81vWEemLJtrAOuDPFQ _Lr45GFvZEemLJtrAOuDPFQ _xXdpelvgEemLJtrAOuDPFQ" width="12" height="10">
652 <target xmi:type="ecore:EClass" href="cps.ecore#//HostInstance"/>
653 <semanticElements xmi:type="ecore:EClass" href="cps.ecore#//HostInstance"/>
654 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
655 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
656 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
657 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_pw7zQVvUEemLJtrAOuDPFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
658 <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"/>
659 </ownedStyle>
660 <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']"/>
661 <ownedElements xmi:type="diagram:DNodeListElement" uid="_jO97EFvUEemLJtrAOuDPFQ" name="/availableMemory : EInt" tooltipText="">
662 <target xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/availableMemory"/>
663 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/availableMemory"/>
664 <ownedStyle xmi:type="diagram:BundledImage" uid="_8rRg5FvVEemLJtrAOuDPFQ" labelColor="39,76,114" labelAlignment="LEFT" description="_8rRg4lvVEemLJtrAOuDPFQ"/>
665 <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']"/>
666 </ownedElements>
667 <ownedElements xmi:type="diagram:DNodeListElement" uid="_lZB-4FvUEemLJtrAOuDPFQ" name="/availableHdd : EInt" tooltipText="">
668 <target xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/availableHdd"/>
669 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/availableHdd"/>
670 <ownedStyle xmi:type="diagram:BundledImage" uid="_AAbe0lvWEemLJtrAOuDPFQ" labelColor="39,76,114" labelAlignment="LEFT" description="_8rRg4lvVEemLJtrAOuDPFQ"/>
671 <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']"/>
672 </ownedElements>
673 <ownedElements xmi:type="diagram:DNodeListElement" uid="_n0acMFvUEemLJtrAOuDPFQ" name="/totalMemory : EInt" tooltipText="">
674 <target xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/totalMemory"/>
675 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/totalMemory"/>
676 <ownedStyle xmi:type="diagram:BundledImage" uid="_DOTwE1vWEemLJtrAOuDPFQ" labelColor="39,76,114" labelAlignment="LEFT" description="_8rRg4lvVEemLJtrAOuDPFQ"/>
677 <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']"/>
678 </ownedElements>
679 <ownedElements xmi:type="diagram:DNodeListElement" uid="_pHVcoFvUEemLJtrAOuDPFQ" name="/totalHdd : EInt" tooltipText="">
680 <target xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/totalHdd"/>
681 <semanticElements xmi:type="ecore:EAttribute" href="cps.ecore#//HostInstance/totalHdd"/>
682 <ownedStyle xmi:type="diagram:BundledImage" uid="_EOBgpVvWEemLJtrAOuDPFQ" labelColor="39,76,114" labelAlignment="LEFT" description="_8rRg4lvVEemLJtrAOuDPFQ"/>
683 <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']"/>
684 </ownedElements>
685 </ownedDiagramElements>
686 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YawKkFvUEemLJtrAOuDPFQ" sourceNode="_FZ1GEFvOEemLJtrAOuDPFQ" targetNode="_UoGYUFvUEemLJtrAOuDPFQ" beginLabel="[1..1] type" endLabel="[0..*] instances">
687 <target xmi:type="ecore:EReference" href="cps.ecore#//HostType/instances"/>
688 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//HostType/instances"/>
689 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//HostInstance/type"/>
690 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_aF7S8FvUEemLJtrAOuDPFQ" description="_KkeMsFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
691 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_aF7S8VvUEemLJtrAOuDPFQ" showIcon="false"/>
692 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_aF7S8lvUEemLJtrAOuDPFQ" showIcon="false"/>
693 </ownedStyle>
694 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
695 </ownedDiagramElements>
696 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZlkF81vWEemLJtrAOuDPFQ" sourceNode="_vIvs0FvREemLJtrAOuDPFQ" targetNode="_UoGYUFvUEemLJtrAOuDPFQ" beginLabel="[0..*] applications" endLabel="[0..*] allocatedTo">
697 <target xmi:type="ecore:EReference" href="cps.ecore#//ApplicationInstance/allocatedTo"/>
698 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationInstance/allocatedTo"/>
699 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//HostInstance/applications"/>
700 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ZlktAFvWEemLJtrAOuDPFQ" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
701 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
702 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_ZlktAVvWEemLJtrAOuDPFQ" showIcon="false"/>
703 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ZlktAlvWEemLJtrAOuDPFQ" showIcon="false"/>
704 </ownedStyle>
705 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
706 </ownedDiagramElements>
707 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ECuvRlvZEemLJtrAOuDPFQ" name="[0..*] applicationTypes" sourceNode="_Itg50FvNEemLJtrAOuDPFQ" targetNode="_8iM-EFvNEemLJtrAOuDPFQ">
708 <target xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/applicationTypes"/>
709 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/applicationTypes"/>
710 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ECvWUFvZEemLJtrAOuDPFQ" description="_CU6KQFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
711 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ECvWUlvZEemLJtrAOuDPFQ" showIcon="false">
712 <customFeatures>labelSize</customFeatures>
713 </centerLabelStyle>
714 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ECvWUVvZEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114">
715 <customFeatures>labelSize</customFeatures>
716 </endLabelStyle>
717 </ownedStyle>
718 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
719 </ownedDiagramElements>
720 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_HQRCT1vZEemLJtrAOuDPFQ" name="[0..*] hostTypes" sourceNode="_Itg50FvNEemLJtrAOuDPFQ" targetNode="_FZ1GEFvOEemLJtrAOuDPFQ">
721 <target xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/hostTypes"/>
722 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/hostTypes"/>
723 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_HQRpUFvZEemLJtrAOuDPFQ" description="_CU6KQFvTEemLJtrAOuDPFQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
724 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_HQRpUlvZEemLJtrAOuDPFQ" showIcon="false">
725 <customFeatures>labelSize</customFeatures>
726 </centerLabelStyle>
727 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_HQRpUVvZEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114">
728 <customFeatures>labelSize</customFeatures>
729 </endLabelStyle>
730 </ownedStyle>
731 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
732 </ownedDiagramElements>
733 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Lr45GFvZEemLJtrAOuDPFQ" name="[0..*] /hosts" sourceNode="_Itg50FvNEemLJtrAOuDPFQ" targetNode="_UoGYUFvUEemLJtrAOuDPFQ">
734 <target xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/hosts"/>
735 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/hosts"/>
736 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_QukvyVvZEemLJtrAOuDPFQ" description="_QukvxlvZEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="114,159,207">
737 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Qukvy1vZEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114"/>
738 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_QukvylvZEemLJtrAOuDPFQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
739 </ownedStyle>
740 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
741 </ownedDiagramElements>
742 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_TAeg9lvZEemLJtrAOuDPFQ" name="[0..*] /applications" sourceNode="_Itg50FvNEemLJtrAOuDPFQ" targetNode="_vIvs0FvREemLJtrAOuDPFQ">
743 <target xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/applications"/>
744 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//CyberPhysicalSystem/applications"/>
745 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XFbkJlvZEemLJtrAOuDPFQ" description="_QukvxlvZEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="114,159,207">
746 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XFbkKFvZEemLJtrAOuDPFQ" showIcon="false" labelColor="39,76,114"/>
747 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XFbkJ1vZEemLJtrAOuDPFQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
748 </ownedStyle>
749 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
750 </ownedDiagramElements>
751 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_sSGHdlvfEemLJtrAOuDPFQ" name="[0..*] dependsOn" sourceNode="_8iM-EFvNEemLJtrAOuDPFQ" targetNode="_8iM-EFvNEemLJtrAOuDPFQ">
752 <target xmi:type="ecore:EReference" href="cps.ecore#//ApplicationType/dependsOn"/>
753 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationType/dependsOn"/>
754 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sSHVkFvfEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="77,137,20">
755 <customFeatures>strokeColor</customFeatures>
756 <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_EReference']/@style"/>
757 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sSHVklvfEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
758 <customFeatures>labelFormat</customFeatures>
759 <customFeatures>labelSize</customFeatures>
760 <customFeatures>labelColor</customFeatures>
761 </centerLabelStyle>
762 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_sSHVkVvfEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
763 <customFeatures>labelFormat</customFeatures>
764 <customFeatures>labelSize</customFeatures>
765 <customFeatures>labelColor</customFeatures>
766 </endLabelStyle>
767 </ownedStyle>
768 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
769 </ownedDiagramElements>
770 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_D2lspFvgEemLJtrAOuDPFQ" name="[0..1] dependsOn" sourceNode="_vIvs0FvREemLJtrAOuDPFQ" targetNode="_vIvs0FvREemLJtrAOuDPFQ">
771 <target xmi:type="ecore:EReference" href="cps.ecore#//ApplicationInstance/dependsOn"/>
772 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//ApplicationInstance/dependsOn"/>
773 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_D2mTkFvgEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="77,137,20">
774 <customFeatures>strokeColor</customFeatures>
775 <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_EReference']/@style"/>
776 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_D2mTklvgEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
777 <customFeatures>labelSize</customFeatures>
778 <customFeatures>labelColor</customFeatures>
779 </centerLabelStyle>
780 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_D2mTkVvgEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
781 <customFeatures>labelSize</customFeatures>
782 <customFeatures>labelColor</customFeatures>
783 </endLabelStyle>
784 </ownedStyle>
785 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
786 </ownedDiagramElements>
787 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rSSa1lvgEemLJtrAOuDPFQ" name="[0..*] canConnectTo" sourceNode="_FZ1GEFvOEemLJtrAOuDPFQ" targetNode="_FZ1GEFvOEemLJtrAOuDPFQ">
788 <target xmi:type="ecore:EReference" href="cps.ecore#//HostType/canConnectTo"/>
789 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//HostType/canConnectTo"/>
790 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_rSTB4FvgEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="77,137,20">
791 <customFeatures>strokeColor</customFeatures>
792 <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_EReference']/@style"/>
793 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_rSTB4lvgEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
794 <customFeatures>labelSize</customFeatures>
795 <customFeatures>labelColor</customFeatures>
796 </centerLabelStyle>
797 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_rSTB4VvgEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
798 <customFeatures>labelSize</customFeatures>
799 <customFeatures>labelColor</customFeatures>
800 </endLabelStyle>
801 </ownedStyle>
802 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
803 </ownedDiagramElements>
804 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_xXdpelvgEemLJtrAOuDPFQ" name="[0..*] connectedTo" sourceNode="_UoGYUFvUEemLJtrAOuDPFQ" targetNode="_UoGYUFvUEemLJtrAOuDPFQ">
805 <target xmi:type="ecore:EReference" href="cps.ecore#//HostInstance/connectedTo"/>
806 <semanticElements xmi:type="ecore:EReference" href="cps.ecore#//HostInstance/connectedTo"/>
807 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_xXeQYFvgEemLJtrAOuDPFQ" routingStyle="manhattan" strokeColor="77,137,20">
808 <customFeatures>strokeColor</customFeatures>
809 <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_EReference']/@style"/>
810 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_xXeQYlvgEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
811 <customFeatures>labelSize</customFeatures>
812 <customFeatures>labelColor</customFeatures>
813 </centerLabelStyle>
814 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_xXeQYVvgEemLJtrAOuDPFQ" showIcon="false" labelColor="77,137,20">
815 <customFeatures>labelSize</customFeatures>
816 <customFeatures>labelColor</customFeatures>
817 </endLabelStyle>
818 </ownedStyle>
819 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
820 </ownedDiagramElements>
821 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
822 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_kSzQQFvMEemLJtrAOuDPFQ"/>
823 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
824 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
825 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
826 <target xmi:type="ecore:EPackage" href="cps.ecore#/"/>
827 </diagram:DSemanticDiagram>
828</xmi:XMI>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.ecore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.ecore
new file mode 100644
index 00000000..bcf0ed99
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.ecore
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="cps" nsURI="http://www.example.org/cps" nsPrefix="cps">
4 <eClassifiers xsi:type="ecore:EClass" name="CyberPhysicalSystem">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="requests" upperBound="-1"
6 eType="#//Request" containment="true"/>
7 <eStructuralFeatures xsi:type="ecore:EReference" name="applicationTypes" upperBound="-1"
8 eType="#//ApplicationType" containment="true"/>
9 <eStructuralFeatures xsi:type="ecore:EReference" name="hostTypes" upperBound="-1"
10 eType="#//HostType" containment="true"/>
11 <eStructuralFeatures xsi:type="ecore:EReference" name="hosts" upperBound="-1"
12 eType="#//HostInstance" changeable="false" volatile="true" transient="true"
13 derived="true"/>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="applications" upperBound="-1"
15 eType="#//ApplicationInstance" changeable="false" volatile="true" transient="true"
16 derived="true"/>
17 </eClassifiers>
18 <eClassifiers xsi:type="ecore:EClass" name="ApplicationType">
19 <eStructuralFeatures xsi:type="ecore:EReference" name="instances" upperBound="-1"
20 eType="#//ApplicationInstance" containment="true" eOpposite="#//ApplicationInstance/type"/>
21 <eStructuralFeatures xsi:type="ecore:EReference" name="requirements" upperBound="-1"
22 eType="#//ResourceRequirement" containment="true"/>
23 <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" upperBound="-1"
24 eType="#//ApplicationType"/>
25 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="HostType">
27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultMemory" lowerBound="1"
28 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
29 <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultHdd" lowerBound="1"
30 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
31 <eStructuralFeatures xsi:type="ecore:EReference" name="instances" upperBound="-1"
32 eType="#//HostInstance" containment="true" eOpposite="#//HostInstance/type"/>
33 <eStructuralFeatures xsi:type="ecore:EReference" name="canConnectTo" upperBound="-1"
34 eType="#//HostType"/>
35 </eClassifiers>
36 <eClassifiers xsi:type="ecore:EClass" name="Request">
37 <eStructuralFeatures xsi:type="ecore:EReference" name="requirements" upperBound="-1"
38 eType="#//Requirement" containment="true" eOpposite="#//Requirement/request"/>
39 </eClassifiers>
40 <eClassifiers xsi:type="ecore:EClass" name="Requirement">
41 <eStructuralFeatures xsi:type="ecore:EReference" name="request" lowerBound="1"
42 eType="#//Request" eOpposite="#//Request/requirements"/>
43 <eStructuralFeatures xsi:type="ecore:EAttribute" name="count" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
44 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//ApplicationType"/>
45 <eStructuralFeatures xsi:type="ecore:EReference" name="instances" upperBound="-1"
46 eType="#//ApplicationInstance" eOpposite="#//ApplicationInstance/requirement"/>
47 </eClassifiers>
48 <eClassifiers xsi:type="ecore:EClass" name="ApplicationInstance">
49 <eStructuralFeatures xsi:type="ecore:EReference" name="requirement" upperBound="-1"
50 eType="#//Requirement" eOpposite="#//Requirement/instances"/>
51 <eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//ApplicationType"
52 eOpposite="#//ApplicationType/instances"/>
53 <eStructuralFeatures xsi:type="ecore:EReference" name="allocatedTo" upperBound="-1"
54 eType="#//HostInstance" eOpposite="#//HostInstance/applications"/>
55 <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//ApplicationInstance"/>
56 </eClassifiers>
57 <eClassifiers xsi:type="ecore:EClass" name="ResourceRequirement">
58 <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredMemory" lowerBound="1"
59 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
60 <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredHdd" lowerBound="1"
61 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
62 <eStructuralFeatures xsi:type="ecore:EReference" name="hostType" lowerBound="1"
63 eType="#//HostType"/>
64 </eClassifiers>
65 <eClassifiers xsi:type="ecore:EClass" name="HostInstance">
66 <eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//HostType"
67 eOpposite="#//HostType/instances"/>
68 <eStructuralFeatures xsi:type="ecore:EAttribute" name="availableMemory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
69 changeable="false" volatile="true" transient="true" derived="true"/>
70 <eStructuralFeatures xsi:type="ecore:EAttribute" name="availableHdd" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
71 changeable="false" volatile="true" transient="true" derived="true"/>
72 <eStructuralFeatures xsi:type="ecore:EAttribute" name="totalMemory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
73 changeable="false" volatile="true" transient="true" derived="true"/>
74 <eStructuralFeatures xsi:type="ecore:EAttribute" name="totalHdd" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
75 changeable="false" volatile="true" transient="true" derived="true"/>
76 <eStructuralFeatures xsi:type="ecore:EReference" name="applications" upperBound="-1"
77 eType="#//ApplicationInstance" eOpposite="#//ApplicationInstance/allocatedTo"/>
78 <eStructuralFeatures xsi:type="ecore:EReference" name="connectedTo" upperBound="-1"
79 eType="#//HostInstance"/>
80 </eClassifiers>
81</ecore:EPackage>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.genmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.genmodel
new file mode 100644
index 00000000..679e2c49
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.genmodel
@@ -0,0 +1,62 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
4 modelDirectory="/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen"
5 creationIcons="false" editDirectory="/hu.bme.mit.inf.dslreasoner.domains.cps.edit/src-gen"
6 editorDirectory="/hu.bme.mit.inf.dslreasoner.domains.cps.editor/src-gen" modelPluginID="hu.bme.mit.inf.dslreasoner.domains.cps"
7 modelName="Cps" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
8 codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0"
9 copyrightFields="false" operationReflection="true" importOrganizing="true">
10 <foreignModel>cps.ecore</foreignModel>
11 <testsDirectory xsi:nil="true"/>
12 <genPackages prefix="Cps" basePackage="hu.bme.mit.inf.dslreasoner.domains" disposableProviderFactory="true"
13 ecorePackage="cps.ecore#/">
14 <genClasses ecoreClass="cps.ecore#//CyberPhysicalSystem">
15 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference cps.ecore#//CyberPhysicalSystem/requests"/>
16 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference cps.ecore#//CyberPhysicalSystem/applicationTypes"/>
17 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference cps.ecore#//CyberPhysicalSystem/hostTypes"/>
18 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//CyberPhysicalSystem/hosts"/>
19 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//CyberPhysicalSystem/applications"/>
20 </genClasses>
21 <genClasses ecoreClass="cps.ecore#//ApplicationType">
22 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationType/instances"/>
23 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationType/requirements"/>
24 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationType/dependsOn"/>
25 </genClasses>
26 <genClasses ecoreClass="cps.ecore#//HostType">
27 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//HostType/defaultMemory"/>
28 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//HostType/defaultHdd"/>
29 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//HostType/instances"/>
30 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//HostType/canConnectTo"/>
31 </genClasses>
32 <genClasses ecoreClass="cps.ecore#//Request">
33 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//Request/requirements"/>
34 </genClasses>
35 <genClasses ecoreClass="cps.ecore#//Requirement">
36 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//Requirement/request"/>
37 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//Requirement/count"/>
38 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//Requirement/type"/>
39 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//Requirement/instances"/>
40 </genClasses>
41 <genClasses ecoreClass="cps.ecore#//ApplicationInstance">
42 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationInstance/requirement"/>
43 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationInstance/type"/>
44 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationInstance/allocatedTo"/>
45 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ApplicationInstance/dependsOn"/>
46 </genClasses>
47 <genClasses ecoreClass="cps.ecore#//ResourceRequirement">
48 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//ResourceRequirement/requiredMemory"/>
49 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//ResourceRequirement/requiredHdd"/>
50 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//ResourceRequirement/hostType"/>
51 </genClasses>
52 <genClasses ecoreClass="cps.ecore#//HostInstance">
53 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//HostInstance/type"/>
54 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//HostInstance/availableMemory"/>
55 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//HostInstance/availableHdd"/>
56 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//HostInstance/totalMemory"/>
57 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute cps.ecore#//HostInstance/totalHdd"/>
58 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//HostInstance/applications"/>
59 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference cps.ecore#//HostInstance/connectedTo"/>
60 </genClasses>
61 </genPackages>
62</genmodel:GenModel>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath
new file mode 100644
index 00000000..8129e44b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" path="ecore-gen"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="src" path="xtend-gen"/>
6 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
7 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
8 <classpathentry kind="src" path="src-gen"/>
9 <classpathentry kind="output" path="bin"/>
10</classpath>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore
@@ -0,0 +1 @@
/bin/
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project
new file mode 100644
index 00000000..e594a173
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>hu.bme.mit.inf.dslreasoner.domains.satellite</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.viatra.query.tooling.ui.projectbuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.jdt.core.javabuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.pde.ManifestBuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 <buildCommand>
29 <name>org.eclipse.pde.SchemaBuilder</name>
30 <arguments>
31 </arguments>
32 </buildCommand>
33 </buildSpec>
34 <natures>
35 <nature>org.eclipse.sirius.nature.modelingproject</nature>
36 <nature>org.eclipse.jdt.core.javanature</nature>
37 <nature>org.eclipse.pde.PluginNature</nature>
38 <nature>org.eclipse.viatra.query.projectnature</nature>
39 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
40 </natures>
41</projectDescription>
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
new file mode 100644
index 00000000..7b37655a
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName
4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.domains.satellite;singleton:=true
5Bundle-Version: 0.1.0.qualifier
6Bundle-Vendor: %providerName
7Bundle-Localization: plugin
8Export-Package: hu.bme.mit.inf.dslreasoner.domains.satellite,
9 hu.bme.mit.inf.dslreasoner.domains.satellite.impl,
10 hu.bme.mit.inf.dslreasoner.domains.satellite.queries,
11 hu.bme.mit.inf.dslreasoner.domains.satellite.runner,
12 hu.bme.mit.inf.dslreasoner.domains.satellite.util
13Require-Bundle: org.eclipse.viatra.query.runtime,
14 org.eclipse.viatra.query.runtime.rete,
15 org.eclipse.viatra.query.runtime.localsearch,
16 org.eclipse.xtext.xbase.lib,
17 org.eclipse.emf.ecore;visibility:=reexport,
18 org.eclipse.core.runtime,
19 hu.bme.mit.inf.dslreasoner.application
20Bundle-RequiredExecutionEnvironment: JavaSE-1.8
21Bundle-ActivationPolicy: lazy
22Import-Package: org.apache.log4j
23Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/build.properties b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/build.properties
new file mode 100644
index 00000000..368af38e
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/build.properties
@@ -0,0 +1,11 @@
1bin.includes = .,\
2 model/,\
3 META-INF/,\
4 plugin.xml,\
5 plugin.properties
6jars.compile.order = .
7source.. = ecore-gen/,\
8 src-gen/,\
9 src/,\
10 xtend-gen/
11output.. = bin/
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
new file mode 100644
index 00000000..f042826e
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig
@@ -0,0 +1,25 @@
1import epackage "model/satellite.ecore"
2import viatra "src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql"
3
4generate {
5 metamodel = { package satellite excluding { InterferometryMission.observationTime } }
6 constraints = { package hu.bme.mit.inf.dslreasoner.domains.satellite.queries }
7 partial-model = { "inputs/SatelliteInstance.xmi"}
8 solver = ViatraSolver
9 scope = {
10 #node += 5..10
11 }
12
13 config = {
14 runtime = 10000,
15 log-level = normal
16 }
17
18 number = 1
19 runs = 1
20
21 debug = "outputs/debug"
22 log = "outputs/log.txt"
23 output = "outputs/models"
24 statistics = "outputs/statistics.csv"
25}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/AntennaGain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/AntennaGain.java
new file mode 100644
index 00000000..20a2c59f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/AntennaGain.java
@@ -0,0 +1,242 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/CommSubsystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CommSubsystem.java
new file mode 100644
index 00000000..255bfc4e
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CommSubsystem.java
@@ -0,0 +1,83 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand <em>Band</em>}</li>
17 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain <em>Gain</em>}</li>
18 * </ul>
19 *
20 * @see hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand
36 * @see #setBand(TransceiverBand)
37 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getCommSubsystem_Band()
38 * @model required="true"
39 * @generated
40 */
41 TransceiverBand getBand();
42
43 /**
44 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain
65 * @see #setGain(AntennaGain)
66 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getCommSubsystem_Gain()
67 * @model required="true"
68 * @generated
69 */
70 AntennaGain getGain();
71
72 /**
73 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/CommunicatingElement.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CommunicatingElement.java
new file mode 100644
index 00000000..3a4224cd
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CommunicatingElement.java
@@ -0,0 +1,69 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}</li>
19 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}</li>
20 * </ul>
21 *
22 * @see hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getCommunicatingElement_CommunicationLink()
54 * @model containment="true"
55 * @generated
56 */
57 DirectedCommunicationLink getCommunicationLink();
58
59 /**
60 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/ConstellationMission.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/ConstellationMission.java
new file mode 100644
index 00000000..82fb5971
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/ConstellationMission.java
@@ -0,0 +1,69 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}</li>
19 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}</li>
20 * </ul>
21 *
22 * @see hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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/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
new file mode 100644
index 00000000..39b2c2be
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.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 Sat3 U</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see hu.bme.mit.inf.dslreasoner.domains.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/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
new file mode 100644
index 00000000..50b81a6b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat6U.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 Sat6 U</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/DirectedCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/DirectedCommunicationLink.java
new file mode 100644
index 00000000..b4eb1a82
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/DirectedCommunicationLink.java
@@ -0,0 +1,77 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource <em>Source</em>}</li>
17 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget <em>Target</em>}</li>
18 * </ul>
19 *
20 * @see hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getDirectedCommunicationLink_Source()
36 * @model required="true"
37 * @generated
38 */
39 CommSubsystem getSource();
40
41 /**
42 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getDirectedCommunicationLink_Target()
62 * @model required="true"
63 * @generated
64 */
65 CommSubsystem getTarget();
66
67 /**
68 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/GroundStationNetwork.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/GroundStationNetwork.java
new file mode 100644
index 00000000..e256d24d
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/GroundStationNetwork.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>Ground Station Network</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryMission.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryMission.java
new file mode 100644
index 00000000..976ba160
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryMission.java
@@ -0,0 +1,49 @@
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>Interferometry Mission</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}</li>
15 * </ul>
16 *
17 * @see hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryPayload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryPayload.java
new file mode 100644
index 00000000..06b47f38
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/InterferometryPayload.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>Interferometry Payload</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/Payload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Payload.java
new file mode 100644
index 00000000..6f7f1418
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Payload.java
@@ -0,0 +1,18 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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/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
new file mode 100644
index 00000000..3b77a668
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java
@@ -0,0 +1,105 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 = hu.bme.mit.inf.dslreasoner.domains.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>Cube Sat3 U</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Cube Sat3 U</em>'.
47 * @generated
48 */
49 CubeSat3U createCubeSat3U();
50
51 /**
52 * Returns a new object of class '<em>Cube Sat6 U</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Cube Sat6 U</em>'.
56 * @generated
57 */
58 CubeSat6U createCubeSat6U();
59
60 /**
61 * Returns a new object of class '<em>Small Sat</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Small Sat</em>'.
65 * @generated
66 */
67 SmallSat createSmallSat();
68
69 /**
70 * Returns a new object of class '<em>Comm Subsystem</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Comm Subsystem</em>'.
74 * @generated
75 */
76 CommSubsystem createCommSubsystem();
77
78 /**
79 * Returns a new object of class '<em>Directed Communication Link</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Directed Communication Link</em>'.
83 * @generated
84 */
85 DirectedCommunicationLink createDirectedCommunicationLink();
86
87 /**
88 * Returns a new object of class '<em>Interferometry Payload</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Interferometry Payload</em>'.
92 * @generated
93 */
94 InterferometryPayload createInterferometryPayload();
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/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
new file mode 100644
index 00000000..7c590f4f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatellitePackage.java
@@ -0,0 +1,1137 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.SatelliteFactory
24 * @model kind="package"
25 * @generated
26 */
27public interface SatellitePackage extends EPackage {
28 /**
29 * The package name.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 String eNAME = "satellite";
35
36 /**
37 * The package namespace URI.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 String eNS_URI = "http://www.example.org/satellite";
43
44 /**
45 * The package namespace name.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 String eNS_PREFIX = "satellite";
51
52 /**
53 * The singleton instance of the package.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 SatellitePackage eINSTANCE = hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl.init();
59
60 /**
61 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl
65 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getConstellationMission()
66 * @generated
67 */
68 int CONSTELLATION_MISSION = 0;
69
70 /**
71 * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 * @ordered
76 */
77 int CONSTELLATION_MISSION__GROUND_STATION_NETWORK = 0;
78
79 /**
80 * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 * @ordered
85 */
86 int CONSTELLATION_MISSION__SPACECRAFT = 1;
87
88 /**
89 * The number of structural features of the '<em>Constellation Mission</em>' class.
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 * @ordered
94 */
95 int CONSTELLATION_MISSION_FEATURE_COUNT = 2;
96
97 /**
98 * The number of operations of the '<em>Constellation Mission</em>' class.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 * @ordered
103 */
104 int CONSTELLATION_MISSION_OPERATION_COUNT = 0;
105
106 /**
107 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl
111 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryMission()
112 * @generated
113 */
114 int INTERFEROMETRY_MISSION = 1;
115
116 /**
117 * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 * @ordered
122 */
123 int INTERFEROMETRY_MISSION__GROUND_STATION_NETWORK = CONSTELLATION_MISSION__GROUND_STATION_NETWORK;
124
125 /**
126 * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 * @ordered
131 */
132 int INTERFEROMETRY_MISSION__SPACECRAFT = CONSTELLATION_MISSION__SPACECRAFT;
133
134 /**
135 * The feature id for the '<em><b>Observation Time</b></em>' attribute.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 * @ordered
140 */
141 int INTERFEROMETRY_MISSION__OBSERVATION_TIME = CONSTELLATION_MISSION_FEATURE_COUNT + 0;
142
143 /**
144 * The number of structural features of the '<em>Interferometry Mission</em>' class.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 * @ordered
149 */
150 int INTERFEROMETRY_MISSION_FEATURE_COUNT = CONSTELLATION_MISSION_FEATURE_COUNT + 1;
151
152 /**
153 * The number of operations of the '<em>Interferometry Mission</em>' class.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 * @ordered
158 */
159 int INTERFEROMETRY_MISSION_OPERATION_COUNT = CONSTELLATION_MISSION_OPERATION_COUNT + 0;
160
161 /**
162 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl
166 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommunicatingElement()
167 * @generated
168 */
169 int COMMUNICATING_ELEMENT = 2;
170
171 /**
172 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 * @ordered
177 */
178 int COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = 0;
179
180 /**
181 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 * @ordered
186 */
187 int COMMUNICATING_ELEMENT__COMMUNICATION_LINK = 1;
188
189 /**
190 * The number of structural features of the '<em>Communicating Element</em>' class.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 * @ordered
195 */
196 int COMMUNICATING_ELEMENT_FEATURE_COUNT = 2;
197
198 /**
199 * The number of operations of the '<em>Communicating Element</em>' class.
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 * @ordered
204 */
205 int COMMUNICATING_ELEMENT_OPERATION_COUNT = 0;
206
207 /**
208 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class.
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl
212 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getGroundStationNetwork()
213 * @generated
214 */
215 int GROUND_STATION_NETWORK = 3;
216
217 /**
218 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 * @ordered
223 */
224 int GROUND_STATION_NETWORK__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM;
225
226 /**
227 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 * @ordered
232 */
233 int GROUND_STATION_NETWORK__COMMUNICATION_LINK = COMMUNICATING_ELEMENT__COMMUNICATION_LINK;
234
235 /**
236 * The number of structural features of the '<em>Ground Station Network</em>' class.
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 * @ordered
241 */
242 int GROUND_STATION_NETWORK_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0;
243
244 /**
245 * The number of operations of the '<em>Ground Station Network</em>' class.
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 * @ordered
250 */
251 int GROUND_STATION_NETWORK_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0;
252
253 /**
254 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class.
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl
258 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraft()
259 * @generated
260 */
261 int SPACECRAFT = 4;
262
263 /**
264 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 * @ordered
269 */
270 int SPACECRAFT__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM;
271
272 /**
273 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 * @ordered
278 */
279 int SPACECRAFT__COMMUNICATION_LINK = COMMUNICATING_ELEMENT__COMMUNICATION_LINK;
280
281 /**
282 * The feature id for the '<em><b>Payload</b></em>' containment reference.
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 * @ordered
287 */
288 int SPACECRAFT__PAYLOAD = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0;
289
290 /**
291 * The number of structural features of the '<em>Spacecraft</em>' class.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 * @ordered
296 */
297 int SPACECRAFT_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 1;
298
299 /**
300 * The number of operations of the '<em>Spacecraft</em>' class.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 * @ordered
305 */
306 int SPACECRAFT_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0;
307
308 /**
309 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
310 * <!-- begin-user-doc -->
311 * <!-- end-user-doc -->
312 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl
313 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat3U()
314 * @generated
315 */
316 int CUBE_SAT3_U = 5;
317
318 /**
319 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
320 * <!-- begin-user-doc -->
321 * <!-- end-user-doc -->
322 * @generated
323 * @ordered
324 */
325 int CUBE_SAT3_U__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
326
327 /**
328 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
329 * <!-- begin-user-doc -->
330 * <!-- end-user-doc -->
331 * @generated
332 * @ordered
333 */
334 int CUBE_SAT3_U__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
335
336 /**
337 * The feature id for the '<em><b>Payload</b></em>' containment reference.
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 * @ordered
342 */
343 int CUBE_SAT3_U__PAYLOAD = SPACECRAFT__PAYLOAD;
344
345 /**
346 * The number of structural features of the '<em>Cube Sat3 U</em>' class.
347 * <!-- begin-user-doc -->
348 * <!-- end-user-doc -->
349 * @generated
350 * @ordered
351 */
352 int CUBE_SAT3_U_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
353
354 /**
355 * The number of operations of the '<em>Cube Sat3 U</em>' class.
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 * @ordered
360 */
361 int CUBE_SAT3_U_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
362
363 /**
364 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl
368 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat6U()
369 * @generated
370 */
371 int CUBE_SAT6_U = 6;
372
373 /**
374 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @generated
378 * @ordered
379 */
380 int CUBE_SAT6_U__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
381
382 /**
383 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
384 * <!-- begin-user-doc -->
385 * <!-- end-user-doc -->
386 * @generated
387 * @ordered
388 */
389 int CUBE_SAT6_U__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
390
391 /**
392 * The feature id for the '<em><b>Payload</b></em>' containment reference.
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @generated
396 * @ordered
397 */
398 int CUBE_SAT6_U__PAYLOAD = SPACECRAFT__PAYLOAD;
399
400 /**
401 * The number of structural features of the '<em>Cube Sat6 U</em>' class.
402 * <!-- begin-user-doc -->
403 * <!-- end-user-doc -->
404 * @generated
405 * @ordered
406 */
407 int CUBE_SAT6_U_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
408
409 /**
410 * The number of operations of the '<em>Cube Sat6 U</em>' class.
411 * <!-- begin-user-doc -->
412 * <!-- end-user-doc -->
413 * @generated
414 * @ordered
415 */
416 int CUBE_SAT6_U_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
417
418 /**
419 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
420 * <!-- begin-user-doc -->
421 * <!-- end-user-doc -->
422 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl
423 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSmallSat()
424 * @generated
425 */
426 int SMALL_SAT = 7;
427
428 /**
429 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
430 * <!-- begin-user-doc -->
431 * <!-- end-user-doc -->
432 * @generated
433 * @ordered
434 */
435 int SMALL_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
436
437 /**
438 * The feature id for the '<em><b>Communication Link</b></em>' containment reference.
439 * <!-- begin-user-doc -->
440 * <!-- end-user-doc -->
441 * @generated
442 * @ordered
443 */
444 int SMALL_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK;
445
446 /**
447 * The feature id for the '<em><b>Payload</b></em>' containment reference.
448 * <!-- begin-user-doc -->
449 * <!-- end-user-doc -->
450 * @generated
451 * @ordered
452 */
453 int SMALL_SAT__PAYLOAD = SPACECRAFT__PAYLOAD;
454
455 /**
456 * The number of structural features of the '<em>Small Sat</em>' class.
457 * <!-- begin-user-doc -->
458 * <!-- end-user-doc -->
459 * @generated
460 * @ordered
461 */
462 int SMALL_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
463
464 /**
465 * The number of operations of the '<em>Small Sat</em>' class.
466 * <!-- begin-user-doc -->
467 * <!-- end-user-doc -->
468 * @generated
469 * @ordered
470 */
471 int SMALL_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
472
473 /**
474 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class.
475 * <!-- begin-user-doc -->
476 * <!-- end-user-doc -->
477 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl
478 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommSubsystem()
479 * @generated
480 */
481 int COMM_SUBSYSTEM = 8;
482
483 /**
484 * The feature id for the '<em><b>Band</b></em>' attribute.
485 * <!-- begin-user-doc -->
486 * <!-- end-user-doc -->
487 * @generated
488 * @ordered
489 */
490 int COMM_SUBSYSTEM__BAND = 0;
491
492 /**
493 * The feature id for the '<em><b>Gain</b></em>' attribute.
494 * <!-- begin-user-doc -->
495 * <!-- end-user-doc -->
496 * @generated
497 * @ordered
498 */
499 int COMM_SUBSYSTEM__GAIN = 1;
500
501 /**
502 * The number of structural features of the '<em>Comm Subsystem</em>' class.
503 * <!-- begin-user-doc -->
504 * <!-- end-user-doc -->
505 * @generated
506 * @ordered
507 */
508 int COMM_SUBSYSTEM_FEATURE_COUNT = 2;
509
510 /**
511 * The number of operations of the '<em>Comm Subsystem</em>' class.
512 * <!-- begin-user-doc -->
513 * <!-- end-user-doc -->
514 * @generated
515 * @ordered
516 */
517 int COMM_SUBSYSTEM_OPERATION_COUNT = 0;
518
519 /**
520 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class.
521 * <!-- begin-user-doc -->
522 * <!-- end-user-doc -->
523 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl
524 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink()
525 * @generated
526 */
527 int DIRECTED_COMMUNICATION_LINK = 9;
528
529 /**
530 * The feature id for the '<em><b>Source</b></em>' reference.
531 * <!-- begin-user-doc -->
532 * <!-- end-user-doc -->
533 * @generated
534 * @ordered
535 */
536 int DIRECTED_COMMUNICATION_LINK__SOURCE = 0;
537
538 /**
539 * The feature id for the '<em><b>Target</b></em>' reference.
540 * <!-- begin-user-doc -->
541 * <!-- end-user-doc -->
542 * @generated
543 * @ordered
544 */
545 int DIRECTED_COMMUNICATION_LINK__TARGET = 1;
546
547 /**
548 * The number of structural features of the '<em>Directed Communication Link</em>' class.
549 * <!-- begin-user-doc -->
550 * <!-- end-user-doc -->
551 * @generated
552 * @ordered
553 */
554 int DIRECTED_COMMUNICATION_LINK_FEATURE_COUNT = 2;
555
556 /**
557 * The number of operations of the '<em>Directed Communication Link</em>' class.
558 * <!-- begin-user-doc -->
559 * <!-- end-user-doc -->
560 * @generated
561 * @ordered
562 */
563 int DIRECTED_COMMUNICATION_LINK_OPERATION_COUNT = 0;
564
565 /**
566 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl <em>Payload</em>}' class.
567 * <!-- begin-user-doc -->
568 * <!-- end-user-doc -->
569 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl
570 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getPayload()
571 * @generated
572 */
573 int PAYLOAD = 10;
574
575 /**
576 * The number of structural features of the '<em>Payload</em>' class.
577 * <!-- begin-user-doc -->
578 * <!-- end-user-doc -->
579 * @generated
580 * @ordered
581 */
582 int PAYLOAD_FEATURE_COUNT = 0;
583
584 /**
585 * The number of operations of the '<em>Payload</em>' class.
586 * <!-- begin-user-doc -->
587 * <!-- end-user-doc -->
588 * @generated
589 * @ordered
590 */
591 int PAYLOAD_OPERATION_COUNT = 0;
592
593 /**
594 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class.
595 * <!-- begin-user-doc -->
596 * <!-- end-user-doc -->
597 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl
598 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryPayload()
599 * @generated
600 */
601 int INTERFEROMETRY_PAYLOAD = 11;
602
603 /**
604 * The number of structural features of the '<em>Interferometry Payload</em>' class.
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @generated
608 * @ordered
609 */
610 int INTERFEROMETRY_PAYLOAD_FEATURE_COUNT = PAYLOAD_FEATURE_COUNT + 0;
611
612 /**
613 * The number of operations of the '<em>Interferometry Payload</em>' class.
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 * @ordered
618 */
619 int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0;
620
621 /**
622 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum.
623 * <!-- begin-user-doc -->
624 * <!-- end-user-doc -->
625 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand
626 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand()
627 * @generated
628 */
629 int TRANSCEIVER_BAND = 12;
630
631 /**
632 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum.
633 * <!-- begin-user-doc -->
634 * <!-- end-user-doc -->
635 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain
636 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain()
637 * @generated
638 */
639 int ANTENNA_GAIN = 13;
640
641 /**
642 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'.
643 * <!-- begin-user-doc -->
644 * <!-- end-user-doc -->
645 * @return the meta object for class '<em>Constellation Mission</em>'.
646 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission
647 * @generated
648 */
649 EClass getConstellationMission();
650
651 /**
652 * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}'.
653 * <!-- begin-user-doc -->
654 * <!-- end-user-doc -->
655 * @return the meta object for the containment reference '<em>Ground Station Network</em>'.
656 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork()
657 * @see #getConstellationMission()
658 * @generated
659 */
660 EReference getConstellationMission_GroundStationNetwork();
661
662 /**
663 * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}'.
664 * <!-- begin-user-doc -->
665 * <!-- end-user-doc -->
666 * @return the meta object for the containment reference list '<em>Spacecraft</em>'.
667 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft()
668 * @see #getConstellationMission()
669 * @generated
670 */
671 EReference getConstellationMission_Spacecraft();
672
673 /**
674 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission <em>Interferometry Mission</em>}'.
675 * <!-- begin-user-doc -->
676 * <!-- end-user-doc -->
677 * @return the meta object for class '<em>Interferometry Mission</em>'.
678 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission
679 * @generated
680 */
681 EClass getInterferometryMission();
682
683 /**
684 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'.
685 * <!-- begin-user-doc -->
686 * <!-- end-user-doc -->
687 * @return the meta object for the attribute '<em>Observation Time</em>'.
688 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime()
689 * @see #getInterferometryMission()
690 * @generated
691 */
692 EAttribute getInterferometryMission_ObservationTime();
693
694 /**
695 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement <em>Communicating Element</em>}'.
696 * <!-- begin-user-doc -->
697 * <!-- end-user-doc -->
698 * @return the meta object for class '<em>Communicating Element</em>'.
699 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement
700 * @generated
701 */
702 EClass getCommunicatingElement();
703
704 /**
705 * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}'.
706 * <!-- begin-user-doc -->
707 * <!-- end-user-doc -->
708 * @return the meta object for the containment reference list '<em>Comm Subsystem</em>'.
709 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem()
710 * @see #getCommunicatingElement()
711 * @generated
712 */
713 EReference getCommunicatingElement_CommSubsystem();
714
715 /**
716 * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}'.
717 * <!-- begin-user-doc -->
718 * <!-- end-user-doc -->
719 * @return the meta object for the containment reference '<em>Communication Link</em>'.
720 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink()
721 * @see #getCommunicatingElement()
722 * @generated
723 */
724 EReference getCommunicatingElement_CommunicationLink();
725
726 /**
727 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork <em>Ground Station Network</em>}'.
728 * <!-- begin-user-doc -->
729 * <!-- end-user-doc -->
730 * @return the meta object for class '<em>Ground Station Network</em>'.
731 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork
732 * @generated
733 */
734 EClass getGroundStationNetwork();
735
736 /**
737 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft <em>Spacecraft</em>}'.
738 * <!-- begin-user-doc -->
739 * <!-- end-user-doc -->
740 * @return the meta object for class '<em>Spacecraft</em>'.
741 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft
742 * @generated
743 */
744 EClass getSpacecraft();
745
746 /**
747 * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload <em>Payload</em>}'.
748 * <!-- begin-user-doc -->
749 * <!-- end-user-doc -->
750 * @return the meta object for the containment reference '<em>Payload</em>'.
751 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload()
752 * @see #getSpacecraft()
753 * @generated
754 */
755 EReference getSpacecraft_Payload();
756
757 /**
758 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
759 * <!-- begin-user-doc -->
760 * <!-- end-user-doc -->
761 * @return the meta object for class '<em>Cube Sat3 U</em>'.
762 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U
763 * @generated
764 */
765 EClass getCubeSat3U();
766
767 /**
768 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
769 * <!-- begin-user-doc -->
770 * <!-- end-user-doc -->
771 * @return the meta object for class '<em>Cube Sat6 U</em>'.
772 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U
773 * @generated
774 */
775 EClass getCubeSat6U();
776
777 /**
778 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat <em>Small Sat</em>}'.
779 * <!-- begin-user-doc -->
780 * <!-- end-user-doc -->
781 * @return the meta object for class '<em>Small Sat</em>'.
782 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat
783 * @generated
784 */
785 EClass getSmallSat();
786
787 /**
788 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem <em>Comm Subsystem</em>}'.
789 * <!-- begin-user-doc -->
790 * <!-- end-user-doc -->
791 * @return the meta object for class '<em>Comm Subsystem</em>'.
792 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem
793 * @generated
794 */
795 EClass getCommSubsystem();
796
797 /**
798 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand <em>Band</em>}'.
799 * <!-- begin-user-doc -->
800 * <!-- end-user-doc -->
801 * @return the meta object for the attribute '<em>Band</em>'.
802 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand()
803 * @see #getCommSubsystem()
804 * @generated
805 */
806 EAttribute getCommSubsystem_Band();
807
808 /**
809 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain <em>Gain</em>}'.
810 * <!-- begin-user-doc -->
811 * <!-- end-user-doc -->
812 * @return the meta object for the attribute '<em>Gain</em>'.
813 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain()
814 * @see #getCommSubsystem()
815 * @generated
816 */
817 EAttribute getCommSubsystem_Gain();
818
819 /**
820 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'.
821 * <!-- begin-user-doc -->
822 * <!-- end-user-doc -->
823 * @return the meta object for class '<em>Directed Communication Link</em>'.
824 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink
825 * @generated
826 */
827 EClass getDirectedCommunicationLink();
828
829 /**
830 * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource <em>Source</em>}'.
831 * <!-- begin-user-doc -->
832 * <!-- end-user-doc -->
833 * @return the meta object for the reference '<em>Source</em>'.
834 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource()
835 * @see #getDirectedCommunicationLink()
836 * @generated
837 */
838 EReference getDirectedCommunicationLink_Source();
839
840 /**
841 * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget <em>Target</em>}'.
842 * <!-- begin-user-doc -->
843 * <!-- end-user-doc -->
844 * @return the meta object for the reference '<em>Target</em>'.
845 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget()
846 * @see #getDirectedCommunicationLink()
847 * @generated
848 */
849 EReference getDirectedCommunicationLink_Target();
850
851 /**
852 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Payload <em>Payload</em>}'.
853 * <!-- begin-user-doc -->
854 * <!-- end-user-doc -->
855 * @return the meta object for class '<em>Payload</em>'.
856 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Payload
857 * @generated
858 */
859 EClass getPayload();
860
861 /**
862 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload <em>Interferometry Payload</em>}'.
863 * <!-- begin-user-doc -->
864 * <!-- end-user-doc -->
865 * @return the meta object for class '<em>Interferometry Payload</em>'.
866 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload
867 * @generated
868 */
869 EClass getInterferometryPayload();
870
871 /**
872 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}'.
873 * <!-- begin-user-doc -->
874 * <!-- end-user-doc -->
875 * @return the meta object for enum '<em>Transceiver Band</em>'.
876 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand
877 * @generated
878 */
879 EEnum getTransceiverBand();
880
881 /**
882 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}'.
883 * <!-- begin-user-doc -->
884 * <!-- end-user-doc -->
885 * @return the meta object for enum '<em>Antenna Gain</em>'.
886 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain
887 * @generated
888 */
889 EEnum getAntennaGain();
890
891 /**
892 * Returns the factory that creates the instances of the model.
893 * <!-- begin-user-doc -->
894 * <!-- end-user-doc -->
895 * @return the factory that creates the instances of the model.
896 * @generated
897 */
898 SatelliteFactory getSatelliteFactory();
899
900 /**
901 * <!-- begin-user-doc -->
902 * Defines literals for the meta objects that represent
903 * <ul>
904 * <li>each class,</li>
905 * <li>each feature of each class,</li>
906 * <li>each operation of each class,</li>
907 * <li>each enum,</li>
908 * <li>and each data type</li>
909 * </ul>
910 * <!-- end-user-doc -->
911 * @generated
912 */
913 interface Literals {
914 /**
915 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class.
916 * <!-- begin-user-doc -->
917 * <!-- end-user-doc -->
918 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl
919 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getConstellationMission()
920 * @generated
921 */
922 EClass CONSTELLATION_MISSION = eINSTANCE.getConstellationMission();
923
924 /**
925 * The meta object literal for the '<em><b>Ground Station Network</b></em>' containment reference feature.
926 * <!-- begin-user-doc -->
927 * <!-- end-user-doc -->
928 * @generated
929 */
930 EReference CONSTELLATION_MISSION__GROUND_STATION_NETWORK = eINSTANCE
931 .getConstellationMission_GroundStationNetwork();
932
933 /**
934 * The meta object literal for the '<em><b>Spacecraft</b></em>' containment reference list feature.
935 * <!-- begin-user-doc -->
936 * <!-- end-user-doc -->
937 * @generated
938 */
939 EReference CONSTELLATION_MISSION__SPACECRAFT = eINSTANCE.getConstellationMission_Spacecraft();
940
941 /**
942 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class.
943 * <!-- begin-user-doc -->
944 * <!-- end-user-doc -->
945 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl
946 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryMission()
947 * @generated
948 */
949 EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission();
950
951 /**
952 * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature.
953 * <!-- begin-user-doc -->
954 * <!-- end-user-doc -->
955 * @generated
956 */
957 EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime();
958
959 /**
960 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
961 * <!-- begin-user-doc -->
962 * <!-- end-user-doc -->
963 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl
964 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommunicatingElement()
965 * @generated
966 */
967 EClass COMMUNICATING_ELEMENT = eINSTANCE.getCommunicatingElement();
968
969 /**
970 * The meta object literal for the '<em><b>Comm Subsystem</b></em>' containment reference list feature.
971 * <!-- begin-user-doc -->
972 * <!-- end-user-doc -->
973 * @generated
974 */
975 EReference COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = eINSTANCE.getCommunicatingElement_CommSubsystem();
976
977 /**
978 * The meta object literal for the '<em><b>Communication Link</b></em>' containment reference feature.
979 * <!-- begin-user-doc -->
980 * <!-- end-user-doc -->
981 * @generated
982 */
983 EReference COMMUNICATING_ELEMENT__COMMUNICATION_LINK = eINSTANCE.getCommunicatingElement_CommunicationLink();
984
985 /**
986 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class.
987 * <!-- begin-user-doc -->
988 * <!-- end-user-doc -->
989 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl
990 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getGroundStationNetwork()
991 * @generated
992 */
993 EClass GROUND_STATION_NETWORK = eINSTANCE.getGroundStationNetwork();
994
995 /**
996 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class.
997 * <!-- begin-user-doc -->
998 * <!-- end-user-doc -->
999 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl
1000 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraft()
1001 * @generated
1002 */
1003 EClass SPACECRAFT = eINSTANCE.getSpacecraft();
1004
1005 /**
1006 * The meta object literal for the '<em><b>Payload</b></em>' containment reference feature.
1007 * <!-- begin-user-doc -->
1008 * <!-- end-user-doc -->
1009 * @generated
1010 */
1011 EReference SPACECRAFT__PAYLOAD = eINSTANCE.getSpacecraft_Payload();
1012
1013 /**
1014 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
1015 * <!-- begin-user-doc -->
1016 * <!-- end-user-doc -->
1017 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl
1018 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat3U()
1019 * @generated
1020 */
1021 EClass CUBE_SAT3_U = eINSTANCE.getCubeSat3U();
1022
1023 /**
1024 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
1025 * <!-- begin-user-doc -->
1026 * <!-- end-user-doc -->
1027 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl
1028 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat6U()
1029 * @generated
1030 */
1031 EClass CUBE_SAT6_U = eINSTANCE.getCubeSat6U();
1032
1033 /**
1034 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
1035 * <!-- begin-user-doc -->
1036 * <!-- end-user-doc -->
1037 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl
1038 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSmallSat()
1039 * @generated
1040 */
1041 EClass SMALL_SAT = eINSTANCE.getSmallSat();
1042
1043 /**
1044 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class.
1045 * <!-- begin-user-doc -->
1046 * <!-- end-user-doc -->
1047 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl
1048 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommSubsystem()
1049 * @generated
1050 */
1051 EClass COMM_SUBSYSTEM = eINSTANCE.getCommSubsystem();
1052
1053 /**
1054 * The meta object literal for the '<em><b>Band</b></em>' attribute feature.
1055 * <!-- begin-user-doc -->
1056 * <!-- end-user-doc -->
1057 * @generated
1058 */
1059 EAttribute COMM_SUBSYSTEM__BAND = eINSTANCE.getCommSubsystem_Band();
1060
1061 /**
1062 * The meta object literal for the '<em><b>Gain</b></em>' attribute feature.
1063 * <!-- begin-user-doc -->
1064 * <!-- end-user-doc -->
1065 * @generated
1066 */
1067 EAttribute COMM_SUBSYSTEM__GAIN = eINSTANCE.getCommSubsystem_Gain();
1068
1069 /**
1070 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class.
1071 * <!-- begin-user-doc -->
1072 * <!-- end-user-doc -->
1073 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl
1074 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink()
1075 * @generated
1076 */
1077 EClass DIRECTED_COMMUNICATION_LINK = eINSTANCE.getDirectedCommunicationLink();
1078
1079 /**
1080 * The meta object literal for the '<em><b>Source</b></em>' reference feature.
1081 * <!-- begin-user-doc -->
1082 * <!-- end-user-doc -->
1083 * @generated
1084 */
1085 EReference DIRECTED_COMMUNICATION_LINK__SOURCE = eINSTANCE.getDirectedCommunicationLink_Source();
1086
1087 /**
1088 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
1089 * <!-- begin-user-doc -->
1090 * <!-- end-user-doc -->
1091 * @generated
1092 */
1093 EReference DIRECTED_COMMUNICATION_LINK__TARGET = eINSTANCE.getDirectedCommunicationLink_Target();
1094
1095 /**
1096 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl <em>Payload</em>}' class.
1097 * <!-- begin-user-doc -->
1098 * <!-- end-user-doc -->
1099 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl
1100 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getPayload()
1101 * @generated
1102 */
1103 EClass PAYLOAD = eINSTANCE.getPayload();
1104
1105 /**
1106 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class.
1107 * <!-- begin-user-doc -->
1108 * <!-- end-user-doc -->
1109 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl
1110 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryPayload()
1111 * @generated
1112 */
1113 EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload();
1114
1115 /**
1116 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum.
1117 * <!-- begin-user-doc -->
1118 * <!-- end-user-doc -->
1119 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand
1120 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand()
1121 * @generated
1122 */
1123 EEnum TRANSCEIVER_BAND = eINSTANCE.getTransceiverBand();
1124
1125 /**
1126 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum.
1127 * <!-- begin-user-doc -->
1128 * <!-- end-user-doc -->
1129 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain
1130 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain()
1131 * @generated
1132 */
1133 EEnum ANTENNA_GAIN = eINSTANCE.getAntennaGain();
1134
1135 }
1136
1137} //SatellitePackage
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SmallSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SmallSat.java
new file mode 100644
index 00000000..b3a3d63c
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SmallSat.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>Small Sat</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see hu.bme.mit.inf.dslreasoner.domains.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/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
new file mode 100644
index 00000000..2e5e5044
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/Spacecraft.java
@@ -0,0 +1,48 @@
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>Spacecraft</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload <em>Payload</em>}</li>
15 * </ul>
16 *
17 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft()
18 * @model abstract="true"
19 * @generated
20 */
21public interface Spacecraft extends CommunicatingElement {
22 /**
23 * Returns the value of the '<em><b>Payload</b></em>' containment reference.
24 * <!-- begin-user-doc -->
25 * <p>
26 * If the meaning of the '<em>Payload</em>' containment reference isn't clear,
27 * there really should be more of a description here...
28 * </p>
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Payload</em>' containment reference.
31 * @see #setPayload(Payload)
32 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft_Payload()
33 * @model containment="true"
34 * @generated
35 */
36 Payload getPayload();
37
38 /**
39 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload <em>Payload</em>}' containment reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Payload</em>' containment reference.
43 * @see #getPayload()
44 * @generated
45 */
46 void setPayload(Payload value);
47
48} // Spacecraft
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/TransceiverBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/TransceiverBand.java
new file mode 100644
index 00000000..62aae5f7
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/TransceiverBand.java
@@ -0,0 +1,242 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommSubsystemImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommSubsystemImpl.java
new file mode 100644
index 00000000..fbde1603
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommSubsystemImpl.java
@@ -0,0 +1,226 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand;
9
10import org.eclipse.emf.common.notify.Notification;
11
12import org.eclipse.emf.ecore.EClass;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
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 hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl#getBand <em>Band</em>}</li>
26 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommunicatingElementImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommunicatingElementImpl.java
new file mode 100644
index 00000000..4b51e52e
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CommunicatingElementImpl.java
@@ -0,0 +1,237 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain;
14
15import org.eclipse.emf.common.util.EList;
16
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22
23import org.eclipse.emf.ecore.util.EObjectContainmentEList;
24import org.eclipse.emf.ecore.util.InternalEList;
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 hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl#getCommSubsystem <em>Comm Subsystem</em>}</li>
35 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/ConstellationMissionImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/ConstellationMissionImpl.java
new file mode 100644
index 00000000..710b5982
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/ConstellationMissionImpl.java
@@ -0,0 +1,237 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain;
14
15import org.eclipse.emf.common.util.EList;
16
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22
23import org.eclipse.emf.ecore.util.EObjectContainmentEList;
24import org.eclipse.emf.ecore.util.InternalEList;
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 hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl#getGroundStationNetwork <em>Ground Station Network</em>}</li>
35 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.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/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..0057b3d4
--- /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 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/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..3f34c6ea
--- /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 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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/DirectedCommunicationLinkImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/DirectedCommunicationLinkImpl.java
new file mode 100644
index 00000000..b0338e2d
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/DirectedCommunicationLinkImpl.java
@@ -0,0 +1,227 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
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 hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl#getSource <em>Source</em>}</li>
26 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/GroundStationNetworkImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/GroundStationNetworkImpl.java
new file mode 100644
index 00000000..890e807c
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/GroundStationNetworkImpl.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.GroundStationNetwork;
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>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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryMissionImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryMissionImpl.java
new file mode 100644
index 00000000..b2687ea3
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryMissionImpl.java
@@ -0,0 +1,166 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
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 hu.bme.mit.inf.dslreasoner.domains.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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryPayloadImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryPayloadImpl.java
new file mode 100644
index 00000000..5657c268
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/InterferometryPayloadImpl.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.InterferometryPayload;
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>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/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/PayloadImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/PayloadImpl.java
new file mode 100644
index 00000000..78625d22
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/PayloadImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
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/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
new file mode 100644
index 00000000..5deb0c05
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatelliteFactoryImpl.java
@@ -0,0 +1,268 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EDataType;
9import org.eclipse.emf.ecore.EObject;
10import org.eclipse.emf.ecore.EPackage;
11
12import org.eclipse.emf.ecore.impl.EFactoryImpl;
13
14import org.eclipse.emf.ecore.plugin.EcorePlugin;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model <b>Factory</b>.
19 * <!-- end-user-doc -->
20 * @generated
21 */
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.CUBE_SAT3_U:
65 return createCubeSat3U();
66 case SatellitePackage.CUBE_SAT6_U:
67 return createCubeSat6U();
68 case SatellitePackage.SMALL_SAT:
69 return createSmallSat();
70 case SatellitePackage.COMM_SUBSYSTEM:
71 return createCommSubsystem();
72 case SatellitePackage.DIRECTED_COMMUNICATION_LINK:
73 return createDirectedCommunicationLink();
74 case SatellitePackage.INTERFEROMETRY_PAYLOAD:
75 return createInterferometryPayload();
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 default:
94 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
95 }
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 @Override
104 public String convertToString(EDataType eDataType, Object instanceValue) {
105 switch (eDataType.getClassifierID()) {
106 case SatellitePackage.TRANSCEIVER_BAND:
107 return convertTransceiverBandToString(eDataType, instanceValue);
108 case SatellitePackage.ANTENNA_GAIN:
109 return convertAntennaGainToString(eDataType, instanceValue);
110 default:
111 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
112 }
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @Override
121 public InterferometryMission createInterferometryMission() {
122 InterferometryMissionImpl interferometryMission = new InterferometryMissionImpl();
123 return interferometryMission;
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public GroundStationNetwork createGroundStationNetwork() {
133 GroundStationNetworkImpl groundStationNetwork = new GroundStationNetworkImpl();
134 return groundStationNetwork;
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 @Override
143 public CubeSat3U createCubeSat3U() {
144 CubeSat3UImpl cubeSat3U = new CubeSat3UImpl();
145 return cubeSat3U;
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public CubeSat6U createCubeSat6U() {
155 CubeSat6UImpl cubeSat6U = new CubeSat6UImpl();
156 return cubeSat6U;
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public SmallSat createSmallSat() {
166 SmallSatImpl smallSat = new SmallSatImpl();
167 return smallSat;
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @Override
176 public CommSubsystem createCommSubsystem() {
177 CommSubsystemImpl commSubsystem = new CommSubsystemImpl();
178 return commSubsystem;
179 }
180
181 /**
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 */
186 @Override
187 public DirectedCommunicationLink createDirectedCommunicationLink() {
188 DirectedCommunicationLinkImpl directedCommunicationLink = new DirectedCommunicationLinkImpl();
189 return directedCommunicationLink;
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @Override
198 public InterferometryPayload createInterferometryPayload() {
199 InterferometryPayloadImpl interferometryPayload = new InterferometryPayloadImpl();
200 return interferometryPayload;
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) {
209 TransceiverBand result = TransceiverBand.get(initialValue);
210 if (result == null)
211 throw new IllegalArgumentException(
212 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
213 return result;
214 }
215
216 /**
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 */
221 public String convertTransceiverBandToString(EDataType eDataType, Object instanceValue) {
222 return instanceValue == null ? null : instanceValue.toString();
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 public AntennaGain createAntennaGainFromString(EDataType eDataType, String initialValue) {
231 AntennaGain result = AntennaGain.get(initialValue);
232 if (result == null)
233 throw new IllegalArgumentException(
234 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
235 return result;
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 public String convertAntennaGainToString(EDataType eDataType, Object instanceValue) {
244 return instanceValue == null ? null : instanceValue.toString();
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public SatellitePackage getSatellitePackage() {
254 return (SatellitePackage) getEPackage();
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @deprecated
261 * @generated
262 */
263 @Deprecated
264 public static SatellitePackage getPackage() {
265 return SatellitePackage.eINSTANCE;
266 }
267
268} //SatelliteFactoryImpl
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
new file mode 100644
index 00000000..067eabd4
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SatellitePackageImpl.java
@@ -0,0 +1,624 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.SatelliteFactory;
17import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
18import hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat;
19import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
20import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand;
21
22import org.eclipse.emf.ecore.EAttribute;
23import org.eclipse.emf.ecore.EClass;
24import org.eclipse.emf.ecore.EEnum;
25import org.eclipse.emf.ecore.EPackage;
26import org.eclipse.emf.ecore.EReference;
27
28import org.eclipse.emf.ecore.impl.EPackageImpl;
29
30/**
31 * <!-- begin-user-doc -->
32 * An implementation of the model <b>Package</b>.
33 * <!-- end-user-doc -->
34 * @generated
35 */
36public class SatellitePackageImpl extends EPackageImpl implements SatellitePackage {
37 /**
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 private EClass constellationMissionEClass = null;
43
44 /**
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 private EClass interferometryMissionEClass = null;
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 private EClass communicatingElementEClass = null;
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 private EClass groundStationNetworkEClass = null;
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 private EClass spacecraftEClass = null;
71
72 /**
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 */
77 private EClass cubeSat3UEClass = null;
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 private EClass cubeSat6UEClass = null;
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 private EClass smallSatEClass = null;
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 private EClass commSubsystemEClass = null;
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 private EClass directedCommunicationLinkEClass = null;
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 private EClass payloadEClass = null;
113
114 /**
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @generated
118 */
119 private EClass interferometryPayloadEClass = null;
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 private EEnum transceiverBandEEnum = null;
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 private EEnum antennaGainEEnum = null;
134
135 /**
136 * Creates an instance of the model <b>Package</b>, registered with
137 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
138 * package URI value.
139 * <p>Note: the correct way to create the package is via the static
140 * factory method {@link #init init()}, which also performs
141 * initialization of the package, or returns the registered package,
142 * if one already exists.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @see org.eclipse.emf.ecore.EPackage.Registry
146 * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#eNS_URI
147 * @see #init()
148 * @generated
149 */
150 private SatellitePackageImpl() {
151 super(eNS_URI, SatelliteFactory.eINSTANCE);
152 }
153
154 /**
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 */
159 private static boolean isInited = false;
160
161 /**
162 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
163 *
164 * <p>This method is used to initialize {@link SatellitePackage#eINSTANCE} when that field is accessed.
165 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @see #eNS_URI
169 * @see #createPackageContents()
170 * @see #initializePackageContents()
171 * @generated
172 */
173 public static SatellitePackage init() {
174 if (isInited)
175 return (SatellitePackage) EPackage.Registry.INSTANCE.getEPackage(SatellitePackage.eNS_URI);
176
177 // Obtain or create and register package
178 Object registeredSatellitePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
179 SatellitePackageImpl theSatellitePackage = registeredSatellitePackage instanceof SatellitePackageImpl
180 ? (SatellitePackageImpl) registeredSatellitePackage
181 : new SatellitePackageImpl();
182
183 isInited = true;
184
185 // Create package meta-data objects
186 theSatellitePackage.createPackageContents();
187
188 // Initialize created meta-data
189 theSatellitePackage.initializePackageContents();
190
191 // Mark meta-data to indicate it can't be changed
192 theSatellitePackage.freeze();
193
194 // Update the registry and return the package
195 EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, theSatellitePackage);
196 return theSatellitePackage;
197 }
198
199 /**
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 @Override
205 public EClass getConstellationMission() {
206 return constellationMissionEClass;
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public EReference getConstellationMission_GroundStationNetwork() {
216 return (EReference) constellationMissionEClass.getEStructuralFeatures().get(0);
217 }
218
219 /**
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 */
224 @Override
225 public EReference getConstellationMission_Spacecraft() {
226 return (EReference) constellationMissionEClass.getEStructuralFeatures().get(1);
227 }
228
229 /**
230 * <!-- begin-user-doc -->
231 * <!-- end-user-doc -->
232 * @generated
233 */
234 @Override
235 public EClass getInterferometryMission() {
236 return interferometryMissionEClass;
237 }
238
239 /**
240 * <!-- begin-user-doc -->
241 * <!-- end-user-doc -->
242 * @generated
243 */
244 @Override
245 public EAttribute getInterferometryMission_ObservationTime() {
246 return (EAttribute) interferometryMissionEClass.getEStructuralFeatures().get(0);
247 }
248
249 /**
250 * <!-- begin-user-doc -->
251 * <!-- end-user-doc -->
252 * @generated
253 */
254 @Override
255 public EClass getCommunicatingElement() {
256 return communicatingElementEClass;
257 }
258
259 /**
260 * <!-- begin-user-doc -->
261 * <!-- end-user-doc -->
262 * @generated
263 */
264 @Override
265 public EReference getCommunicatingElement_CommSubsystem() {
266 return (EReference) communicatingElementEClass.getEStructuralFeatures().get(0);
267 }
268
269 /**
270 * <!-- begin-user-doc -->
271 * <!-- end-user-doc -->
272 * @generated
273 */
274 @Override
275 public EReference getCommunicatingElement_CommunicationLink() {
276 return (EReference) communicatingElementEClass.getEStructuralFeatures().get(1);
277 }
278
279 /**
280 * <!-- begin-user-doc -->
281 * <!-- end-user-doc -->
282 * @generated
283 */
284 @Override
285 public EClass getGroundStationNetwork() {
286 return groundStationNetworkEClass;
287 }
288
289 /**
290 * <!-- begin-user-doc -->
291 * <!-- end-user-doc -->
292 * @generated
293 */
294 @Override
295 public EClass getSpacecraft() {
296 return spacecraftEClass;
297 }
298
299 /**
300 * <!-- begin-user-doc -->
301 * <!-- end-user-doc -->
302 * @generated
303 */
304 @Override
305 public EReference getSpacecraft_Payload() {
306 return (EReference) spacecraftEClass.getEStructuralFeatures().get(0);
307 }
308
309 /**
310 * <!-- begin-user-doc -->
311 * <!-- end-user-doc -->
312 * @generated
313 */
314 @Override
315 public EClass getCubeSat3U() {
316 return cubeSat3UEClass;
317 }
318
319 /**
320 * <!-- begin-user-doc -->
321 * <!-- end-user-doc -->
322 * @generated
323 */
324 @Override
325 public EClass getCubeSat6U() {
326 return cubeSat6UEClass;
327 }
328
329 /**
330 * <!-- begin-user-doc -->
331 * <!-- end-user-doc -->
332 * @generated
333 */
334 @Override
335 public EClass getSmallSat() {
336 return smallSatEClass;
337 }
338
339 /**
340 * <!-- begin-user-doc -->
341 * <!-- end-user-doc -->
342 * @generated
343 */
344 @Override
345 public EClass getCommSubsystem() {
346 return commSubsystemEClass;
347 }
348
349 /**
350 * <!-- begin-user-doc -->
351 * <!-- end-user-doc -->
352 * @generated
353 */
354 @Override
355 public EAttribute getCommSubsystem_Band() {
356 return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(0);
357 }
358
359 /**
360 * <!-- begin-user-doc -->
361 * <!-- end-user-doc -->
362 * @generated
363 */
364 @Override
365 public EAttribute getCommSubsystem_Gain() {
366 return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(1);
367 }
368
369 /**
370 * <!-- begin-user-doc -->
371 * <!-- end-user-doc -->
372 * @generated
373 */
374 @Override
375 public EClass getDirectedCommunicationLink() {
376 return directedCommunicationLinkEClass;
377 }
378
379 /**
380 * <!-- begin-user-doc -->
381 * <!-- end-user-doc -->
382 * @generated
383 */
384 @Override
385 public EReference getDirectedCommunicationLink_Source() {
386 return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(0);
387 }
388
389 /**
390 * <!-- begin-user-doc -->
391 * <!-- end-user-doc -->
392 * @generated
393 */
394 @Override
395 public EReference getDirectedCommunicationLink_Target() {
396 return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(1);
397 }
398
399 /**
400 * <!-- begin-user-doc -->
401 * <!-- end-user-doc -->
402 * @generated
403 */
404 @Override
405 public EClass getPayload() {
406 return payloadEClass;
407 }
408
409 /**
410 * <!-- begin-user-doc -->
411 * <!-- end-user-doc -->
412 * @generated
413 */
414 @Override
415 public EClass getInterferometryPayload() {
416 return interferometryPayloadEClass;
417 }
418
419 /**
420 * <!-- begin-user-doc -->
421 * <!-- end-user-doc -->
422 * @generated
423 */
424 @Override
425 public EEnum getTransceiverBand() {
426 return transceiverBandEEnum;
427 }
428
429 /**
430 * <!-- begin-user-doc -->
431 * <!-- end-user-doc -->
432 * @generated
433 */
434 @Override
435 public EEnum getAntennaGain() {
436 return antennaGainEEnum;
437 }
438
439 /**
440 * <!-- begin-user-doc -->
441 * <!-- end-user-doc -->
442 * @generated
443 */
444 @Override
445 public SatelliteFactory getSatelliteFactory() {
446 return (SatelliteFactory) getEFactoryInstance();
447 }
448
449 /**
450 * <!-- begin-user-doc -->
451 * <!-- end-user-doc -->
452 * @generated
453 */
454 private boolean isCreated = false;
455
456 /**
457 * Creates the meta-model objects for the package. This method is
458 * guarded to have no affect on any invocation but its first.
459 * <!-- begin-user-doc -->
460 * <!-- end-user-doc -->
461 * @generated
462 */
463 public void createPackageContents() {
464 if (isCreated)
465 return;
466 isCreated = true;
467
468 // Create classes and their features
469 constellationMissionEClass = createEClass(CONSTELLATION_MISSION);
470 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__GROUND_STATION_NETWORK);
471 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT);
472
473 interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION);
474 createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME);
475
476 communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT);
477 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM);
478 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMMUNICATION_LINK);
479
480 groundStationNetworkEClass = createEClass(GROUND_STATION_NETWORK);
481
482 spacecraftEClass = createEClass(SPACECRAFT);
483 createEReference(spacecraftEClass, SPACECRAFT__PAYLOAD);
484
485 cubeSat3UEClass = createEClass(CUBE_SAT3_U);
486
487 cubeSat6UEClass = createEClass(CUBE_SAT6_U);
488
489 smallSatEClass = createEClass(SMALL_SAT);
490
491 commSubsystemEClass = createEClass(COMM_SUBSYSTEM);
492 createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__BAND);
493 createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__GAIN);
494
495 directedCommunicationLinkEClass = createEClass(DIRECTED_COMMUNICATION_LINK);
496 createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__SOURCE);
497 createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__TARGET);
498
499 payloadEClass = createEClass(PAYLOAD);
500
501 interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD);
502
503 // Create enums
504 transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND);
505 antennaGainEEnum = createEEnum(ANTENNA_GAIN);
506 }
507
508 /**
509 * <!-- begin-user-doc -->
510 * <!-- end-user-doc -->
511 * @generated
512 */
513 private boolean isInitialized = false;
514
515 /**
516 * Complete the initialization of the package and its meta-model. This
517 * method is guarded to have no affect on any invocation but its first.
518 * <!-- begin-user-doc -->
519 * <!-- end-user-doc -->
520 * @generated
521 */
522 public void initializePackageContents() {
523 if (isInitialized)
524 return;
525 isInitialized = true;
526
527 // Initialize package
528 setName(eNAME);
529 setNsPrefix(eNS_PREFIX);
530 setNsURI(eNS_URI);
531
532 // Create type parameters
533
534 // Set bounds for type parameters
535
536 // Add supertypes to classes
537 interferometryMissionEClass.getESuperTypes().add(this.getConstellationMission());
538 groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement());
539 spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement());
540 cubeSat3UEClass.getESuperTypes().add(this.getSpacecraft());
541 cubeSat6UEClass.getESuperTypes().add(this.getSpacecraft());
542 smallSatEClass.getESuperTypes().add(this.getSpacecraft());
543 interferometryPayloadEClass.getESuperTypes().add(this.getPayload());
544
545 // Initialize classes, features, and operations; add parameters
546 initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT,
547 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
548 initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null,
549 "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE,
550 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
551 initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, 50,
552 ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
553 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
554
555 initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT,
556 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
557 initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEFloat(), "observationTime", "2.0",
558 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
559 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
560
561 initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT,
562 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
563 initEReference(getCommunicatingElement_CommSubsystem(), this.getCommSubsystem(), null, "commSubsystem", null, 1,
564 2, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
565 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
566 initEReference(getCommunicatingElement_CommunicationLink(), this.getDirectedCommunicationLink(), null,
567 "communicationLink", null, 0, 1, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
568 IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
569
570 initEClass(groundStationNetworkEClass, GroundStationNetwork.class, "GroundStationNetwork", !IS_ABSTRACT,
571 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
572
573 initEClass(spacecraftEClass, Spacecraft.class, "Spacecraft", IS_ABSTRACT, !IS_INTERFACE,
574 IS_GENERATED_INSTANCE_CLASS);
575 initEReference(getSpacecraft_Payload(), this.getPayload(), null, "payload", null, 0, 1, Spacecraft.class,
576 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
577 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
578
579 initEClass(cubeSat3UEClass, CubeSat3U.class, "CubeSat3U", !IS_ABSTRACT, !IS_INTERFACE,
580 IS_GENERATED_INSTANCE_CLASS);
581
582 initEClass(cubeSat6UEClass, CubeSat6U.class, "CubeSat6U", !IS_ABSTRACT, !IS_INTERFACE,
583 IS_GENERATED_INSTANCE_CLASS);
584
585 initEClass(smallSatEClass, SmallSat.class, "SmallSat", !IS_ABSTRACT, !IS_INTERFACE,
586 IS_GENERATED_INSTANCE_CLASS);
587
588 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE,
589 IS_GENERATED_INSTANCE_CLASS);
590 initEAttribute(getCommSubsystem_Band(), this.getTransceiverBand(), "band", null, 1, 1, CommSubsystem.class,
591 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
592 initEAttribute(getCommSubsystem_Gain(), this.getAntennaGain(), "gain", null, 1, 1, CommSubsystem.class,
593 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
594
595 initEClass(directedCommunicationLinkEClass, DirectedCommunicationLink.class, "DirectedCommunicationLink",
596 !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
597 initEReference(getDirectedCommunicationLink_Source(), this.getCommSubsystem(), null, "source", null, 1, 1,
598 DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
599 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
600 initEReference(getDirectedCommunicationLink_Target(), this.getCommSubsystem(), null, "target", null, 1, 1,
601 DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
602 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
603
604 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
605
606 initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT,
607 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
608
609 // Initialize enums and add enum literals
610 initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand");
611 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF);
612 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.X);
613 addEEnumLiteral(transceiverBandEEnum, TransceiverBand.KA);
614
615 initEEnum(antennaGainEEnum, AntennaGain.class, "AntennaGain");
616 addEEnumLiteral(antennaGainEEnum, AntennaGain.LOW);
617 addEEnumLiteral(antennaGainEEnum, AntennaGain.MEDIUM);
618 addEEnumLiteral(antennaGainEEnum, AntennaGain.HIGH);
619
620 // Create resource
621 createResource(eNS_URI);
622 }
623
624} //SatellitePackageImpl
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
new file mode 100644
index 00000000..caefd377
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java
@@ -0,0 +1,184 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.impl;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Spacecraft</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl#getPayload <em>Payload</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public abstract class SpacecraftImpl extends CommunicatingElementImpl implements Spacecraft {
31 /**
32 * The cached value of the '{@link #getPayload() <em>Payload</em>}' containment reference.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getPayload()
36 * @generated
37 * @ordered
38 */
39 protected Payload payload;
40
41 /**
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @generated
45 */
46 protected SpacecraftImpl() {
47 super();
48 }
49
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 @Override
56 protected EClass eStaticClass() {
57 return SatellitePackage.Literals.SPACECRAFT;
58 }
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 @Override
66 public Payload getPayload() {
67 return payload;
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 public NotificationChain basicSetPayload(Payload newPayload, NotificationChain msgs) {
76 Payload oldPayload = payload;
77 payload = newPayload;
78 if (eNotificationRequired()) {
79 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
80 SatellitePackage.SPACECRAFT__PAYLOAD, oldPayload, newPayload);
81 if (msgs == null)
82 msgs = notification;
83 else
84 msgs.add(notification);
85 }
86 return msgs;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public void setPayload(Payload newPayload) {
96 if (newPayload != payload) {
97 NotificationChain msgs = null;
98 if (payload != null)
99 msgs = ((InternalEObject) payload).eInverseRemove(this,
100 EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs);
101 if (newPayload != null)
102 msgs = ((InternalEObject) newPayload).eInverseAdd(this,
103 EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs);
104 msgs = basicSetPayload(newPayload, msgs);
105 if (msgs != null)
106 msgs.dispatch();
107 } else if (eNotificationRequired())
108 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, newPayload,
109 newPayload));
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
119 switch (featureID) {
120 case SatellitePackage.SPACECRAFT__PAYLOAD:
121 return basicSetPayload(null, msgs);
122 }
123 return super.eInverseRemove(otherEnd, featureID, msgs);
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public Object eGet(int featureID, boolean resolve, boolean coreType) {
133 switch (featureID) {
134 case SatellitePackage.SPACECRAFT__PAYLOAD:
135 return getPayload();
136 }
137 return super.eGet(featureID, resolve, coreType);
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 @Override
146 public void eSet(int featureID, Object newValue) {
147 switch (featureID) {
148 case SatellitePackage.SPACECRAFT__PAYLOAD:
149 setPayload((Payload) newValue);
150 return;
151 }
152 super.eSet(featureID, newValue);
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public void eUnset(int featureID) {
162 switch (featureID) {
163 case SatellitePackage.SPACECRAFT__PAYLOAD:
164 setPayload((Payload) null);
165 return;
166 }
167 super.eUnset(featureID);
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @Override
176 public boolean eIsSet(int featureID) {
177 switch (featureID) {
178 case SatellitePackage.SPACECRAFT__PAYLOAD:
179 return payload != null;
180 }
181 return super.eIsSet(featureID);
182 }
183
184} //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
new file mode 100644
index 00000000..c2ba615b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java
@@ -0,0 +1,328 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.util;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.*;
6
7import org.eclipse.emf.common.notify.Adapter;
8import org.eclipse.emf.common.notify.Notifier;
9
10import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
11
12import org.eclipse.emf.ecore.EObject;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see hu.bme.mit.inf.dslreasoner.domains.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 caseCubeSat3U(CubeSat3U object) {
96 return createCubeSat3UAdapter();
97 }
98
99 @Override
100 public Adapter caseCubeSat6U(CubeSat6U object) {
101 return createCubeSat6UAdapter();
102 }
103
104 @Override
105 public Adapter caseSmallSat(SmallSat object) {
106 return createSmallSatAdapter();
107 }
108
109 @Override
110 public Adapter caseCommSubsystem(CommSubsystem object) {
111 return createCommSubsystemAdapter();
112 }
113
114 @Override
115 public Adapter caseDirectedCommunicationLink(DirectedCommunicationLink object) {
116 return createDirectedCommunicationLinkAdapter();
117 }
118
119 @Override
120 public Adapter casePayload(Payload object) {
121 return createPayloadAdapter();
122 }
123
124 @Override
125 public Adapter caseInterferometryPayload(InterferometryPayload object) {
126 return createInterferometryPayloadAdapter();
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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.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 hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U <em>Cube Sat3 U</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 hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U
226 * @generated
227 */
228 public Adapter createCubeSat3UAdapter() {
229 return null;
230 }
231
232 /**
233 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U <em>Cube Sat6 U</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 hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U
240 * @generated
241 */
242 public Adapter createCubeSat6UAdapter() {
243 return null;
244 }
245
246 /**
247 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat <em>Small Sat</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 hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat
254 * @generated
255 */
256 public Adapter createSmallSatAdapter() {
257 return null;
258 }
259
260 /**
261 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem <em>Comm Subsystem</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 hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem
268 * @generated
269 */
270 public Adapter createCommSubsystemAdapter() {
271 return null;
272 }
273
274 /**
275 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink <em>Directed Communication Link</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 hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink
282 * @generated
283 */
284 public Adapter createDirectedCommunicationLinkAdapter() {
285 return null;
286 }
287
288 /**
289 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Payload <em>Payload</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 hu.bme.mit.inf.dslreasoner.domains.satellite.Payload
296 * @generated
297 */
298 public Adapter createPayloadAdapter() {
299 return null;
300 }
301
302 /**
303 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload <em>Interferometry Payload</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 hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload
310 * @generated
311 */
312 public Adapter createInterferometryPayloadAdapter() {
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/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
new file mode 100644
index 00000000..65b24430
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteSwitch.java
@@ -0,0 +1,374 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.satellite.util;
4
5import hu.bme.mit.inf.dslreasoner.domains.satellite.*;
6
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.util.Switch;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see hu.bme.mit.inf.dslreasoner.domains.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.CUBE_SAT3_U: {
111 CubeSat3U cubeSat3U = (CubeSat3U) theEObject;
112 T result = caseCubeSat3U(cubeSat3U);
113 if (result == null)
114 result = caseSpacecraft(cubeSat3U);
115 if (result == null)
116 result = caseCommunicatingElement(cubeSat3U);
117 if (result == null)
118 result = defaultCase(theEObject);
119 return result;
120 }
121 case SatellitePackage.CUBE_SAT6_U: {
122 CubeSat6U cubeSat6U = (CubeSat6U) theEObject;
123 T result = caseCubeSat6U(cubeSat6U);
124 if (result == null)
125 result = caseSpacecraft(cubeSat6U);
126 if (result == null)
127 result = caseCommunicatingElement(cubeSat6U);
128 if (result == null)
129 result = defaultCase(theEObject);
130 return result;
131 }
132 case SatellitePackage.SMALL_SAT: {
133 SmallSat smallSat = (SmallSat) theEObject;
134 T result = caseSmallSat(smallSat);
135 if (result == null)
136 result = caseSpacecraft(smallSat);
137 if (result == null)
138 result = caseCommunicatingElement(smallSat);
139 if (result == null)
140 result = defaultCase(theEObject);
141 return result;
142 }
143 case SatellitePackage.COMM_SUBSYSTEM: {
144 CommSubsystem commSubsystem = (CommSubsystem) theEObject;
145 T result = caseCommSubsystem(commSubsystem);
146 if (result == null)
147 result = defaultCase(theEObject);
148 return result;
149 }
150 case SatellitePackage.DIRECTED_COMMUNICATION_LINK: {
151 DirectedCommunicationLink directedCommunicationLink = (DirectedCommunicationLink) theEObject;
152 T result = caseDirectedCommunicationLink(directedCommunicationLink);
153 if (result == null)
154 result = defaultCase(theEObject);
155 return result;
156 }
157 case SatellitePackage.PAYLOAD: {
158 Payload payload = (Payload) theEObject;
159 T result = casePayload(payload);
160 if (result == null)
161 result = defaultCase(theEObject);
162 return result;
163 }
164 case SatellitePackage.INTERFEROMETRY_PAYLOAD: {
165 InterferometryPayload interferometryPayload = (InterferometryPayload) theEObject;
166 T result = caseInterferometryPayload(interferometryPayload);
167 if (result == null)
168 result = casePayload(interferometryPayload);
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>Cube Sat3 U</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>Cube Sat3 U</em>'.
261 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
262 * @generated
263 */
264 public T caseCubeSat3U(CubeSat3U object) {
265 return null;
266 }
267
268 /**
269 * Returns the result of interpreting the object as an instance of '<em>Cube Sat6 U</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>Cube Sat6 U</em>'.
276 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
277 * @generated
278 */
279 public T caseCubeSat6U(CubeSat6U object) {
280 return null;
281 }
282
283 /**
284 * Returns the result of interpreting the object as an instance of '<em>Small Sat</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>Small Sat</em>'.
291 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
292 * @generated
293 */
294 public T caseSmallSat(SmallSat object) {
295 return null;
296 }
297
298 /**
299 * Returns the result of interpreting the object as an instance of '<em>Comm Subsystem</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>Comm Subsystem</em>'.
306 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
307 * @generated
308 */
309 public T caseCommSubsystem(CommSubsystem object) {
310 return null;
311 }
312
313 /**
314 * Returns the result of interpreting the object as an instance of '<em>Directed Communication Link</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>Directed Communication Link</em>'.
321 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
322 * @generated
323 */
324 public T caseDirectedCommunicationLink(DirectedCommunicationLink object) {
325 return null;
326 }
327
328 /**
329 * Returns the result of interpreting the object as an instance of '<em>Payload</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>Payload</em>'.
336 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
337 * @generated
338 */
339 public T casePayload(Payload object) {
340 return null;
341 }
342
343 /**
344 * Returns the result of interpreting the object as an instance of '<em>Interferometry Payload</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>Interferometry Payload</em>'.
351 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
352 * @generated
353 */
354 public T caseInterferometryPayload(InterferometryPayload 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/inputs/SatelliteInstance.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi
new file mode 100644
index 00000000..9431d981
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi
@@ -0,0 +1,16 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<satellite:InterferometryMission
3 xmi:version="2.0"
4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xmlns:satellite="http://www.example.org/satellite"
7 xsi:schemaLocation="http://www.example.org/satellite ../model/satellite.ecore">
8 <groundStationNetwork>
9 <commSubsystem
10 band="X"
11 gain="MEDIUM"/>
12 <commSubsystem
13 band="Ka"
14 gain="HIGH"/>
15 </groundStationNetwork>
16</satellite:InterferometryMission>
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
new file mode 100644
index 00000000..3aa1cc06
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird
@@ -0,0 +1,2121 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
3 <viewpoint:DAnalysis uid="_rcawQF0qEemRYLyXht2IrQ" selectedViews="_reOHEF0qEemRYLyXht2IrQ" version="14.1.0.201810161215">
4 <semanticResources>satellite.ecore</semanticResources>
5 <semanticResources>satellite.genmodel</semanticResources>
6 <semanticResources>../src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql</semanticResources>
7 <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
8 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.GenericPatternMatcher</semanticResources>
9 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseMatcher</semanticResources>
10 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.GenericPatternMatch</semanticResources>
11 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.GenericQuerySpecification</semanticResources>
12 <semanticResources>java:/Objects/java.lang.Object</semanticResources>
13 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.ViatraQueryEngine</semanticResources>
14 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.tuple.Tuple</semanticResources>
15 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.internal.apiimpl.QueryResultWrapper</semanticResources>
16 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher</semanticResources>
17 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.IQuerySpecification</semanticResources>
18 <semanticResources>java:/Primitives</semanticResources>
19 <semanticResources>java:/Objects/java.util.function.Consumer</semanticResources>
20 <semanticResources>java:/Objects/java.util.Collection</semanticResources>
21 <semanticResources>java:/Objects/java.lang.String</semanticResources>
22 <semanticResources>java:/Objects/java.util.Set</semanticResources>
23 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.IMatcherCapability</semanticResources>
24 <semanticResources>java:/Objects/java.util.Optional</semanticResources>
25 <semanticResources>java:/Objects/java.util.List</semanticResources>
26 <semanticResources>java:/Objects/java.lang.Integer</semanticResources>
27 <semanticResources>java:/Objects/java.util.stream.Stream</semanticResources>
28 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.IQueryResultProvider</semanticResources>
29 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.IPatternMatch</semanticResources>
30 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQueryHeader</semanticResources>
31 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery</semanticResources>
32 <semanticResources>java:/Objects/java.lang.Class</semanticResources>
33 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.scope.QueryScope</semanticResources>
34 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation</semanticResources>
35 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter</semanticResources>
36 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility</semanticResources>
37 <semanticResources>java:/Objects/java.util.function.BiConsumer</semanticResources>
38 <semanticResources>java:/Objects/java.lang.FunctionalInterface</semanticResources>
39 <semanticResources>java:/Objects/java.lang.annotation.Target</semanticResources>
40 <semanticResources>java:/Objects/java.lang.annotation.ElementType</semanticResources>
41 <semanticResources>java:/Objects/java.lang.annotation.Retention</semanticResources>
42 <semanticResources>java:/Objects/java.lang.annotation.RetentionPolicy</semanticResources>
43 <semanticResources>java:/Objects/java.lang.annotation.Documented</semanticResources>
44 <semanticResources>java:/Objects/java.lang.annotation.Annotation</semanticResources>
45 <semanticResources>java:/Objects/java.lang.Enum</semanticResources>
46 <semanticResources>java:/Objects/java.lang.Comparable</semanticResources>
47 <semanticResources>java:/Objects/java.io.Serializable</semanticResources>
48 <semanticResources>java:/Objects/java.lang.CloneNotSupportedException</semanticResources>
49 <semanticResources>java:/Objects/java.io.ObjectInputStream</semanticResources>
50 <semanticResources>java:/Objects/java.io.IOException</semanticResources>
51 <semanticResources>java:/Objects/java.lang.ClassNotFoundException</semanticResources>
52 <semanticResources>java:/Objects/java.io.ObjectStreamException</semanticResources>
53 <semanticResources>java:/Objects/java.lang.Exception</semanticResources>
54 <semanticResources>java:/Objects/java.lang.Throwable</semanticResources>
55 <semanticResources>java:/Objects/java.io.PrintWriter</semanticResources>
56 <semanticResources>java:/Objects/java.io.PrintStream</semanticResources>
57 <semanticResources>java:/Objects/java.lang.StackTraceElement</semanticResources>
58 <semanticResources>java:/Objects/java.io.ObjectOutputStream</semanticResources>
59 <semanticResources>java:/Objects/java.io.Writer</semanticResources>
60 <semanticResources>java:/Objects/java.io.OutputStream</semanticResources>
61 <semanticResources>java:/Objects/java.io.FileNotFoundException</semanticResources>
62 <semanticResources>java:/Objects/java.io.File</semanticResources>
63 <semanticResources>java:/Objects/java.nio.charset.Charset</semanticResources>
64 <semanticResources>java:/Objects/java.io.UnsupportedEncodingException</semanticResources>
65 <semanticResources>java:/Objects/java.lang.CharSequence</semanticResources>
66 <semanticResources>java:/Objects/java.util.Locale</semanticResources>
67 <semanticResources>java:/Objects/java.util.Formatter</semanticResources>
68 <semanticResources>java:/Objects/java.lang.Appendable</semanticResources>
69 <semanticResources>java:/Objects/java.io.Closeable</semanticResources>
70 <semanticResources>java:/Objects/java.io.Flushable</semanticResources>
71 <semanticResources>java:/Objects/java.lang.AutoCloseable</semanticResources>
72 <semanticResources>java:/Objects/java.security.SecureRandom</semanticResources>
73 <semanticResources>java:/Objects/java.net.URI</semanticResources>
74 <semanticResources>java:/Objects/java.io.FilenameFilter</semanticResources>
75 <semanticResources>java:/Objects/java.io.FileFilter</semanticResources>
76 <semanticResources>java:/Objects/java.nio.file.Path</semanticResources>
77 <semanticResources>java:/Objects/java.lang.Deprecated</semanticResources>
78 <semanticResources>java:/Objects/java.net.MalformedURLException</semanticResources>
79 <semanticResources>java:/Objects/java.net.URL</semanticResources>
80 <semanticResources>java:/Objects/sun.misc.Unsafe</semanticResources>
81 <semanticResources>java:/Objects/java.io.FileSystem</semanticResources>
82 <semanticResources>java:/Objects/java.util.Random</semanticResources>
83 <semanticResources>java:/Objects/java.util.regex.Pattern</semanticResources>
84 <semanticResources>java:/Objects/java.security.SecureRandomSpi</semanticResources>
85 <semanticResources>java:/Objects/java.security.Provider</semanticResources>
86 <semanticResources>java:/Objects/java.security.NoSuchAlgorithmException</semanticResources>
87 <semanticResources>java:/Objects/java.security.NoSuchProviderException</semanticResources>
88 <semanticResources>java:/Objects/java.security.MessageDigest</semanticResources>
89 <semanticResources>java:/Objects/sun.security.util.Debug</semanticResources>
90 <semanticResources>java:/Objects/java.util.Spliterator</semanticResources>
91 <semanticResources>java:/Objects/java.util.function.DoubleConsumer</semanticResources>
92 <semanticResources>java:/Objects/java.util.function.LongConsumer</semanticResources>
93 <semanticResources>java:/Objects/java.util.function.IntConsumer</semanticResources>
94 <semanticResources>java:/Objects/java.util.stream.DoubleStream</semanticResources>
95 <semanticResources>java:/Objects/java.util.stream.IntStream</semanticResources>
96 <semanticResources>java:/Objects/java.util.stream.LongStream</semanticResources>
97 <semanticResources>java:/Objects/java.util.concurrent.atomic.AtomicLong</semanticResources>
98 <semanticResources>java:/Objects/java.io.ObjectStreamField</semanticResources>
99 <semanticResources>java:/Objects/java.lang.Double</semanticResources>
100 <semanticResources>java:/Objects/java.lang.Long</semanticResources>
101 <semanticResources>java:/Objects/java.util.Comparator</semanticResources>
102 <semanticResources>java:/Objects/java.lang.Number</semanticResources>
103 <semanticResources>java:/Objects/java.lang.NumberFormatException</semanticResources>
104 <semanticResources>java:/Objects/java.lang.IllegalArgumentException</semanticResources>
105 <semanticResources>java:/Objects/java.lang.RuntimeException</semanticResources>
106 <semanticResources>java:/Objects/java.math.BigInteger</semanticResources>
107 <semanticResources>java:/Objects/java.lang.StringBuilder</semanticResources>
108 <semanticResources>java:/Objects/java.lang.AbstractStringBuilder</semanticResources>
109 <semanticResources>java:/Objects/java.lang.StringBuffer</semanticResources>
110 <semanticResources>java:/Objects/java.util.function.Function</semanticResources>
111 <semanticResources>java:/Objects/java.util.function.ToDoubleFunction</semanticResources>
112 <semanticResources>java:/Objects/java.util.function.ToIntFunction</semanticResources>
113 <semanticResources>java:/Objects/java.util.function.ToLongFunction</semanticResources>
114 <semanticResources>java:/Objects/java.util.stream.BaseStream</semanticResources>
115 <semanticResources>java:/Objects/java.util.function.DoublePredicate</semanticResources>
116 <semanticResources>java:/Objects/java.util.OptionalDouble</semanticResources>
117 <semanticResources>java:/Objects/java.util.function.Supplier</semanticResources>
118 <semanticResources>java:/Objects/java.util.function.ObjDoubleConsumer</semanticResources>
119 <semanticResources>java:/Objects/java.util.function.DoubleFunction</semanticResources>
120 <semanticResources>java:/Objects/java.util.function.DoubleSupplier</semanticResources>
121 <semanticResources>java:/Objects/java.util.function.DoubleUnaryOperator</semanticResources>
122 <semanticResources>java:/Objects/java.util.PrimitiveIterator</semanticResources>
123 <semanticResources>java:/Objects/java.util.function.DoubleToIntFunction</semanticResources>
124 <semanticResources>java:/Objects/java.util.function.DoubleToLongFunction</semanticResources>
125 <semanticResources>java:/Objects/java.util.function.DoubleBinaryOperator</semanticResources>
126 <semanticResources>java:/Objects/java.util.DoubleSummaryStatistics</semanticResources>
127 <semanticResources>java:/Objects/java.util.Iterator</semanticResources>
128 <semanticResources>java:/Objects/java.lang.Runnable</semanticResources>
129 <semanticResources>java:/Objects/java.util.function.IntPredicate</semanticResources>
130 <semanticResources>java:/Objects/java.util.function.ObjIntConsumer</semanticResources>
131 <semanticResources>java:/Objects/java.util.OptionalInt</semanticResources>
132 <semanticResources>java:/Objects/java.util.function.IntFunction</semanticResources>
133 <semanticResources>java:/Objects/java.util.function.IntSupplier</semanticResources>
134 <semanticResources>java:/Objects/java.util.function.IntUnaryOperator</semanticResources>
135 <semanticResources>java:/Objects/java.util.function.IntToDoubleFunction</semanticResources>
136 <semanticResources>java:/Objects/java.util.function.IntToLongFunction</semanticResources>
137 <semanticResources>java:/Objects/java.util.function.IntBinaryOperator</semanticResources>
138 <semanticResources>java:/Objects/java.util.IntSummaryStatistics</semanticResources>
139 <semanticResources>java:/Objects/java.util.function.LongPredicate</semanticResources>
140 <semanticResources>java:/Objects/java.util.function.ObjLongConsumer</semanticResources>
141 <semanticResources>java:/Objects/java.util.OptionalLong</semanticResources>
142 <semanticResources>java:/Objects/java.util.function.LongFunction</semanticResources>
143 <semanticResources>java:/Objects/java.util.function.LongSupplier</semanticResources>
144 <semanticResources>java:/Objects/java.util.function.LongUnaryOperator</semanticResources>
145 <semanticResources>java:/Objects/java.util.function.LongToDoubleFunction</semanticResources>
146 <semanticResources>java:/Objects/java.util.function.LongToIntFunction</semanticResources>
147 <semanticResources>java:/Objects/java.util.function.LongBinaryOperator</semanticResources>
148 <semanticResources>java:/Objects/java.util.LongSummaryStatistics</semanticResources>
149 <semanticResources>java:/Objects/java.lang.reflect.Field</semanticResources>
150 <semanticResources>java:/Objects/sun.reflect.CallerSensitive</semanticResources>
151 <semanticResources>java:/Objects/java.lang.reflect.AccessibleObject</semanticResources>
152 <semanticResources>java:/Objects/java.lang.reflect.Member</semanticResources>
153 <semanticResources>java:/Objects/sun.reflect.FieldAccessor</semanticResources>
154 <semanticResources>java:/Objects/java.util.Map</semanticResources>
155 <semanticResources>java:/Objects/java.lang.IllegalAccessException</semanticResources>
156 <semanticResources>java:/Objects/java.lang.reflect.AnnotatedType</semanticResources>
157 <semanticResources>java:/Objects/sun.reflect.generics.factory.GenericsFactory</semanticResources>
158 <semanticResources>java:/Objects/sun.reflect.generics.repository.FieldRepository</semanticResources>
159 <semanticResources>java:/Objects/java.lang.reflect.Type</semanticResources>
160 <semanticResources>java:/Objects/java.lang.reflect.AnnotatedElement</semanticResources>
161 <semanticResources>java:/Objects/java.lang.SecurityException</semanticResources>
162 <semanticResources>java:/Objects/java.security.Permission</semanticResources>
163 <semanticResources>java:/Objects/sun.reflect.ReflectionFactory</semanticResources>
164 <semanticResources>java:/Objects/java.security.Guard</semanticResources>
165 <semanticResources>java:/Objects/java.security.PermissionCollection</semanticResources>
166 <semanticResources>java:/Objects/java.util.Enumeration</semanticResources>
167 <semanticResources>java:/Objects/java.security.PrivilegedAction</semanticResources>
168 <semanticResources>java:/Objects/java.lang.reflect.Constructor</semanticResources>
169 <semanticResources>java:/Objects/java.lang.reflect.Method</semanticResources>
170 <semanticResources>java:/Objects/java.lang.invoke.MethodHandle</semanticResources>
171 <semanticResources>java:/Objects/sun.reflect.ConstructorAccessor</semanticResources>
172 <semanticResources>java:/Objects/java.lang.reflect.Executable</semanticResources>
173 <semanticResources>java:/Objects/sun.reflect.MethodAccessor</semanticResources>
174 <semanticResources>java:/Objects/sun.reflect.LangReflectAccess</semanticResources>
175 <semanticResources>java:/Objects/java.io.OptionalDataException</semanticResources>
176 <semanticResources>java:/Objects/sun.reflect.generics.repository.ConstructorRepository</semanticResources>
177 <semanticResources>java:/Objects/java.lang.reflect.TypeVariable</semanticResources>
178 <semanticResources>java:/Objects/java.lang.InstantiationException</semanticResources>
179 <semanticResources>java:/Objects/java.lang.reflect.InvocationTargetException</semanticResources>
180 <semanticResources>java:/Objects/sun.reflect.generics.repository.GenericDeclRepository</semanticResources>
181 <semanticResources>java:/Objects/sun.reflect.generics.tree.MethodTypeSignature</semanticResources>
182 <semanticResources>java:/Objects/sun.reflect.generics.repository.AbstractRepository</semanticResources>
183 <semanticResources>java:/Objects/sun.reflect.generics.tree.Signature</semanticResources>
184 <semanticResources>java:/Objects/sun.reflect.generics.visitor.Reifier</semanticResources>
185 <semanticResources>java:/Objects/sun.reflect.generics.tree.Tree</semanticResources>
186 <semanticResources>java:/Objects/sun.reflect.generics.visitor.TypeTreeVisitor</semanticResources>
187 <semanticResources>java:/Objects/sun.reflect.generics.tree.TypeArgument</semanticResources>
188 <semanticResources>java:/Objects/sun.reflect.generics.tree.ArrayTypeSignature</semanticResources>
189 <semanticResources>java:/Objects/sun.reflect.generics.tree.BooleanSignature</semanticResources>
190 <semanticResources>java:/Objects/sun.reflect.generics.tree.BottomSignature</semanticResources>
191 <semanticResources>java:/Objects/sun.reflect.generics.tree.ByteSignature</semanticResources>
192 <semanticResources>java:/Objects/sun.reflect.generics.tree.CharSignature</semanticResources>
193 <semanticResources>java:/Objects/sun.reflect.generics.tree.ClassTypeSignature</semanticResources>
194 <semanticResources>java:/Objects/sun.reflect.generics.tree.DoubleSignature</semanticResources>
195 <semanticResources>java:/Objects/sun.reflect.generics.tree.FloatSignature</semanticResources>
196 <semanticResources>java:/Objects/sun.reflect.generics.tree.FormalTypeParameter</semanticResources>
197 <semanticResources>java:/Objects/sun.reflect.generics.tree.IntSignature</semanticResources>
198 <semanticResources>java:/Objects/sun.reflect.generics.tree.LongSignature</semanticResources>
199 <semanticResources>java:/Objects/sun.reflect.generics.tree.ShortSignature</semanticResources>
200 <semanticResources>java:/Objects/sun.reflect.generics.tree.SimpleClassTypeSignature</semanticResources>
201 <semanticResources>java:/Objects/sun.reflect.generics.tree.TypeVariableSignature</semanticResources>
202 <semanticResources>java:/Objects/sun.reflect.generics.tree.VoidDescriptor</semanticResources>
203 <semanticResources>java:/Objects/sun.reflect.generics.tree.Wildcard</semanticResources>
204 <semanticResources>java:/Objects/sun.reflect.generics.tree.TypeTree</semanticResources>
205 <semanticResources>java:/Objects/sun.reflect.generics.tree.FieldTypeSignature</semanticResources>
206 <semanticResources>java:/Objects/sun.reflect.generics.tree.TypeSignature</semanticResources>
207 <semanticResources>java:/Objects/sun.reflect.generics.tree.BaseType</semanticResources>
208 <semanticResources>java:/Objects/sun.reflect.generics.tree.ReturnType</semanticResources>
209 <semanticResources>java:/Objects/sun.reflect.generics.visitor.Visitor</semanticResources>
210 <semanticResources>java:/Objects/sun.reflect.generics.tree.ClassSignature</semanticResources>
211 <semanticResources>java:/Objects/java.lang.reflect.GenericDeclaration</semanticResources>
212 <semanticResources>java:/Objects/java.lang.ReflectiveOperationException</semanticResources>
213 <semanticResources>java:/Objects/sun.reflect.generics.repository.MethodRepository</semanticResources>
214 <semanticResources>java:/Objects/java.lang.invoke.MethodType</semanticResources>
215 <semanticResources>java:/Objects/java.lang.invoke.LambdaForm</semanticResources>
216 <semanticResources>java:/Objects/java.lang.invoke.BoundMethodHandle</semanticResources>
217 <semanticResources>java:/Objects/java.lang.invoke.MemberName</semanticResources>
218 <semanticResources>java:/Objects/java.lang.invoke.MethodHandleImpl</semanticResources>
219 <semanticResources>java:/Objects/java.lang.ref.WeakReference</semanticResources>
220 <semanticResources>java:/Objects/java.lang.ref.ReferenceQueue</semanticResources>
221 <semanticResources>java:/Objects/java.util.concurrent.ConcurrentMap</semanticResources>
222 <semanticResources>java:/Objects/java.lang.invoke.MethodTypeForm</semanticResources>
223 <semanticResources>java:/Objects/java.lang.ClassLoader</semanticResources>
224 <semanticResources>java:/Objects/java.lang.TypeNotPresentException</semanticResources>
225 <semanticResources>java:/Objects/java.lang.invoke.Invokers</semanticResources>
226 <semanticResources>java:/Objects/java.lang.IndexOutOfBoundsException</semanticResources>
227 <semanticResources>java:/Objects/java.lang.invoke.Stable</semanticResources>
228 <semanticResources>java:/Objects/java.lang.ref.Reference</semanticResources>
229 <semanticResources>java:/Objects/java.lang.Thread</semanticResources>
230 <semanticResources>java:/Objects/java.lang.ThreadGroup</semanticResources>
231 <semanticResources>java:/Objects/java.lang.Boolean</semanticResources>
232 <semanticResources>java:/Objects/java.security.AccessControlContext</semanticResources>
233 <semanticResources>java:/Objects/sun.nio.ch.Interruptible</semanticResources>
234 <semanticResources>java:/Objects/java.lang.InterruptedException</semanticResources>
235 <semanticResources>java:/Objects/java.lang.RuntimePermission</semanticResources>
236 <semanticResources>java:/Objects/java.lang.ThreadLocal</semanticResources>
237 <semanticResources>java:/Objects/sun.misc.Contended</semanticResources>
238 <semanticResources>java:/Objects/java.security.ProtectionDomain</semanticResources>
239 <semanticResources>java:/Objects/java.security.DomainCombiner</semanticResources>
240 <semanticResources>java:/Objects/java.security.AccessControlException</semanticResources>
241 <semanticResources>java:/Objects/sun.misc.JavaSecurityAccess</semanticResources>
242 <semanticResources>java:/Objects/java.security.CodeSource</semanticResources>
243 <semanticResources>java:/Objects/java.security.Principal</semanticResources>
244 <semanticResources>java:/Objects/java.security.cert.Certificate</semanticResources>
245 <semanticResources>java:/Objects/java.security.CodeSigner</semanticResources>
246 <semanticResources>java:/Objects/java.security.cert.CertificateFactory</semanticResources>
247 <semanticResources>java:/Objects/java.net.SocketPermission</semanticResources>
248 <semanticResources>java:/Objects/java.security.cert.CertificateEncodingException</semanticResources>
249 <semanticResources>java:/Objects/java.security.PublicKey</semanticResources>
250 <semanticResources>java:/Objects/java.security.cert.CertificateException</semanticResources>
251 <semanticResources>java:/Objects/java.security.InvalidKeyException</semanticResources>
252 <semanticResources>java:/Objects/java.security.SignatureException</semanticResources>
253 <semanticResources>java:/Objects/java.security.Key</semanticResources>
254 <semanticResources>java:/Objects/java.security.GeneralSecurityException</semanticResources>
255 <semanticResources>java:/Objects/java.security.KeyException</semanticResources>
256 <semanticResources>java:/Objects/java.security.cert.CertPath</semanticResources>
257 <semanticResources>java:/Objects/java.security.Timestamp</semanticResources>
258 <semanticResources>java:/Objects/java.util.Date</semanticResources>
259 <semanticResources>java:/Objects/java.lang.Cloneable</semanticResources>
260 <semanticResources>java:/Objects/java.time.Instant</semanticResources>
261 <semanticResources>java:/Objects/sun.util.calendar.BaseCalendar</semanticResources>
262 <semanticResources>java:/Objects/java.time.temporal.Temporal</semanticResources>
263 <semanticResources>java:/Objects/java.time.temporal.TemporalAdjuster</semanticResources>
264 <semanticResources>java:/Objects/java.time.ZoneOffset</semanticResources>
265 <semanticResources>java:/Objects/java.time.OffsetDateTime</semanticResources>
266 <semanticResources>java:/Objects/java.time.ZoneId</semanticResources>
267 <semanticResources>java:/Objects/java.time.ZonedDateTime</semanticResources>
268 <semanticResources>java:/Objects/java.time.temporal.TemporalAccessor</semanticResources>
269 <semanticResources>java:/Objects/java.time.temporal.TemporalField</semanticResources>
270 <semanticResources>java:/Objects/java.time.temporal.TemporalUnit</semanticResources>
271 <semanticResources>java:/Objects/java.time.temporal.TemporalAmount</semanticResources>
272 <semanticResources>java:/Objects/java.time.Clock</semanticResources>
273 <semanticResources>java:/Objects/java.time.temporal.TemporalQuery</semanticResources>
274 <semanticResources>java:/Objects/java.time.temporal.ValueRange</semanticResources>
275 <semanticResources>java:/Objects/java.io.DataInput</semanticResources>
276 <semanticResources>java:/Objects/java.io.InvalidObjectException</semanticResources>
277 <semanticResources>java:/Objects/java.io.DataOutput</semanticResources>
278 <semanticResources>java:/Objects/java.time.zone.ZoneRules</semanticResources>
279 <semanticResources>java:/Objects/java.time.zone.ZoneOffsetTransition</semanticResources>
280 <semanticResources>java:/Objects/java.time.zone.ZoneOffsetTransitionRule</semanticResources>
281 <semanticResources>java:/Objects/java.time.LocalDateTime</semanticResources>
282 <semanticResources>java:/Objects/java.time.Duration</semanticResources>
283 <semanticResources>java:/Objects/java.time.Month</semanticResources>
284 <semanticResources>java:/Objects/java.time.DayOfWeek</semanticResources>
285 <semanticResources>java:/Objects/java.time.LocalTime</semanticResources>
286 <semanticResources>java:/Objects/java.time.format.TextStyle</semanticResources>
287 <semanticResources>java:/Objects/java.time.LocalDate</semanticResources>
288 <semanticResources>java:/Objects/java.time.OffsetTime</semanticResources>
289 <semanticResources>java:/Objects/java.time.format.DateTimeFormatter</semanticResources>
290 <semanticResources>java:/Objects/java.time.chrono.ChronoLocalDate</semanticResources>
291 <semanticResources>java:/Objects/java.time.chrono.IsoChronology</semanticResources>
292 <semanticResources>java:/Objects/java.time.chrono.Era</semanticResources>
293 <semanticResources>java:/Objects/java.time.Period</semanticResources>
294 <semanticResources>java:/Objects/java.time.chrono.ChronoLocalDateTime</semanticResources>
295 <semanticResources>java:/Objects/java.time.chrono.Chronology</semanticResources>
296 <semanticResources>java:/Objects/java.time.chrono.ChronoPeriod</semanticResources>
297 <semanticResources>java:/Objects/java.time.chrono.ChronoZonedDateTime</semanticResources>
298 <semanticResources>java:/Objects/java.time.temporal.ChronoField</semanticResources>
299 <semanticResources>java:/Objects/java.time.format.ResolverStyle</semanticResources>
300 <semanticResources>java:/Objects/java.time.chrono.AbstractChronology</semanticResources>
301 <semanticResources>java:/Objects/java.time.chrono.IsoEra</semanticResources>
302 <semanticResources>java:/Objects/java.util.concurrent.ConcurrentHashMap</semanticResources>
303 <semanticResources>java:/Objects/java.util.AbstractMap</semanticResources>
304 <semanticResources>java:/Objects/java.util.function.ToIntBiFunction</semanticResources>
305 <semanticResources>java:/Objects/java.util.function.ToLongBiFunction</semanticResources>
306 <semanticResources>java:/Objects/java.util.function.ToDoubleBiFunction</semanticResources>
307 <semanticResources>java:/Objects/java.util.function.BiFunction</semanticResources>
308 <semanticResources>java:/Objects/java.util.concurrent.atomic.AtomicReference</semanticResources>
309 <semanticResources>java:/Objects/java.lang.Void</semanticResources>
310 <semanticResources>java:/Objects/java.util.concurrent.CountedCompleter</semanticResources>
311 <semanticResources>java:/Objects/java.util.concurrent.locks.ReentrantLock</semanticResources>
312 <semanticResources>java:/Objects/java.util.function.BinaryOperator</semanticResources>
313 <semanticResources>java:/Objects/java.util.function.UnaryOperator</semanticResources>
314 <semanticResources>java:/Objects/java.util.concurrent.ForkJoinTask</semanticResources>
315 <semanticResources>java:/Objects/java.util.concurrent.Future</semanticResources>
316 <semanticResources>java:/Objects/java.util.concurrent.RunnableFuture</semanticResources>
317 <semanticResources>java:/Objects/java.util.concurrent.Callable</semanticResources>
318 <semanticResources>java:/Objects/java.util.concurrent.ExecutionException</semanticResources>
319 <semanticResources>java:/Objects/java.util.concurrent.TimeUnit</semanticResources>
320 <semanticResources>java:/Objects/java.util.concurrent.TimeoutException</semanticResources>
321 <semanticResources>java:/Objects/java.util.concurrent.ForkJoinPool</semanticResources>
322 <semanticResources>java:/Objects/java.util.concurrent.AbstractExecutorService</semanticResources>
323 <semanticResources>java:/Objects/java.util.concurrent.ForkJoinWorkerThread</semanticResources>
324 <semanticResources>java:/Objects/java.util.concurrent.ExecutorService</semanticResources>
325 <semanticResources>java:/Objects/java.util.concurrent.Executor</semanticResources>
326 <semanticResources>java:/Objects/java.util.concurrent.locks.Lock</semanticResources>
327 <semanticResources>java:/Objects/java.util.concurrent.locks.AbstractQueuedSynchronizer</semanticResources>
328 <semanticResources>java:/Objects/java.util.concurrent.locks.Condition</semanticResources>
329 <semanticResources>java:/Objects/java.util.concurrent.locks.AbstractOwnableSynchronizer</semanticResources>
330 <semanticResources>java:/Objects/java.lang.NullPointerException</semanticResources>
331 <semanticResources>java:/Objects/java.io.ObjectInput</semanticResources>
332 <semanticResources>java:/Objects/java.io.ObjectOutput</semanticResources>
333 <semanticResources>java:/Objects/java.text.Format</semanticResources>
334 <semanticResources>java:/Objects/java.text.FieldPosition</semanticResources>
335 <semanticResources>java:/Objects/java.text.ParseException</semanticResources>
336 <semanticResources>java:/Objects/java.text.ParsePosition</semanticResources>
337 <semanticResources>java:/Objects/java.time.format.DateTimeFormatterBuilder</semanticResources>
338 <semanticResources>java:/Objects/java.time.format.DecimalStyle</semanticResources>
339 <semanticResources>java:/Objects/java.time.format.DateTimeParseException</semanticResources>
340 <semanticResources>java:/Objects/java.time.format.FormatStyle</semanticResources>
341 <semanticResources>java:/Objects/java.time.format.DateTimeParseContext</semanticResources>
342 <semanticResources>java:/Objects/java.text.AttributedCharacterIterator</semanticResources>
343 <semanticResources>java:/Objects/java.text.CharacterIterator</semanticResources>
344 <semanticResources>java:/Objects/java.time.format.DateTimePrintContext</semanticResources>
345 <semanticResources>java:/Objects/java.lang.ref.SoftReference</semanticResources>
346 <semanticResources>java:/Objects/java.time.format.DateTimeTextProvider</semanticResources>
347 <semanticResources>java:/Objects/java.math.BigDecimal</semanticResources>
348 <semanticResources>java:/Objects/java.time.format.SignStyle</semanticResources>
349 <semanticResources>java:/Objects/java.lang.Character</semanticResources>
350 <semanticResources>java:/Objects/java.math.MathContext</semanticResources>
351 <semanticResources>java:/Objects/java.math.RoundingMode</semanticResources>
352 <semanticResources>java:/Objects/java.math.MutableBigInteger</semanticResources>
353 <semanticResources>java:/Objects/java.util.HashMap</semanticResources>
354 <semanticResources>java:/Objects/java.util.LinkedHashMap</semanticResources>
355 <semanticResources>java:/Objects/java.util.AbstractSet</semanticResources>
356 <semanticResources>java:/Objects/java.util.AbstractCollection</semanticResources>
357 <semanticResources>java:/Objects/java.time.DateTimeException</semanticResources>
358 <semanticResources>java:/Objects/java.time.format.Parsed</semanticResources>
359 <semanticResources>java:/Objects/java.util.ArrayList</semanticResources>
360 <semanticResources>java:/Objects/java.util.AbstractList</semanticResources>
361 <semanticResources>java:/Objects/java.util.RandomAccess</semanticResources>
362 <semanticResources>java:/Objects/java.util.ListIterator</semanticResources>
363 <semanticResources>java:/Objects/java.util.function.Predicate</semanticResources>
364 <semanticResources>java:/Objects/sun.util.calendar.AbstractCalendar</semanticResources>
365 <semanticResources>java:/Objects/sun.util.calendar.CalendarDate</semanticResources>
366 <semanticResources>java:/Objects/java.util.TimeZone</semanticResources>
367 <semanticResources>java:/Objects/sun.util.calendar.CalendarSystem</semanticResources>
368 <semanticResources>java:/Objects/sun.util.calendar.Era</semanticResources>
369 <semanticResources>java:/Objects/java.util.Properties</semanticResources>
370 <semanticResources>java:/Objects/sun.util.calendar.Gregorian</semanticResources>
371 <semanticResources>java:/Objects/java.util.Hashtable</semanticResources>
372 <semanticResources>java:/Objects/java.io.InputStream</semanticResources>
373 <semanticResources>java:/Objects/java.util.InvalidPropertiesFormatException</semanticResources>
374 <semanticResources>java:/Objects/sun.util.spi.XmlPropertiesProvider</semanticResources>
375 <semanticResources>java:/Objects/java.io.Reader</semanticResources>
376 <semanticResources>java:/Objects/java.io.BufferedWriter</semanticResources>
377 <semanticResources>java:/Objects/java.util.Dictionary</semanticResources>
378 <semanticResources>java:/Objects/java.io.StreamCorruptedException</semanticResources>
379 <semanticResources>java:/Objects/java.io.NotSerializableException</semanticResources>
380 <semanticResources>java:/Objects/java.lang.Readable</semanticResources>
381 <semanticResources>java:/Objects/java.nio.CharBuffer</semanticResources>
382 <semanticResources>java:/Objects/java.nio.Buffer</semanticResources>
383 <semanticResources>java:/Objects/java.nio.ByteOrder</semanticResources>
384 <semanticResources>java:/Objects/java.security.cert.CertificateFactorySpi</semanticResources>
385 <semanticResources>java:/Objects/java.security.cert.CRLException</semanticResources>
386 <semanticResources>java:/Objects/java.security.cert.CRL</semanticResources>
387 <semanticResources>java:/Objects/java.net.UnknownHostException</semanticResources>
388 <semanticResources>java:/Objects/java.net.InetAddress</semanticResources>
389 <semanticResources>java:/Objects/sun.net.spi.nameservice.NameService</semanticResources>
390 <semanticResources>java:/Objects/java.net.NetworkInterface</semanticResources>
391 <semanticResources>java:/Objects/java.net.InetAddressImpl</semanticResources>
392 <semanticResources>java:/Objects/java.net.SocketException</semanticResources>
393 <semanticResources>java:/Objects/java.net.InterfaceAddress</semanticResources>
394 <semanticResources>java:/Objects/java.net.Inet4Address</semanticResources>
395 <semanticResources>java:/Objects/javax.security.auth.Subject</semanticResources>
396 <semanticResources>java:/Objects/javax.security.auth.AuthPermission</semanticResources>
397 <semanticResources>java:/Objects/java.util.LinkedList</semanticResources>
398 <semanticResources>java:/Objects/java.security.PrivilegedExceptionAction</semanticResources>
399 <semanticResources>java:/Objects/java.security.PrivilegedActionException</semanticResources>
400 <semanticResources>java:/Objects/java.security.BasicPermission</semanticResources>
401 <semanticResources>java:/Objects/java.util.AbstractSequentialList</semanticResources>
402 <semanticResources>java:/Objects/java.util.Deque</semanticResources>
403 <semanticResources>java:/Objects/java.util.Queue</semanticResources>
404 <semanticResources>java:/Objects/java.util.concurrent.atomic.AtomicInteger</semanticResources>
405 <semanticResources>java:/Objects/java.lang.ClassFormatError</semanticResources>
406 <semanticResources>java:/Objects/java.nio.ByteBuffer</semanticResources>
407 <semanticResources>java:/Objects/java.lang.Package</semanticResources>
408 <semanticResources>java:/Objects/sun.misc.URLClassPath</semanticResources>
409 <semanticResources>java:/Objects/java.lang.AssertionStatusDirectives</semanticResources>
410 <semanticResources>java:/Objects/java.util.Vector</semanticResources>
411 <semanticResources>java:/Objects/java.util.Stack</semanticResources>
412 <semanticResources>java:/Objects/java.lang.LinkageError</semanticResources>
413 <semanticResources>java:/Objects/java.lang.Error</semanticResources>
414 <semanticResources>java:/Objects/java.nio.DoubleBuffer</semanticResources>
415 <semanticResources>java:/Objects/java.nio.FloatBuffer</semanticResources>
416 <semanticResources>java:/Objects/java.nio.IntBuffer</semanticResources>
417 <semanticResources>java:/Objects/java.nio.LongBuffer</semanticResources>
418 <semanticResources>java:/Objects/java.nio.ShortBuffer</semanticResources>
419 <semanticResources>java:/Objects/java.util.jar.Manifest</semanticResources>
420 <semanticResources>java:/Objects/java.io.FilterInputStream</semanticResources>
421 <semanticResources>java:/Objects/java.util.jar.JarVerifier</semanticResources>
422 <semanticResources>java:/Objects/java.util.jar.Attributes</semanticResources>
423 <semanticResources>java:/Objects/java.util.jar.JarEntry</semanticResources>
424 <semanticResources>java:/Objects/sun.security.util.ManifestEntryVerifier</semanticResources>
425 <semanticResources>java:/Objects/java.util.jar.JarFile</semanticResources>
426 <semanticResources>java:/Objects/java.util.zip.ZipEntry</semanticResources>
427 <semanticResources>java:/Objects/java.io.ByteArrayOutputStream</semanticResources>
428 <semanticResources>java:/Objects/sun.security.util.ManifestDigester</semanticResources>
429 <semanticResources>java:/Objects/sun.security.util.SignatureFileVerifier</semanticResources>
430 <semanticResources>java:/Objects/java.util.jar.JarException</semanticResources>
431 <semanticResources>java:/Objects/java.util.zip.ZipException</semanticResources>
432 <semanticResources>java:/Objects/java.util.zip.ZipFile</semanticResources>
433 <semanticResources>java:/Objects/java.util.zip.ZipConstants</semanticResources>
434 <semanticResources>java:/Objects/java.util.zip.InflaterInputStream</semanticResources>
435 <semanticResources>java:/Objects/java.util.zip.Inflater</semanticResources>
436 <semanticResources>java:/Objects/java.util.zip.ZipCoder</semanticResources>
437 <semanticResources>java:/Objects/java.util.zip.DataFormatException</semanticResources>
438 <semanticResources>java:/Objects/java.util.zip.ZStreamRef</semanticResources>
439 <semanticResources>java:/Objects/java.nio.charset.CharsetDecoder</semanticResources>
440 <semanticResources>java:/Objects/java.nio.charset.CharsetEncoder</semanticResources>
441 <semanticResources>java:/Objects/java.nio.charset.CharacterCodingException</semanticResources>
442 <semanticResources>java:/Objects/java.nio.charset.CoderResult</semanticResources>
443 <semanticResources>java:/Objects/java.nio.charset.CodingErrorAction</semanticResources>
444 <semanticResources>java:/Objects/java.nio.file.attribute.FileTime</semanticResources>
445 <semanticResources>java:/Objects/sun.security.pkcs.SignerInfo</semanticResources>
446 <semanticResources>java:/Objects/sun.security.pkcs.PKCS7</semanticResources>
447 <semanticResources>java:/Objects/sun.security.util.DisabledAlgorithmConstraints</semanticResources>
448 <semanticResources>java:/Objects/sun.security.util.DerEncoder</semanticResources>
449 <semanticResources>java:/Objects/sun.security.util.DerInputStream</semanticResources>
450 <semanticResources>java:/Objects/sun.security.pkcs.ParsingException</semanticResources>
451 <semanticResources>java:/Objects/sun.security.x509.X500Name</semanticResources>
452 <semanticResources>java:/Objects/sun.security.x509.AlgorithmId</semanticResources>
453 <semanticResources>java:/Objects/sun.security.pkcs.PKCS9Attributes</semanticResources>
454 <semanticResources>java:/Objects/sun.security.util.DerOutputStream</semanticResources>
455 <semanticResources>java:/Objects/java.security.cert.X509Certificate</semanticResources>
456 <semanticResources>java:/Objects/sun.security.timestamp.TimestampToken</semanticResources>
457 <semanticResources>java:/Objects/java.security.CryptoPrimitive</semanticResources>
458 <semanticResources>java:/Objects/sun.security.util.DerInputBuffer</semanticResources>
459 <semanticResources>java:/Objects/sun.security.util.DerValue</semanticResources>
460 <semanticResources>java:/Objects/sun.security.util.ObjectIdentifier</semanticResources>
461 <semanticResources>java:/Objects/sun.security.util.BitArray</semanticResources>
462 <semanticResources>java:/Objects/java.io.ByteArrayInputStream</semanticResources>
463 <semanticResources>java:/Objects/java.lang.ArrayIndexOutOfBoundsException</semanticResources>
464 <semanticResources>java:/Objects/sun.security.x509.GeneralNameInterface</semanticResources>
465 <semanticResources>java:/Objects/sun.security.x509.RDN</semanticResources>
466 <semanticResources>java:/Objects/sun.security.x509.AVA</semanticResources>
467 <semanticResources>java:/Objects/javax.security.auth.x500.X500Principal</semanticResources>
468 <semanticResources>java:/Objects/java.lang.UnsupportedOperationException</semanticResources>
469 <semanticResources>java:/Objects/java.lang.Byte</semanticResources>
470 <semanticResources>java:/Objects/java.io.NotActiveException</semanticResources>
471 <semanticResources>java:/Objects/java.security.AlgorithmParameters</semanticResources>
472 <semanticResources>java:/Objects/java.security.AlgorithmParametersSpi</semanticResources>
473 <semanticResources>java:/Objects/java.security.spec.AlgorithmParameterSpec</semanticResources>
474 <semanticResources>java:/Objects/java.security.spec.InvalidParameterSpecException</semanticResources>
475 <semanticResources>java:/Objects/sun.security.pkcs.PKCS9Attribute</semanticResources>
476 <semanticResources>java:/Objects/sun.security.util.ByteArrayLexOrder</semanticResources>
477 <semanticResources>java:/Objects/sun.security.util.ByteArrayTagOrder</semanticResources>
478 <semanticResources>java:/Objects/java.security.cert.X509Extension</semanticResources>
479 <semanticResources>java:/Objects/java.security.cert.CertificateExpiredException</semanticResources>
480 <semanticResources>java:/Objects/java.security.cert.CertificateNotYetValidException</semanticResources>
481 <semanticResources>java:/Objects/java.security.cert.CertificateParsingException</semanticResources>
482 <semanticResources>java:/Objects/sun.security.pkcs.ContentInfo</semanticResources>
483 <semanticResources>java:/Objects/java.security.cert.X509CRL</semanticResources>
484 <semanticResources>java:/Objects/sun.security.timestamp.Timestamper</semanticResources>
485 <semanticResources>java:/Objects/java.security.cert.X509CRLEntry</semanticResources>
486 <semanticResources>java:/Objects/java.security.cert.CRLReason</semanticResources>
487 <semanticResources>java:/Objects/sun.security.timestamp.TSRequest</semanticResources>
488 <semanticResources>java:/Objects/sun.security.timestamp.TSResponse</semanticResources>
489 <semanticResources>java:/Objects/sun.security.util.AbstractAlgorithmConstraints</semanticResources>
490 <semanticResources>java:/Objects/sun.security.util.ConstraintsParameters</semanticResources>
491 <semanticResources>java:/Objects/java.security.cert.CertPathValidatorException</semanticResources>
492 <semanticResources>java:/Objects/java.text.SimpleDateFormat</semanticResources>
493 <semanticResources>java:/Objects/sun.security.util.AlgorithmDecomposer</semanticResources>
494 <semanticResources>java:/Objects/java.security.AlgorithmConstraints</semanticResources>
495 <semanticResources>java:/Objects/java.text.DateFormat</semanticResources>
496 <semanticResources>java:/Objects/java.text.DateFormatSymbols</semanticResources>
497 <semanticResources>java:/Objects/java.text.CalendarBuilder</semanticResources>
498 <semanticResources>java:/Objects/java.text.NumberFormat</semanticResources>
499 <semanticResources>java:/Objects/sun.util.locale.provider.LocaleProviderAdapter</semanticResources>
500 <semanticResources>java:/Objects/java.util.Calendar</semanticResources>
501 <semanticResources>java:/Objects/java.util.spi.LocaleServiceProvider</semanticResources>
502 <semanticResources>java:/Objects/java.text.spi.BreakIteratorProvider</semanticResources>
503 <semanticResources>java:/Objects/java.util.spi.CalendarDataProvider</semanticResources>
504 <semanticResources>java:/Objects/java.util.spi.CalendarNameProvider</semanticResources>
505 <semanticResources>java:/Objects/sun.util.spi.CalendarProvider</semanticResources>
506 <semanticResources>java:/Objects/java.text.spi.CollatorProvider</semanticResources>
507 <semanticResources>java:/Objects/java.util.spi.CurrencyNameProvider</semanticResources>
508 <semanticResources>java:/Objects/java.text.spi.DateFormatProvider</semanticResources>
509 <semanticResources>java:/Objects/java.text.spi.DateFormatSymbolsProvider</semanticResources>
510 <semanticResources>java:/Objects/java.text.spi.DecimalFormatSymbolsProvider</semanticResources>
511 <semanticResources>java:/Objects/java.util.spi.LocaleNameProvider</semanticResources>
512 <semanticResources>java:/Objects/sun.util.locale.provider.LocaleResources</semanticResources>
513 <semanticResources>java:/Objects/java.text.spi.NumberFormatProvider</semanticResources>
514 <semanticResources>java:/Objects/java.util.spi.TimeZoneNameProvider</semanticResources>
515 <semanticResources>java:/Objects/java.text.BreakIterator</semanticResources>
516 <semanticResources>java:/Objects/java.text.Collator</semanticResources>
517 <semanticResources>java:/Objects/java.text.CollationKey</semanticResources>
518 <semanticResources>java:/Objects/java.text.DecimalFormatSymbols</semanticResources>
519 <semanticResources>java:/Objects/java.util.Currency</semanticResources>
520 <semanticResources>java:/Objects/sun.util.locale.provider.LocaleServiceProviderPool</semanticResources>
521 <semanticResources>java:/Objects/java.io.DataInputStream</semanticResources>
522 <semanticResources>java:/Objects/java.util.HashSet</semanticResources>
523 <semanticResources>java:/Objects/sun.util.locale.provider.ResourceBundleBasedAdapter</semanticResources>
524 <semanticResources>java:/Objects/java.util.ResourceBundle</semanticResources>
525 <semanticResources>java:/Objects/sun.util.resources.LocaleData</semanticResources>
526 <semanticResources>java:/Objects/sun.util.locale.LocaleObjectCache</semanticResources>
527 <semanticResources>java:/Objects/sun.util.locale.BaseLocale</semanticResources>
528 <semanticResources>java:/Objects/java.util.spi.ResourceBundleControlProvider</semanticResources>
529 <semanticResources>java:/Objects/sun.util.resources.OpenListResourceBundle</semanticResources>
530 <semanticResources>java:/Objects/sun.util.resources.TimeZoneNamesBundle</semanticResources>
531 <semanticResources>java:/Objects/sun.util.resources.ParallelListResourceBundle</semanticResources>
532 <semanticResources>java:/Objects/java.util.concurrent.atomic.AtomicMarkableReference</semanticResources>
533 <semanticResources>java:/Objects/java.io.DataOutputStream</semanticResources>
534 <semanticResources>java:/Objects/java.io.FilterOutputStream</semanticResources>
535 <semanticResources>java:/Objects/sun.misc.Resource</semanticResources>
536 <semanticResources>java:/Objects/java.net.URLStreamHandler</semanticResources>
537 <semanticResources>java:/Objects/sun.misc.JarIndex</semanticResources>
538 <semanticResources>java:/Objects/sun.misc.MetaIndex</semanticResources>
539 <semanticResources>java:/Objects/sun.misc.JavaUtilZipFileAccess</semanticResources>
540 <semanticResources>java:/Objects/java.net.URLStreamHandlerFactory</semanticResources>
541 <semanticResources>java:/Objects/java.net.URLConnection</semanticResources>
542 <semanticResources>java:/Objects/java.net.Proxy</semanticResources>
543 <semanticResources>java:/Objects/java.net.UnknownServiceException</semanticResources>
544 <semanticResources>java:/Objects/java.net.ContentHandler</semanticResources>
545 <semanticResources>java:/Objects/java.net.FileNameMap</semanticResources>
546 <semanticResources>java:/Objects/java.net.ContentHandlerFactory</semanticResources>
547 <semanticResources>java:/Objects/sun.net.www.MessageHeader</semanticResources>
548 <semanticResources>java:/Objects/java.net.SocketAddress</semanticResources>
549 <semanticResources>java:/Objects/java.lang.invoke.ForceInline</semanticResources>
550 <semanticResources>java:/Objects/java.lang.invoke.DontInline</semanticResources>
551 <semanticResources>java:/Objects/java.lang.invoke.WrongMethodTypeException</semanticResources>
552 <semanticResources>java:/Objects/sun.invoke.util.Wrapper</semanticResources>
553 <semanticResources>java:/Objects/java.lang.invoke.LambdaFormEditor</semanticResources>
554 <semanticResources>java:/Objects/java.lang.ClassCastException</semanticResources>
555 <semanticResources>java:/Objects/java.lang.invoke.LambdaFormBuffer</semanticResources>
556 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.MethodVisitor</semanticResources>
557 <semanticResources>java:/Objects/java.lang.invoke.MethodHandles</semanticResources>
558 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.AnnotationVisitor</semanticResources>
559 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Attribute</semanticResources>
560 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.TypePath</semanticResources>
561 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Handle</semanticResources>
562 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Label</semanticResources>
563 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.ClassWriter</semanticResources>
564 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.ByteVector</semanticResources>
565 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.ClassReader</semanticResources>
566 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.ClassVisitor</semanticResources>
567 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Item</semanticResources>
568 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.FieldVisitor</semanticResources>
569 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.AnnotationWriter</semanticResources>
570 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.FieldWriter</semanticResources>
571 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.MethodWriter</semanticResources>
572 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Frame</semanticResources>
573 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Handler</semanticResources>
574 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Type</semanticResources>
575 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Context</semanticResources>
576 <semanticResources>java:/Objects/jdk.internal.org.objectweb.asm.Edge</semanticResources>
577 <semanticResources>java:/Objects/java.lang.NoSuchMethodException</semanticResources>
578 <semanticResources>java:/Objects/java.lang.NoSuchFieldException</semanticResources>
579 <semanticResources>java:/Objects/java.lang.invoke.DirectMethodHandle</semanticResources>
580 <semanticResources>java:/Objects/java.lang.invoke.MethodHandleInfo</semanticResources>
581 <semanticResources>java:/Objects/java.lang.ClassValue</semanticResources>
582 <semanticResources>java:/Objects/java.util.WeakHashMap</semanticResources>
583 <semanticResources>java:/Objects/java.lang.invoke.DelegatingMethodHandle</semanticResources>
584 <semanticResources>java:/Objects/sun.invoke.empty.Empty</semanticResources>
585 <semanticResources>java:/Objects/java.lang.reflect.Parameter</semanticResources>
586 <semanticResources>java:/Objects/java.lang.reflect.ParameterizedType</semanticResources>
587 <semanticResources>java:/Objects/java.lang.reflect.WildcardType</semanticResources>
588 <semanticResources>java:/Objects/java.util.regex.Matcher</semanticResources>
589 <semanticResources>java:/Objects/java.util.regex.UnicodeProp</semanticResources>
590 <semanticResources>java:/Objects/java.util.regex.PatternSyntaxException</semanticResources>
591 <semanticResources>java:/Objects/java.util.regex.MatchResult</semanticResources>
592 <semanticResources>java:/Objects/java.security.MessageDigestSpi</semanticResources>
593 <semanticResources>java:/Objects/java.security.DigestException</semanticResources>
594 <semanticResources>java:/Objects/java.net.URISyntaxException</semanticResources>
595 <semanticResources>java:/Objects/java.lang.Iterable</semanticResources>
596 <semanticResources>java:/Objects/java.nio.file.Watchable</semanticResources>
597 <semanticResources>java:/Objects/java.nio.file.FileSystem</semanticResources>
598 <semanticResources>java:/Objects/java.nio.file.WatchService</semanticResources>
599 <semanticResources>java:/Objects/java.nio.file.WatchEvent</semanticResources>
600 <semanticResources>java:/Objects/java.nio.file.WatchKey</semanticResources>
601 <semanticResources>java:/Objects/java.nio.file.LinkOption</semanticResources>
602 <semanticResources>java:/Objects/java.nio.file.FileStore</semanticResources>
603 <semanticResources>java:/Objects/java.nio.file.PathMatcher</semanticResources>
604 <semanticResources>java:/Objects/java.nio.file.attribute.UserPrincipalLookupService</semanticResources>
605 <semanticResources>java:/Objects/java.nio.file.spi.FileSystemProvider</semanticResources>
606 <semanticResources>java:/Objects/java.nio.file.attribute.FileStoreAttributeView</semanticResources>
607 <semanticResources>java:/Objects/java.nio.file.attribute.FileAttributeView</semanticResources>
608 <semanticResources>java:/Objects/java.nio.file.attribute.AttributeView</semanticResources>
609 <semanticResources>java:/Objects/java.nio.file.attribute.GroupPrincipal</semanticResources>
610 <semanticResources>java:/Objects/java.nio.file.attribute.UserPrincipal</semanticResources>
611 <semanticResources>java:/Objects/java.nio.file.AccessMode</semanticResources>
612 <semanticResources>java:/Objects/java.nio.file.CopyOption</semanticResources>
613 <semanticResources>java:/Objects/java.nio.file.attribute.FileAttribute</semanticResources>
614 <semanticResources>java:/Objects/java.nio.file.OpenOption</semanticResources>
615 <semanticResources>java:/Objects/java.nio.channels.AsynchronousFileChannel</semanticResources>
616 <semanticResources>java:/Objects/java.nio.channels.SeekableByteChannel</semanticResources>
617 <semanticResources>java:/Objects/java.nio.file.DirectoryStream</semanticResources>
618 <semanticResources>java:/Objects/java.nio.channels.FileChannel</semanticResources>
619 <semanticResources>java:/Objects/java.nio.file.attribute.BasicFileAttributes</semanticResources>
620 <semanticResources>java:/Objects/java.nio.channels.AsynchronousChannel</semanticResources>
621 <semanticResources>java:/Objects/java.nio.channels.FileLock</semanticResources>
622 <semanticResources>java:/Objects/java.nio.channels.CompletionHandler</semanticResources>
623 <semanticResources>java:/Objects/java.nio.channels.Channel</semanticResources>
624 <semanticResources>java:/Objects/java.nio.channels.ByteChannel</semanticResources>
625 <semanticResources>java:/Objects/java.nio.channels.ReadableByteChannel</semanticResources>
626 <semanticResources>java:/Objects/java.nio.channels.WritableByteChannel</semanticResources>
627 <semanticResources>java:/Objects/java.nio.channels.spi.AbstractInterruptibleChannel</semanticResources>
628 <semanticResources>java:/Objects/java.nio.channels.GatheringByteChannel</semanticResources>
629 <semanticResources>java:/Objects/java.nio.channels.ScatteringByteChannel</semanticResources>
630 <semanticResources>java:/Objects/java.nio.MappedByteBuffer</semanticResources>
631 <semanticResources>java:/Objects/java.nio.channels.InterruptibleChannel</semanticResources>
632 <semanticResources>java:/Objects/java.nio.channels.AsynchronousCloseException</semanticResources>
633 <semanticResources>java:/Objects/java.nio.channels.ClosedChannelException</semanticResources>
634 <semanticResources>java:/Objects/java.io.FileDescriptor</semanticResources>
635 <semanticResources>java:/Objects/java.io.SyncFailedException</semanticResources>
636 <semanticResources>java:/Objects/java.lang.SecurityManager</semanticResources>
637 <semanticResources>java:/Objects/java.net.UrlDeserializedState</semanticResources>
638 <semanticResources>java:/Objects/java.nio.charset.spi.CharsetProvider</semanticResources>
639 <semanticResources>java:/Objects/java.util.SortedMap</semanticResources>
640 <semanticResources>java:/Objects/sun.util.locale.InternalLocaleBuilder</semanticResources>
641 <semanticResources>java:/Objects/sun.util.locale.LocaleExtensions</semanticResources>
642 <semanticResources>java:/Objects/java.text.MessageFormat</semanticResources>
643 <semanticResources>java:/Objects/java.util.MissingResourceException</semanticResources>
644 <semanticResources>java:/Objects/sun.util.locale.LocaleSyntaxException</semanticResources>
645 <semanticResources>java:/Objects/sun.util.locale.LanguageTag</semanticResources>
646 <semanticResources>java:/Objects/sun.util.locale.ParseStatus</semanticResources>
647 <semanticResources>java:/Objects/sun.util.locale.StringTokenIterator</semanticResources>
648 <semanticResources>java:/Objects/sun.util.locale.Extension</semanticResources>
649 <semanticResources>java:/Objects/java.io.OutputStreamWriter</semanticResources>
650 <semanticResources>java:/Objects/sun.nio.cs.StreamEncoder</semanticResources>
651 <semanticResources>java:/Objects/java.io.ObjectStreamConstants</semanticResources>
652 <semanticResources>java:/Objects/java.io.ObjectStreamClass</semanticResources>
653 <semanticResources>java:/Objects/java.io.Externalizable</semanticResources>
654 <semanticResources>java:/Objects/java.io.SerialCallbackContext</semanticResources>
655 <semanticResources>java:/Objects/java.io.SerializablePermission</semanticResources>
656 <semanticResources>java:/Objects/java.io.InvalidClassException</semanticResources>
657 <semanticResources>java:/Objects/sun.misc.ObjectInputFilter</semanticResources>
658 <semanticResources>java:/Objects/java.io.ObjectInputValidation</semanticResources>
659 <semanticResources>java:/Objects/sun.util.logging.PlatformLogger</semanticResources>
660 <semanticResources>java:/Objects/sun.misc.ObjectStreamClassValidator</semanticResources>
661 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IInputKey</semanticResources>
662 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection</semanticResources>
663 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.PTraceable</semanticResources>
664 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PDisjunction</semanticResources>
665 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint</semanticResources>
666 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.PProblem</semanticResources>
667 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.TypeJudgement</semanticResources>
668 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.PBody</semanticResources>
669 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.PVariable</semanticResources>
670 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IQueryMetaContext</semanticResources>
671 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint</semanticResources>
672 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter</semanticResources>
673 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.InputKeyImplication</semanticResources>
674 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IPosetComparator</semanticResources>
675 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.VariableDeferredPConstraint</semanticResources>
676 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.DeferredPConstraint</semanticResources>
677 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.SubPlan</semanticResources>
678 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.BasePConstraint</semanticResources>
679 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.operations.POperation</semanticResources>
680 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.QueryHintOption</semanticResources>
681 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.IQueryBackendFactory</semanticResources>
682 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IQueryBackendContext</semanticResources>
683 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.IQueryBackend</semanticResources>
684 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.IQueryBackendHintProvider</semanticResources>
685 <semanticResources>java:/Objects/org.apache.log4j.Logger</semanticResources>
686 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.analysis.QueryAnalyzer</semanticResources>
687 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IQueryCacheContext</semanticResources>
688 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IQueryResultProviderAccess</semanticResources>
689 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IQueryRuntimeContext</semanticResources>
690 <semanticResources>java:/Objects/org.apache.log4j.Category</semanticResources>
691 <semanticResources>java:/Objects/org.apache.log4j.spi.LoggerFactory</semanticResources>
692 <semanticResources>java:/Objects/org.apache.log4j.spi.AppenderAttachable</semanticResources>
693 <semanticResources>java:/Objects/org.apache.log4j.Appender</semanticResources>
694 <semanticResources>java:/Objects/org.apache.log4j.spi.LoggingEvent</semanticResources>
695 <semanticResources>java:/Objects/org.apache.log4j.Priority</semanticResources>
696 <semanticResources>java:/Objects/org.apache.log4j.spi.LoggerRepository</semanticResources>
697 <semanticResources>java:/Objects/org.apache.log4j.Level</semanticResources>
698 <semanticResources>java:/Objects/org.apache.log4j.helpers.AppenderAttachableImpl</semanticResources>
699 <semanticResources>java:/Objects/org.apache.log4j.spi.Filter</semanticResources>
700 <semanticResources>java:/Objects/org.apache.log4j.spi.ErrorHandler</semanticResources>
701 <semanticResources>java:/Objects/org.apache.log4j.Layout</semanticResources>
702 <semanticResources>java:/Objects/org.apache.log4j.spi.OptionHandler</semanticResources>
703 <semanticResources>java:/Objects/org.apache.log4j.spi.ThrowableInformation</semanticResources>
704 <semanticResources>java:/Objects/org.apache.log4j.spi.LocationInfo</semanticResources>
705 <semanticResources>java:/Objects/java.io.StringWriter</semanticResources>
706 <semanticResources>java:/Objects/org.apache.log4j.spi.HierarchyEventListener</semanticResources>
707 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IQueryRuntimeContextListener</semanticResources>
708 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.tuple.ITuple</semanticResources>
709 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.tuple.TupleMask</semanticResources>
710 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.context.IndexingService</semanticResources>
711 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.util.Accuracy</semanticResources>
712 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.tuple.IModifiableTuple</semanticResources>
713 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.QueryProcessingException</semanticResources>
714 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.ViatraQueryRuntimeException</semanticResources>
715 <semanticResources>java:/Objects/sun.reflect.annotation.AnnotationType</semanticResources>
716 <semanticResources>java:/Objects/sun.reflect.ConstantPool</semanticResources>
717 <semanticResources>java:/Objects/sun.reflect.generics.repository.ClassRepository</semanticResources>
718 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.internal.apiimpl.EngineContextFactory</semanticResources>
719 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.scope.IIndexingErrorListener</semanticResources>
720 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.scope.IEngineContext</semanticResources>
721 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.scope.IBaseIndex</semanticResources>
722 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.scope.ViatraBaseIndexChangeListener</semanticResources>
723 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.scope.IInstanceObserver</semanticResources>
724 <semanticResources>java:/Objects/java.util.stream.Collector</semanticResources>
725 <semanticResources>java:/Objects/java.lang.SafeVarargs</semanticResources>
726 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.backend.IUpdateable</semanticResources>
727 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch</semanticResources>
728 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseQuerySpecification</semanticResources>
729 <semanticResources>java:/Objects/java.lang.ExceptionInInitializerError</semanticResources>
730 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.exception.ViatraQueryException</semanticResources>
731 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.QueryInitializationException</semanticResources>
732 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions</semanticResources>
733 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.tuple.AbstractTuple</semanticResources>
734 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher</semanticResources>
735 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup</semanticResources>
736 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseQueryGroup</semanticResources>
737 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.IQueryGroup</semanticResources>
738 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine</semanticResources>
739 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.ViatraQueryEngineLifecycleListener</semanticResources>
740 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.IMatchUpdateListener</semanticResources>
741 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.ViatraQueryModelUpdateListener</semanticResources>
742 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery</semanticResources>
743 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.queries.BasePQuery</semanticResources>
744 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EClassifier</semanticResources>
745 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EEnumLiteral</semanticResources>
746 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EStructuralFeature</semanticResources>
747 <semanticResources>java:/Objects/org.eclipse.emf.ecore.ENamedElement</semanticResources>
748 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EPackage</semanticResources>
749 <semanticResources>java:/Objects/org.eclipse.emf.common.util.EList</semanticResources>
750 <semanticResources>java:/Objects/org.eclipse.emf.ecore.ETypeParameter</semanticResources>
751 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EModelElement</semanticResources>
752 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EObject</semanticResources>
753 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EAnnotation</semanticResources>
754 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.Notifier</semanticResources>
755 <semanticResources>java:/Objects/org.eclipse.emf.common.util.TreeIterator</semanticResources>
756 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EClass</semanticResources>
757 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EReference</semanticResources>
758 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EOperation</semanticResources>
759 <semanticResources>java:/Objects/org.eclipse.emf.ecore.resource.Resource</semanticResources>
760 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.Adapter</semanticResources>
761 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.Notification</semanticResources>
762 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EAttribute</semanticResources>
763 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EGenericType</semanticResources>
764 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EDataType</semanticResources>
765 <semanticResources>java:/Objects/org.eclipse.emf.ecore.InternalEObject</semanticResources>
766 <semanticResources>java:/Objects/org.eclipse.emf.common.CommonPlugin</semanticResources>
767 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.NotificationChain</semanticResources>
768 <semanticResources>java:/Objects/org.eclipse.emf.common.util.URI</semanticResources>
769 <semanticResources>java:/Objects/org.eclipse.emf.common.util.Pool</semanticResources>
770 <semanticResources>java:/Objects/org.eclipse.emf.common.util.SegmentSequence</semanticResources>
771 <semanticResources>java:/Objects/org.eclipse.emf.common.util.CommonUtil</semanticResources>
772 <semanticResources>java:/Objects/org.eclipse.emf.common.util.WeakInterningHashSet</semanticResources>
773 <semanticResources>java:/Objects/java.util.concurrent.locks.ReentrantReadWriteLock</semanticResources>
774 <semanticResources>java:/Objects/org.eclipse.emf.common.util.InterningSet</semanticResources>
775 <semanticResources>java:/Objects/java.util.concurrent.locks.ReadWriteLock</semanticResources>
776 <semanticResources>java:/Objects/java.lang.IllegalMonitorStateException</semanticResources>
777 <semanticResources>java:/Objects/org.eclipse.emf.common.EMFPlugin</semanticResources>
778 <semanticResources>java:/Objects/org.osgi.framework.BundleActivator</semanticResources>
779 <semanticResources>java:/Objects/org.eclipse.emf.common.util.ResourceLocator</semanticResources>
780 <semanticResources>java:/Objects/org.eclipse.emf.common.util.DelegatingResourceLocator</semanticResources>
781 <semanticResources>java:/Objects/org.eclipse.emf.common.util.Logger</semanticResources>
782 <semanticResources>java:/Objects/org.eclipse.core.runtime.Plugin</semanticResources>
783 <semanticResources>java:/Objects/org.eclipse.core.runtime.IPluginDescriptor</semanticResources>
784 <semanticResources>java:/Objects/org.osgi.framework.Bundle</semanticResources>
785 <semanticResources>java:/Objects/org.eclipse.core.runtime.ILog</semanticResources>
786 <semanticResources>java:/Objects/org.osgi.framework.BundleContext</semanticResources>
787 <semanticResources>java:/Objects/org.eclipse.core.runtime.IPath</semanticResources>
788 <semanticResources>java:/Objects/org.eclipse.osgi.service.debug.DebugOptions</semanticResources>
789 <semanticResources>java:/Objects/org.eclipse.core.runtime.Preferences</semanticResources>
790 <semanticResources>java:/Objects/java.lang.IllegalStateException</semanticResources>
791 <semanticResources>java:/Objects/org.eclipse.core.runtime.CoreException</semanticResources>
792 <semanticResources>java:/Objects/org.osgi.util.tracker.ServiceTracker</semanticResources>
793 <semanticResources>java:/Objects/org.eclipse.osgi.service.debug.DebugTrace</semanticResources>
794 <semanticResources>java:/Objects/java.util.EventListener</semanticResources>
795 <semanticResources>java:/Objects/java.util.EventObject</semanticResources>
796 <semanticResources>java:/Objects/org.eclipse.core.runtime.IStatus</semanticResources>
797 <semanticResources>java:/Objects/org.eclipse.core.runtime.ListenerList</semanticResources>
798 <semanticResources>java:/Objects/org.osgi.util.tracker.ServiceTrackerCustomizer</semanticResources>
799 <semanticResources>java:/Objects/org.osgi.framework.AllServiceListener</semanticResources>
800 <semanticResources>java:/Objects/org.osgi.util.tracker.AbstractTracked</semanticResources>
801 <semanticResources>java:/Objects/org.osgi.framework.ServiceReference</semanticResources>
802 <semanticResources>java:/Objects/org.osgi.framework.ServiceEvent</semanticResources>
803 <semanticResources>java:/Objects/org.osgi.framework.ServiceListener</semanticResources>
804 <semanticResources>java:/Objects/org.osgi.framework.Filter</semanticResources>
805 <semanticResources>java:/Objects/org.osgi.framework.InvalidSyntaxException</semanticResources>
806 <semanticResources>java:/Objects/org.eclipse.core.runtime.IExtension</semanticResources>
807 <semanticResources>java:/Objects/org.eclipse.core.runtime.IExtensionPoint</semanticResources>
808 <semanticResources>java:/Objects/org.eclipse.core.runtime.IPluginPrerequisite</semanticResources>
809 <semanticResources>java:/Objects/org.eclipse.core.runtime.ILibrary</semanticResources>
810 <semanticResources>java:/Objects/org.eclipse.core.runtime.PluginVersionIdentifier</semanticResources>
811 <semanticResources>java:/Objects/org.eclipse.core.runtime.InvalidRegistryObjectException</semanticResources>
812 <semanticResources>java:/Objects/org.eclipse.core.runtime.IConfigurationElement</semanticResources>
813 <semanticResources>java:/Objects/org.eclipse.core.runtime.IContributor</semanticResources>
814 <semanticResources>java:/Objects/org.osgi.framework.Version</semanticResources>
815 <semanticResources>java:/Objects/org.osgi.framework.BundleException</semanticResources>
816 <semanticResources>java:/Objects/org.eclipse.core.runtime.ILogListener</semanticResources>
817 <semanticResources>java:/Objects/org.osgi.framework.BundleReference</semanticResources>
818 <semanticResources>java:/Objects/org.osgi.framework.BundleListener</semanticResources>
819 <semanticResources>java:/Objects/org.osgi.framework.FrameworkListener</semanticResources>
820 <semanticResources>java:/Objects/org.osgi.framework.ServiceObjects</semanticResources>
821 <semanticResources>java:/Objects/org.osgi.framework.ServiceRegistration</semanticResources>
822 <semanticResources>java:/Objects/org.osgi.framework.ServiceFactory</semanticResources>
823 <semanticResources>java:/Objects/org.osgi.framework.BundleEvent</semanticResources>
824 <semanticResources>java:/Objects/org.osgi.framework.FrameworkEvent</semanticResources>
825 <semanticResources>java:/Objects/org.eclipse.emf.ecore.ETypedElement</semanticResources>
826 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EParameter</semanticResources>
827 <semanticResources>java:/Objects/org.eclipse.emf.ecore.resource.ResourceSet</semanticResources>
828 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.AdapterFactory</semanticResources>
829 <semanticResources>java:/Objects/org.eclipse.emf.ecore.resource.URIConverter</semanticResources>
830 <semanticResources>java:/Objects/java.io.InputStreamReader</semanticResources>
831 <semanticResources>java:/Objects/org.eclipse.emf.ecore.resource.ContentHandler</semanticResources>
832 <semanticResources>java:/Objects/org.eclipse.emf.ecore.resource.URIHandler</semanticResources>
833 <semanticResources>java:/Objects/sun.nio.cs.StreamDecoder</semanticResources>
834 <semanticResources>java:/Objects/java.io.FileInputStream</semanticResources>
835 <semanticResources>java:/Objects/org.eclipse.emf.common.util.EMap</semanticResources>
836 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EFactory</semanticResources>
837 <semanticResources>java:/Objects/org.eclipse.emf.common.util.Enumerator</semanticResources>
838 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EEnum</semanticResources>
839 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.FeatureMap</semanticResources>
840 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.InternalEList</semanticResources>
841 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.EContentsEList</semanticResources>
842 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.AbstractSequentialInternalEList</semanticResources>
843 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement</semanticResources>
844 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem</semanticResources>
845 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink</semanticResources>
846 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand</semanticResources>
847 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain</semanticResources>
848 <semanticResources>java:/Objects/java.lang.Override</semanticResources>
849 <semanticResources>java:/Objects/java.lang.SuppressWarnings</semanticResources>
850 <semanticResources>java:/Objects/javax.annotation.Generated</semanticResources>
851 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification</semanticResources>
852 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft</semanticResources>
853 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.Payload</semanticResources>
854 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission</semanticResources>
855 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission</semanticResources>
856 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork</semanticResources>
857 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat</semanticResources>
858 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U</semanticResources>
859 <semanticResources>../src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend</semanticResources>
860 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ArrayLiterals</semanticResources>
861 <semanticResources>java:/Objects/com.google.common.annotations.GwtCompatible</semanticResources>
862 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.Pure</semanticResources>
863 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.Inline</semanticResources>
864 <semanticResources>java:/Objects/com.google.common.annotations.Beta</semanticResources>
865 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.CollectionLiterals</semanticResources>
866 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.Pair</semanticResources>
867 <semanticResources>java:/Objects/java.util.LinkedHashSet</semanticResources>
868 <semanticResources>java:/Objects/java.util.TreeMap</semanticResources>
869 <semanticResources>java:/Objects/java.util.TreeSet</semanticResources>
870 <semanticResources>java:/Objects/java.util.NavigableMap</semanticResources>
871 <semanticResources>java:/Objects/java.util.NavigableSet</semanticResources>
872 <semanticResources>java:/Objects/java.util.SortedSet</semanticResources>
873 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.InputOutput</semanticResources>
874 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ArrayExtensions</semanticResources>
875 <semanticResources>java:/Objects/com.google.common.annotations.GwtIncompatible</semanticResources>
876 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.BigDecimalExtensions</semanticResources>
877 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.BigIntegerExtensions</semanticResources>
878 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.BooleanExtensions</semanticResources>
879 <semanticResources>java:/Objects/com.google.common.primitives.Booleans</semanticResources>
880 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ByteExtensions</semanticResources>
881 <semanticResources>java:/Objects/java.lang.Math</semanticResources>
882 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.CharacterExtensions</semanticResources>
883 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.CollectionExtensions</semanticResources>
884 <semanticResources>java:/Objects/com.google.common.collect.Iterables</semanticResources>
885 <semanticResources>java:/Objects/com.google.common.collect.ImmutableList</semanticResources>
886 <semanticResources>java:/Objects/com.google.common.collect.ImmutableSet</semanticResources>
887 <semanticResources>java:/Objects/com.google.common.collect.ImmutableSortedSet</semanticResources>
888 <semanticResources>java:/Objects/com.google.common.collect.ImmutableMap</semanticResources>
889 <semanticResources>java:/Objects/com.google.common.collect.ImmutableSortedMap</semanticResources>
890 <semanticResources>java:/Objects/java.util.Collections</semanticResources>
891 <semanticResources>java:/Objects/com.google.common.collect.FluentIterable</semanticResources>
892 <semanticResources>java:/Objects/com.google.common.base.Predicate</semanticResources>
893 <semanticResources>java:/Objects/com.google.common.base.Function</semanticResources>
894 <semanticResources>java:/Objects/com.google.common.base.Optional</semanticResources>
895 <semanticResources>java:/Objects/com.google.common.collect.ImmutableCollection</semanticResources>
896 <semanticResources>java:/Objects/com.google.common.collect.ImmutableListMultimap</semanticResources>
897 <semanticResources>java:/Objects/com.google.common.base.Joiner</semanticResources>
898 <semanticResources>java:/Objects/com.google.common.collect.ImmutableMultiset</semanticResources>
899 <semanticResources>java:/Objects/com.google.common.collect.ImmutableMultimap</semanticResources>
900 <semanticResources>java:/Objects/com.google.common.collect.ListMultimap</semanticResources>
901 <semanticResources>java:/Objects/com.google.common.collect.Multimap</semanticResources>
902 <semanticResources>java:/Objects/com.google.common.collect.AbstractMultimap</semanticResources>
903 <semanticResources>java:/Objects/com.google.common.collect.UnmodifiableIterator</semanticResources>
904 <semanticResources>java:/Objects/com.google.common.collect.Serialization</semanticResources>
905 <semanticResources>java:/Objects/com.google.common.collect.ImmutableSetMultimap</semanticResources>
906 <semanticResources>java:/Objects/com.google.common.collect.Multiset</semanticResources>
907 <semanticResources>java:/Objects/com.google.common.collect.Multimaps</semanticResources>
908 <semanticResources>java:/Objects/com.google.common.collect.Maps</semanticResources>
909 <semanticResources>java:/Objects/com.google.common.collect.AbstractListMultimap</semanticResources>
910 <semanticResources>java:/Objects/com.google.common.base.Supplier</semanticResources>
911 <semanticResources>java:/Objects/com.google.common.collect.AbstractMapBasedMultimap</semanticResources>
912 <semanticResources>java:/Objects/com.google.common.collect.AbstractSetMultimap</semanticResources>
913 <semanticResources>java:/Objects/com.google.common.collect.AbstractSortedSetMultimap</semanticResources>
914 <semanticResources>java:/Objects/com.google.common.collect.AbstractMultiset</semanticResources>
915 <semanticResources>java:/Objects/com.google.common.collect.Multisets</semanticResources>
916 <semanticResources>java:/Objects/com.google.common.collect.SetMultimap</semanticResources>
917 <semanticResources>java:/Objects/com.google.common.collect.ForwardingMultimap</semanticResources>
918 <semanticResources>java:/Objects/com.google.common.collect.SortedSetMultimap</semanticResources>
919 <semanticResources>java:/Objects/com.google.common.collect.FilteredMultimap</semanticResources>
920 <semanticResources>java:/Objects/com.google.common.collect.FilteredSetMultimap</semanticResources>
921 <semanticResources>java:/Objects/java.util.EnumMap</semanticResources>
922 <semanticResources>java:/Objects/com.google.common.base.Converter</semanticResources>
923 <semanticResources>java:/Objects/com.google.common.collect.BiMap</semanticResources>
924 <semanticResources>java:/Objects/com.google.common.collect.ForwardingMap</semanticResources>
925 <semanticResources>java:/Objects/com.google.common.collect.Ordering</semanticResources>
926 <semanticResources>java:/Objects/com.google.common.collect.Sets</semanticResources>
927 <semanticResources>java:/Objects/com.google.common.collect.ForwardingSet</semanticResources>
928 <semanticResources>java:/Objects/com.google.common.collect.AbstractNavigableMap</semanticResources>
929 <semanticResources>java:/Objects/com.google.common.collect.MapDifference</semanticResources>
930 <semanticResources>java:/Objects/com.google.common.collect.SortedMapDifference</semanticResources>
931 <semanticResources>java:/Objects/com.google.common.collect.ForwardingCollection</semanticResources>
932 <semanticResources>java:/Objects/com.google.common.collect.ForwardingSortedMap</semanticResources>
933 <semanticResources>java:/Objects/com.google.common.base.Equivalence</semanticResources>
934 <semanticResources>java:/Objects/java.util.IdentityHashMap</semanticResources>
935 <semanticResources>java:/Objects/com.google.common.collect.Range</semanticResources>
936 <semanticResources>java:/Objects/com.google.common.collect.ForwardingObject</semanticResources>
937 <semanticResources>java:/Objects/com.google.common.annotations.VisibleForTesting</semanticResources>
938 <semanticResources>java:/Objects/java.util.EnumSet</semanticResources>
939 <semanticResources>java:/Objects/com.google.common.collect.CartesianList</semanticResources>
940 <semanticResources>java:/Objects/com.google.common.collect.ForwardingNavigableSet</semanticResources>
941 <semanticResources>java:/Objects/com.google.common.collect.Collections2</semanticResources>
942 <semanticResources>java:/Objects/com.google.common.collect.ForwardingSortedSet</semanticResources>
943 <semanticResources>java:/Objects/java.util.concurrent.CopyOnWriteArraySet</semanticResources>
944 <semanticResources>java:/Objects/com.google.common.collect.AbstractIterator</semanticResources>
945 <semanticResources>java:/Objects/java.util.concurrent.CopyOnWriteArrayList</semanticResources>
946 <semanticResources>java:/Objects/java.util.function.BiPredicate</semanticResources>
947 <semanticResources>java:/Objects/com.google.common.collect.Cut</semanticResources>
948 <semanticResources>java:/Objects/com.google.common.collect.DiscreteDomain</semanticResources>
949 <semanticResources>java:/Objects/com.google.common.collect.BoundType</semanticResources>
950 <semanticResources>java:/Objects/com.google.common.collect.ForwardingMultiset</semanticResources>
951 <semanticResources>java:/Objects/com.google.common.collect.SortedMultiset</semanticResources>
952 <semanticResources>java:/Objects/com.google.common.collect.SortedMultisetBridge</semanticResources>
953 <semanticResources>java:/Objects/com.google.common.collect.SortedIterable</semanticResources>
954 <semanticResources>java:/Objects/com.google.common.collect.UnmodifiableListIterator</semanticResources>
955 <semanticResources>java:/Objects/com.google.common.collect.ImmutableSortedSetFauxverideShim</semanticResources>
956 <semanticResources>java:/Objects/com.google.common.collect.RegularImmutableSortedSet</semanticResources>
957 <semanticResources>java:/Objects/com.google.common.collect.ImmutableMapEntry</semanticResources>
958 <semanticResources>java:/Objects/com.google.common.collect.ImmutableEntry</semanticResources>
959 <semanticResources>java:/Objects/com.google.common.collect.AbstractMapEntry</semanticResources>
960 <semanticResources>java:/Objects/com.google.common.collect.ImmutableSortedMapFauxverideShim</semanticResources>
961 <semanticResources>java:/Objects/java.util.AbstractQueue</semanticResources>
962 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ComparableExtensions</semanticResources>
963 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.DoubleExtensions</semanticResources>
964 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.FloatExtensions</semanticResources>
965 <semanticResources>java:/Objects/java.lang.Float</semanticResources>
966 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.FunctionExtensions</semanticResources>
967 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.Functions</semanticResources>
968 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.Procedures</semanticResources>
969 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.IntegerExtensions</semanticResources>
970 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ExclusiveRange</semanticResources>
971 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.IntegerRange</semanticResources>
972 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.IterableExtensions</semanticResources>
973 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.IteratorExtensions</semanticResources>
974 <semanticResources>java:/Objects/com.google.common.collect.Iterators</semanticResources>
975 <semanticResources>java:/Objects/com.google.common.collect.MultitransformedIterator</semanticResources>
976 <semanticResources>java:/Objects/com.google.common.collect.PeekingIterator</semanticResources>
977 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ListExtensions</semanticResources>
978 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.LongExtensions</semanticResources>
979 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.MapExtensions</semanticResources>
980 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.internal.UnmodifiableMergingMapView</semanticResources>
981 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ObjectExtensions</semanticResources>
982 <semanticResources>java:/Objects/com.google.common.base.Objects</semanticResources>
983 <semanticResources>java:/Objects/com.google.common.base.ExtraObjectsMethodsForWeb</semanticResources>
984 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ProcedureExtensions</semanticResources>
985 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.ShortExtensions</semanticResources>
986 <semanticResources>java:/Objects/java.lang.Short</semanticResources>
987 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.StringExtensions</semanticResources>
988 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/StandaloneScriptExecutor.xtend</semanticResources>
989 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationStandaloneSetup.xtend</semanticResources>
990 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript</semanticResources>
991 <semanticResources>java:/Objects/org.eclipse.core.runtime.NullProgressMonitor</semanticResources>
992 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.EcoreUtil</semanticResources>
993 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine</semanticResources>
994 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend</semanticResources>
995 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSSetup.xtend</semanticResources>
996 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend</semanticResources>
997 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend</semanticResources>
998 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationStandaloneRuntimeModule.xtend</semanticResources>
999 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationStandaloneSetupGenerated</semanticResources>
1000 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend</semanticResources>
1001 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/valueconverter/ApplicationConfigurationValueConverterService.xtend</semanticResources>
1002 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.AbstractApplicationConfigurationRuntimeModule</semanticResources>
1003 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ApplicationConfigurationPackage</semanticResources>
1004 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.CftImport</semanticResources>
1005 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.EPackageImport</semanticResources>
1006 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternEntry</semanticResources>
1007 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ViatraImport</semanticResources>
1008 <semanticResources>java:/Objects/org.eclipse.xtext.xbase.lib.Extension</semanticResources>
1009 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ApplicationConfigurationFactory</semanticResources>
1010 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.AllPackageEntry</semanticResources>
1011 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.AllPatternEntry</semanticResources>
1012 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ClassReference</semanticResources>
1013 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ClassTypeScope</semanticResources>
1014 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Command</semanticResources>
1015 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Config</semanticResources>
1016 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigDeclaration</semanticResources>
1017 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigEntry</semanticResources>
1018 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigReference</semanticResources>
1019 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification</semanticResources>
1020 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.CostEntry</semanticResources>
1021 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.CostObjectiveFunction</semanticResources>
1022 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.CustomEntry</semanticResources>
1023 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Declaration</semanticResources>
1024 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.DocumentationEntry</semanticResources>
1025 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ExactNumber</semanticResources>
1026 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.File</semanticResources>
1027 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileDeclaration</semanticResources>
1028 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileReference</semanticResources>
1029 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification</semanticResources>
1030 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FolderEntry</semanticResources>
1031 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask</semanticResources>
1032 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPattern</semanticResources>
1033 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatternDeclaration</semanticResources>
1034 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatternReference</semanticResources>
1035 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Import</semanticResources>
1036 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntEnumberation</semanticResources>
1037 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntegerReference</semanticResources>
1038 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntegerScope</semanticResources>
1039 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntegerTypeScope</semanticResources>
1040 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntervallNumber</semanticResources>
1041 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MemoryEntry</semanticResources>
1042 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Metamodel</semanticResources>
1043 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelDeclaration</semanticResources>
1044 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelElement</semanticResources>
1045 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelEntry</semanticResources>
1046 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference</semanticResources>
1047 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelSpecification</semanticResources>
1048 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ModelEntry</semanticResources>
1049 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Mtff</semanticResources>
1050 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.NumberSpecification</semanticResources>
1051 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectReference</semanticResources>
1052 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectTypeScope</semanticResources>
1053 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Objective</semanticResources>
1054 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveDeclaration</semanticResources>
1055 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveEntry</semanticResources>
1056 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveFunction</semanticResources>
1057 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveReference</semanticResources>
1058 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveSpecification</semanticResources>
1059 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.OptimizationEntry</semanticResources>
1060 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModel</semanticResources>
1061 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelDeclaration</semanticResources>
1062 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelEntry</semanticResources>
1063 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference</semanticResources>
1064 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification</semanticResources>
1065 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternElement</semanticResources>
1066 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification</semanticResources>
1067 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RealEnumeration</semanticResources>
1068 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RealReference</semanticResources>
1069 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RealScope</semanticResources>
1070 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RealTypeScope</semanticResources>
1071 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ReliabilityObjectiveFunction</semanticResources>
1072 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ReliabiltiyProbability</semanticResources>
1073 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RuntimeEntry</semanticResources>
1074 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Scope</semanticResources>
1075 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeDeclaration</semanticResources>
1076 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeReference</semanticResources>
1077 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification</semanticResources>
1078 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.StringEnumeration</semanticResources>
1079 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.StringReference</semanticResources>
1080 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.StringScope</semanticResources>
1081 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.StringTypeScope</semanticResources>
1082 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Task</semanticResources>
1083 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ThresholdEntry</semanticResources>
1084 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.TypeReference</semanticResources>
1085 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.TypeScope</semanticResources>
1086 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.DocumentLevelSpecification</semanticResources>
1087 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Solver</semanticResources>
1088 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.OptimizationDirection</semanticResources>
1089 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ComparisonOperator</semanticResources>
1090 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/valueconverter/QualifiedNameValueConverter.xtend</semanticResources>
1091 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/ApplicationConfigurationValidator.xtend</semanticResources>
1092 <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.validation.AbstractApplicationConfigurationValidator</semanticResources>
1093 <semanticResources>java:/Objects/org.eclipse.core.runtime.IProgressMonitor</semanticResources>
1094 <semanticResources>java:/Objects/org.eclipse.emf.common.util.AbstractTreeIterator</semanticResources>
1095 <semanticResources>java:/Objects/org.eclipse.emf.common.util.Diagnostic</semanticResources>
1096 <semanticResources>java:/Objects/org.eclipse.emf.common.util.BasicEList</semanticResources>
1097 <semanticResources>java:/Objects/org.eclipse.emf.common.util.AbstractEList</semanticResources>
1098 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.matcher.RetePatternMatcher</semanticResources>
1099 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.RecipeTraceInfo</semanticResources>
1100 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.index.Indexer</semanticResources>
1101 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.boundary.Disconnectable</semanticResources>
1102 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.boundary.ReteBoundary</semanticResources>
1103 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.construction.plancompiler.ReteRecipeCompiler</semanticResources>
1104 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Network</semanticResources>
1105 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.matcher.HintConfigurator</semanticResources>
1106 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.single.TransformerNode</semanticResources>
1107 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.index.IterableIndexer</semanticResources>
1108 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Receiver</semanticResources>
1109 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Production</semanticResources>
1110 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.single.SingleInputNode</semanticResources>
1111 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.ReteContainer</semanticResources>
1112 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Direction</semanticResources>
1113 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.StandardNode</semanticResources>
1114 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Tunnel</semanticResources>
1115 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Supplier</semanticResources>
1116 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.TraceInfo</semanticResources>
1117 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.mailbox.Mailbox</semanticResources>
1118 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.BaseNode</semanticResources>
1119 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.index.ProjectionIndexer</semanticResources>
1120 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.Node</semanticResources>
1121 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.CommunicationTracker</semanticResources>
1122 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.CommunicationGroup</semanticResources>
1123 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.RederivableNode</semanticResources>
1124 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.MessageKind</semanticResources>
1125 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.IGroupable</semanticResources>
1126 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.util.Clearable</semanticResources>
1127 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.remote.Address</semanticResources>
1128 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.ConnectionFactory</semanticResources>
1129 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.boundary.InputConnector</semanticResources>
1130 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.NodeFactory</semanticResources>
1131 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.NodeProvisioner</semanticResources>
1132 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.network.UpdateMessage</semanticResources>
1133 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ReteNodeRecipe</semanticResources>
1134 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.IndexerRecipe</semanticResources>
1135 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.SingleParentNodeRecipe</semanticResources>
1136 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.Mask</semanticResources>
1137 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.InputRecipe</semanticResources>
1138 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.InputFilterRecipe</semanticResources>
1139 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.boundary.ExternalInputEnumeratorNode</semanticResources>
1140 <semanticResources>java:/Objects/com.google.common.collect.Table</semanticResources>
1141 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.FilterRecipe</semanticResources>
1142 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.AlphaRecipe</semanticResources>
1143 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.CountAggregatorRecipe</semanticResources>
1144 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.TransparentRecipe</semanticResources>
1145 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ExpressionEnforcerRecipe</semanticResources>
1146 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.SingleColumnAggregatorRecipe</semanticResources>
1147 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.TransitiveClosureRecipe</semanticResources>
1148 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ProductionRecipe</semanticResources>
1149 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.UniquenessEnforcerRecipe</semanticResources>
1150 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ConstantRecipe</semanticResources>
1151 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.DiscriminatorBucketRecipe</semanticResources>
1152 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.DiscriminatorDispatcherRecipe</semanticResources>
1153 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.TrimmerRecipe</semanticResources>
1154 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.InequalityFilterRecipe</semanticResources>
1155 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.EqualityFilterRecipe</semanticResources>
1156 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.AntiJoinRecipe</semanticResources>
1157 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.SemiJoinRecipe</semanticResources>
1158 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.JoinRecipe</semanticResources>
1159 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ExpressionDefinition</semanticResources>
1160 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator</semanticResources>
1161 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.IndexerBasedAggregatorRecipe</semanticResources>
1162 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ProjectionIndexerRecipe</semanticResources>
1163 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.RederivableNodeRecipe</semanticResources>
1164 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IMultisetAggregationOperator</semanticResources>
1165 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.MonotonicityInfo</semanticResources>
1166 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.MultiParentNodeRecipe</semanticResources>
1167 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ExistenceJoinRecipe</semanticResources>
1168 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.BetaRecipe</semanticResources>
1169 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider</semanticResources>
1170 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.remote.RemoteReceiver</semanticResources>
1171 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.remote.RemoteSupplier</semanticResources>
1172 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.UserRequestTrace</semanticResources>
1173 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.helper.RecipeRecognizer</semanticResources>
1174 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.index.IndexerListener</semanticResources>
1175 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.IQueryPlannerStrategy</semanticResources>
1176 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.PlanningTrace</semanticResources>
1177 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.CompiledSubPlan</semanticResources>
1178 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality</semanticResources>
1179 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality</semanticResources>
1180 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint</semanticResources>
1181 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall</semanticResources>
1182 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter</semanticResources>
1183 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint</semanticResources>
1184 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation</semanticResources>
1185 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryReflexiveTransitiveClosure</semanticResources>
1186 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure</semanticResources>
1187 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall</semanticResources>
1188 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint</semanticResources>
1189 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue</semanticResources>
1190 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.CompiledQuery</semanticResources>
1191 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.EnumerablePConstraint</semanticResources>
1192 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.operations.PJoin</semanticResources>
1193 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.operations.PProject</semanticResources>
1194 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.planning.operations.PStart</semanticResources>
1195 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.RecipesFactory</semanticResources>
1196 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter</semanticResources>
1197 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.construction.plancompiler.RecursionCutoffPoint</semanticResources>
1198 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.traceability.PatternTraceInfo</semanticResources>
1199 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.ITypeConstraint</semanticResources>
1200 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.ITypeInfoProviderConstraint</semanticResources>
1201 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternCallBasedDeferred</semanticResources>
1202 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.IQueryReference</semanticResources>
1203 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.BoundAggregator</semanticResources>
1204 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.BaseTypeSafeConstraint</semanticResources>
1205 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.AbstractTransitiveClosure</semanticResources>
1206 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.KeyedEnumerablePConstraint</semanticResources>
1207 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.AggregatorIndexerRecipe</semanticResources>
1208 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.CheckRecipe</semanticResources>
1209 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.EvalRecipe</semanticResources>
1210 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.ReteRecipe</semanticResources>
1211 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.rete.recipes.RecipesPackage</semanticResources>
1212 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.AbstractRewriterTraceSource</semanticResources>
1213 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.IDerivativeModificationReason</semanticResources>
1214 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.IRewriterTraceCollector</semanticResources>
1215 <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.IPTraceableTraceProvider</semanticResources>
1216 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/ApplicationConfigurationParser.xtend</semanticResources>
1217 <semanticResources>java:/Objects/org.eclipse.core.runtime.Status</semanticResources>
1218 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.Job</semanticResources>
1219 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend</semanticResources>
1220 <semanticResources>java:/Objects/org.eclipse.emf.ecore.resource.impl.ResourceSetImpl</semanticResources>
1221 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.impl.NotifierImpl</semanticResources>
1222 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.EContentAdapter</semanticResources>
1223 <semanticResources>java:/Objects/org.eclipse.emf.ecore.util.NotifyingInternalEListImpl</semanticResources>
1224 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.impl.BasicNotifierImpl</semanticResources>
1225 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.impl.AdapterImpl</semanticResources>
1226 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.impl.NotifyingListImpl</semanticResources>
1227 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.NotifyingList</semanticResources>
1228 <semanticResources>java:/Objects/org.eclipse.emf.common.notify.impl.NotificationImpl</semanticResources>
1229 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.InternalJob</semanticResources>
1230 <semanticResources>java:/Objects/org.eclipse.core.runtime.IAdaptable</semanticResources>
1231 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.IJobChangeListener</semanticResources>
1232 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.IJobFunction</semanticResources>
1233 <semanticResources>java:/Objects/org.eclipse.core.runtime.ICoreRunnable</semanticResources>
1234 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.JobGroup</semanticResources>
1235 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.IJobManager</semanticResources>
1236 <semanticResources>java:/Objects/org.eclipse.core.runtime.QualifiedName</semanticResources>
1237 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.ISchedulingRule</semanticResources>
1238 <semanticResources>java:/Objects/org.eclipse.core.runtime.OperationCanceledException</semanticResources>
1239 <semanticResources>java:/Objects/org.eclipse.core.runtime.PlatformObject</semanticResources>
1240 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.JobManager</semanticResources>
1241 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.ObjectMap</semanticResources>
1242 <semanticResources>java:/Objects/org.eclipse.osgi.service.debug.DebugOptionsListener</semanticResources>
1243 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.JobChangeAdapter</semanticResources>
1244 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.IJobChangeEvent</semanticResources>
1245 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.ThreadJob</semanticResources>
1246 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.InternalJobGroup</semanticResources>
1247 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.JobQueue</semanticResources>
1248 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.LockManager</semanticResources>
1249 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.ILock</semanticResources>
1250 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.LockListener</semanticResources>
1251 <semanticResources>java:/Objects/org.eclipse.core.runtime.jobs.ProgressProvider</semanticResources>
1252 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.Worker</semanticResources>
1253 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.ImplicitJobs</semanticResources>
1254 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.InternalWorker</semanticResources>
1255 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.JobListeners</semanticResources>
1256 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.WorkerPool</semanticResources>
1257 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.Counter</semanticResources>
1258 <semanticResources>java:/Objects/org.eclipse.core.runtime.MultiStatus</semanticResources>
1259 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.OrderedLock</semanticResources>
1260 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.DeadlockDetector</semanticResources>
1261 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.Semaphore</semanticResources>
1262 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.Queue</semanticResources>
1263 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.Deadlock</semanticResources>
1264 <semanticResources>java:/Objects/org.eclipse.core.internal.jobs.JobChangeEvent</semanticResources>
1265 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/MetamodelValidator.xtend</semanticResources>
1266 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend</semanticResources>
1267 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/MetamodelLoader.xtend</semanticResources>
1268 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ModelLoader.xtend</semanticResources>
1269 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend</semanticResources>
1270 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/SolverLoader.xtend</semanticResources>
1271 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScopeLoader.xtend</semanticResources>
1272 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/NullWorkspace.xtend</semanticResources>
1273 <semanticResources>java:/Objects/java.lang.System</semanticResources>
1274 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend</semanticResources>
1275 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EcorePackage</semanticResources>
1276 <semanticResources>java:/Objects/org.eclipse.emf.ecore.EcoreFactory</semanticResources>
1277 <semanticResources>java:/Objects/java.io.Console</semanticResources>
1278 <semanticResources>java:/Objects/java.io.FileOutputStream</semanticResources>
1279 <semanticResources>../inputs/SatelliteInstance.xmi</semanticResources>
1280 <ownedViews xmi:type="viewpoint:DView" uid="_reOHEF0qEemRYLyXht2IrQ">
1281 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
1282 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_re1yIF0qEemRYLyXht2IrQ" name="satellite" repPath="#_rel6gF0qEemRYLyXht2IrQ">
1283 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
1284 <target xmi:type="ecore:EPackage" href="satellite.ecore#/"/>
1285 </ownedRepresentationDescriptors>
1286 </ownedViews>
1287 </viewpoint:DAnalysis>
1288 <diagram:DSemanticDiagram uid="_rel6gF0qEemRYLyXht2IrQ" name="satellite">
1289 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rew5oF0qEemRYLyXht2IrQ" source="DANNOTATION_CUSTOMIZATION_KEY">
1290 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_rexgsF0qEemRYLyXht2IrQ">
1291 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_028-wF0vEemRYLyXht2IrQ" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
1292 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1293 <labelFormat>bold</labelFormat>
1294 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1295 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1296 </computedStyleDescriptions>
1297 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan">
1298 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1299 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_6kODkV0vEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render">
1300 <labelFormat>bold</labelFormat>
1301 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1302 </centerLabelStyleDescription>
1303 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_6kODkl0vEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
1304 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
1305 </endLabelStyleDescription>
1306 </computedStyleDescriptions>
1307 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan">
1308 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1309 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ccHLEV0wEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render">
1310 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1311 </centerLabelStyleDescription>
1312 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ccHLEl0wEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
1313 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
1314 </endLabelStyleDescription>
1315 </computedStyleDescriptions>
1316 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan">
1317 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1318 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_fDAfYV0xEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render">
1319 <labelFormat>bold</labelFormat>
1320 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
1321 </centerLabelStyleDescription>
1322 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_fDAfYl0xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
1323 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
1324 </endLabelStyleDescription>
1325 </computedStyleDescriptions>
1326 </data>
1327 </ownedAnnotationEntries>
1328 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rfAxQF0qEemRYLyXht2IrQ" source="GMF_DIAGRAMS">
1329 <data xmi:type="notation:Diagram" xmi:id="_rfAxQV0qEemRYLyXht2IrQ" type="Sirius" element="_rel6gF0qEemRYLyXht2IrQ" measurementUnit="Pixel">
1330 <children xmi:type="notation:Node" xmi:id="_tNH44F0qEemRYLyXht2IrQ" type="2003" element="_tM4oUF0qEemRYLyXht2IrQ">
1331 <children xmi:type="notation:Node" xmi:id="_tNK8MF0qEemRYLyXht2IrQ" type="5007"/>
1332 <children xmi:type="notation:Node" xmi:id="_tNLjQF0qEemRYLyXht2IrQ" type="7004">
1333 <styles xmi:type="notation:SortingStyle" xmi:id="_tNLjQV0qEemRYLyXht2IrQ"/>
1334 <styles xmi:type="notation:FilteringStyle" xmi:id="_tNLjQl0qEemRYLyXht2IrQ"/>
1335 </children>
1336 <styles xmi:type="notation:ShapeStyle" xmi:id="_tNH44V0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1337 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tNH44l0qEemRYLyXht2IrQ" x="39" y="39" width="146" height="100"/>
1338 </children>
1339 <children xmi:type="notation:Node" xmi:id="_vlcbIF0qEemRYLyXht2IrQ" type="2003" element="_vlPm0F0qEemRYLyXht2IrQ">
1340 <children xmi:type="notation:Node" xmi:id="_vldpQF0qEemRYLyXht2IrQ" type="5007"/>
1341 <children xmi:type="notation:Node" xmi:id="_vldpQV0qEemRYLyXht2IrQ" type="7004">
1342 <children xmi:type="notation:Node" xmi:id="_zCslIF0qEemRYLyXht2IrQ" type="3010" element="_zChmAF0qEemRYLyXht2IrQ">
1343 <styles xmi:type="notation:FontStyle" xmi:id="_zCslIV0qEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
1344 <layoutConstraint xmi:type="notation:Location" xmi:id="_zCslIl0qEemRYLyXht2IrQ"/>
1345 </children>
1346 <styles xmi:type="notation:SortingStyle" xmi:id="_vldpQl0qEemRYLyXht2IrQ"/>
1347 <styles xmi:type="notation:FilteringStyle" xmi:id="_vldpQ10qEemRYLyXht2IrQ"/>
1348 </children>
1349 <styles xmi:type="notation:ShapeStyle" xmi:id="_vlcbIV0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1350 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vlcbIl0qEemRYLyXht2IrQ" x="39" y="182" width="146" height="100"/>
1351 </children>
1352 <children xmi:type="notation:Node" xmi:id="_3UIIoF0rEemRYLyXht2IrQ" type="2003" element="_3T7UUF0rEemRYLyXht2IrQ">
1353 <children xmi:type="notation:Node" xmi:id="_3UJWwF0rEemRYLyXht2IrQ" type="5007"/>
1354 <children xmi:type="notation:Node" xmi:id="_3UJWwV0rEemRYLyXht2IrQ" type="7004">
1355 <styles xmi:type="notation:SortingStyle" xmi:id="_3UJWwl0rEemRYLyXht2IrQ"/>
1356 <styles xmi:type="notation:FilteringStyle" xmi:id="_3UJWw10rEemRYLyXht2IrQ"/>
1357 </children>
1358 <styles xmi:type="notation:ShapeStyle" xmi:id="_3UIIoV0rEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1359 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3UIIol0rEemRYLyXht2IrQ" x="390" y="182" width="172" height="100"/>
1360 </children>
1361 <children xmi:type="notation:Node" xmi:id="__OldwF0rEemRYLyXht2IrQ" type="2003" element="__OYCYF0rEemRYLyXht2IrQ">
1362 <children xmi:type="notation:Node" xmi:id="__OmE0F0rEemRYLyXht2IrQ" type="5007"/>
1363 <children xmi:type="notation:Node" xmi:id="__Omr4F0rEemRYLyXht2IrQ" type="7004">
1364 <styles xmi:type="notation:SortingStyle" xmi:id="__Omr4V0rEemRYLyXht2IrQ"/>
1365 <styles xmi:type="notation:FilteringStyle" xmi:id="__Omr4l0rEemRYLyXht2IrQ"/>
1366 </children>
1367 <styles xmi:type="notation:ShapeStyle" xmi:id="__OldwV0rEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1368 <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Oldwl0rEemRYLyXht2IrQ" x="507" y="325" width="159" height="100"/>
1369 </children>
1370 <children xmi:type="notation:Node" xmi:id="_Aq3OgF0sEemRYLyXht2IrQ" type="2003" element="_AqsPYF0sEemRYLyXht2IrQ">
1371 <children xmi:type="notation:Node" xmi:id="_Aq31kF0sEemRYLyXht2IrQ" type="5007"/>
1372 <children xmi:type="notation:Node" xmi:id="_Aq31kV0sEemRYLyXht2IrQ" type="7004">
1373 <styles xmi:type="notation:SortingStyle" xmi:id="_Aq31kl0sEemRYLyXht2IrQ"/>
1374 <styles xmi:type="notation:FilteringStyle" xmi:id="_Aq31k10sEemRYLyXht2IrQ"/>
1375 </children>
1376 <styles xmi:type="notation:ShapeStyle" xmi:id="_Aq3OgV0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1377 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aq3Ogl0sEemRYLyXht2IrQ" x="338" y="325" width="120" height="100"/>
1378 </children>
1379 <children xmi:type="notation:Node" xmi:id="_H1d0AF0sEemRYLyXht2IrQ" type="2003" element="_H1OjcF0sEemRYLyXht2IrQ">
1380 <children xmi:type="notation:Node" xmi:id="_H1ebEF0sEemRYLyXht2IrQ" type="5007"/>
1381 <children xmi:type="notation:Node" xmi:id="_H1ebEV0sEemRYLyXht2IrQ" type="7004">
1382 <styles xmi:type="notation:SortingStyle" xmi:id="_H1ebEl0sEemRYLyXht2IrQ"/>
1383 <styles xmi:type="notation:FilteringStyle" xmi:id="_H1ebE10sEemRYLyXht2IrQ"/>
1384 </children>
1385 <styles xmi:type="notation:ShapeStyle" xmi:id="_H1d0AV0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1386 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H1d0Al0sEemRYLyXht2IrQ" x="208" y="481" width="120" height="100"/>
1387 </children>
1388 <children xmi:type="notation:Node" xmi:id="_I4glYF0sEemRYLyXht2IrQ" type="2003" element="_I4Si8F0sEemRYLyXht2IrQ">
1389 <children xmi:type="notation:Node" xmi:id="_I4hMcF0sEemRYLyXht2IrQ" type="5007"/>
1390 <children xmi:type="notation:Node" xmi:id="_I4hzgF0sEemRYLyXht2IrQ" type="7004">
1391 <styles xmi:type="notation:SortingStyle" xmi:id="_I4hzgV0sEemRYLyXht2IrQ"/>
1392 <styles xmi:type="notation:FilteringStyle" xmi:id="_I4hzgl0sEemRYLyXht2IrQ"/>
1393 </children>
1394 <styles xmi:type="notation:ShapeStyle" xmi:id="_I4glYV0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1395 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I4glYl0sEemRYLyXht2IrQ" x="351" y="481" width="120" height="100"/>
1396 </children>
1397 <children xmi:type="notation:Node" xmi:id="_K1IDEF0sEemRYLyXht2IrQ" type="2003" element="_K04LcF0sEemRYLyXht2IrQ">
1398 <children xmi:type="notation:Node" xmi:id="_K1IDE10sEemRYLyXht2IrQ" type="5007"/>
1399 <children xmi:type="notation:Node" xmi:id="_K1IqIF0sEemRYLyXht2IrQ" type="7004">
1400 <styles xmi:type="notation:SortingStyle" xmi:id="_K1IqIV0sEemRYLyXht2IrQ"/>
1401 <styles xmi:type="notation:FilteringStyle" xmi:id="_K1IqIl0sEemRYLyXht2IrQ"/>
1402 </children>
1403 <styles xmi:type="notation:ShapeStyle" xmi:id="_K1IDEV0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1404 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K1IDEl0sEemRYLyXht2IrQ" x="494" y="481" width="120" height="100"/>
1405 </children>
1406 <children xmi:type="notation:Node" xmi:id="_j0vs4F0tEemRYLyXht2IrQ" type="2003" element="_j0eAEF0tEemRYLyXht2IrQ">
1407 <children xmi:type="notation:Node" xmi:id="_j0wT8F0tEemRYLyXht2IrQ" type="5007"/>
1408 <children xmi:type="notation:Node" xmi:id="_j0wT8V0tEemRYLyXht2IrQ" type="7004">
1409 <children xmi:type="notation:Node" xmi:id="_zugwAF0vEemRYLyXht2IrQ" type="3010" element="_zuaCUF0vEemRYLyXht2IrQ">
1410 <styles xmi:type="notation:FontStyle" xmi:id="_zugwAV0vEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
1411 <layoutConstraint xmi:type="notation:Location" xmi:id="_zugwAl0vEemRYLyXht2IrQ"/>
1412 </children>
1413 <children xmi:type="notation:Node" xmi:id="_Q89nMF0wEemRYLyXht2IrQ" type="3010" element="_Q8yBAF0wEemRYLyXht2IrQ">
1414 <styles xmi:type="notation:FontStyle" xmi:id="_Q89nMV0wEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
1415 <layoutConstraint xmi:type="notation:Location" xmi:id="_Q89nMl0wEemRYLyXht2IrQ"/>
1416 </children>
1417 <styles xmi:type="notation:SortingStyle" xmi:id="_j0wT8l0tEemRYLyXht2IrQ"/>
1418 <styles xmi:type="notation:FilteringStyle" xmi:id="_j0wT810tEemRYLyXht2IrQ"/>
1419 </children>
1420 <styles xmi:type="notation:ShapeStyle" xmi:id="_j0vs4V0tEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1421 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j0vs4l0tEemRYLyXht2IrQ" x="754" y="182" width="198" height="100"/>
1422 </children>
1423 <children xmi:type="notation:Node" xmi:id="_vyrzoF0vEemRYLyXht2IrQ" type="2003" element="_vyhbkF0vEemRYLyXht2IrQ">
1424 <children xmi:type="notation:Node" xmi:id="_vysasF0vEemRYLyXht2IrQ" type="5007"/>
1425 <children xmi:type="notation:Node" xmi:id="_vysasV0vEemRYLyXht2IrQ" type="7004">
1426 <children xmi:type="notation:Node" xmi:id="_x32JUF0vEemRYLyXht2IrQ" type="3010" element="_x3rKMF0vEemRYLyXht2IrQ">
1427 <styles xmi:type="notation:FontStyle" xmi:id="_x32JUV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1428 <layoutConstraint xmi:type="notation:Location" xmi:id="_x32JUl0vEemRYLyXht2IrQ"/>
1429 </children>
1430 <children xmi:type="notation:Node" xmi:id="_yhHIwF0vEemRYLyXht2IrQ" type="3010" element="_yg2DAF0vEemRYLyXht2IrQ">
1431 <styles xmi:type="notation:FontStyle" xmi:id="_yhHIwV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1432 <layoutConstraint xmi:type="notation:Location" xmi:id="_yhHIwl0vEemRYLyXht2IrQ"/>
1433 </children>
1434 <children xmi:type="notation:Node" xmi:id="_zAX3oF0vEemRYLyXht2IrQ" type="3010" element="_zAInEF0vEemRYLyXht2IrQ">
1435 <styles xmi:type="notation:FontStyle" xmi:id="_zAX3oV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1436 <layoutConstraint xmi:type="notation:Location" xmi:id="_zAX3ol0vEemRYLyXht2IrQ"/>
1437 </children>
1438 <styles xmi:type="notation:SortingStyle" xmi:id="_vysasl0vEemRYLyXht2IrQ"/>
1439 <styles xmi:type="notation:FilteringStyle" xmi:id="_vysas10vEemRYLyXht2IrQ"/>
1440 </children>
1441 <styles xmi:type="notation:ShapeStyle" xmi:id="_vyrzoV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1442 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vyrzol0vEemRYLyXht2IrQ" x="988" y="39" width="120" height="100"/>
1443 </children>
1444 <children xmi:type="notation:Node" xmi:id="_Ct-Y8F0wEemRYLyXht2IrQ" type="2003" element="_Ctw9kF0wEemRYLyXht2IrQ">
1445 <children xmi:type="notation:Node" xmi:id="_Ct_AAF0wEemRYLyXht2IrQ" type="5007"/>
1446 <children xmi:type="notation:Node" xmi:id="_Ct_nEF0wEemRYLyXht2IrQ" type="7004">
1447 <styles xmi:type="notation:SortingStyle" xmi:id="_Ct_nEV0wEemRYLyXht2IrQ"/>
1448 <styles xmi:type="notation:FilteringStyle" xmi:id="_Ct_nEl0wEemRYLyXht2IrQ"/>
1449 </children>
1450 <styles xmi:type="notation:ShapeStyle" xmi:id="_Ct-Y8V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1451 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ct-Y8l0wEemRYLyXht2IrQ" x="754" y="325" width="198" height="100"/>
1452 </children>
1453 <children xmi:type="notation:Node" xmi:id="_M5X18F0wEemRYLyXht2IrQ" type="2003" element="_M5OsAF0wEemRYLyXht2IrQ">
1454 <children xmi:type="notation:Node" xmi:id="_M5YdAF0wEemRYLyXht2IrQ" type="5007"/>
1455 <children xmi:type="notation:Node" xmi:id="_M5YdAV0wEemRYLyXht2IrQ" type="7004">
1456 <children xmi:type="notation:Node" xmi:id="_OBrh0F0wEemRYLyXht2IrQ" type="3010" element="_OBacEF0wEemRYLyXht2IrQ">
1457 <styles xmi:type="notation:FontStyle" xmi:id="_OBrh0V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1458 <layoutConstraint xmi:type="notation:Location" xmi:id="_OBrh0l0wEemRYLyXht2IrQ"/>
1459 </children>
1460 <children xmi:type="notation:Node" xmi:id="_Oca9EF0wEemRYLyXht2IrQ" type="3010" element="_OcLsgF0wEemRYLyXht2IrQ">
1461 <styles xmi:type="notation:FontStyle" xmi:id="_Oca9EV0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1462 <layoutConstraint xmi:type="notation:Location" xmi:id="_Oca9El0wEemRYLyXht2IrQ"/>
1463 </children>
1464 <children xmi:type="notation:Node" xmi:id="_O9880F0wEemRYLyXht2IrQ" type="3010" element="_O9wIgF0wEemRYLyXht2IrQ">
1465 <styles xmi:type="notation:FontStyle" xmi:id="_O9880V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1466 <layoutConstraint xmi:type="notation:Location" xmi:id="_O9880l0wEemRYLyXht2IrQ"/>
1467 </children>
1468 <styles xmi:type="notation:SortingStyle" xmi:id="_M5YdAl0wEemRYLyXht2IrQ"/>
1469 <styles xmi:type="notation:FilteringStyle" xmi:id="_M5YdA10wEemRYLyXht2IrQ"/>
1470 </children>
1471 <styles xmi:type="notation:ShapeStyle" xmi:id="_M5X18V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1472 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5X18l0wEemRYLyXht2IrQ" x="988" y="182" width="120" height="100"/>
1473 </children>
1474 <children xmi:type="notation:Node" xmi:id="_0aeMMF0xEemRYLyXht2IrQ" type="2003" element="_0aW3cF0xEemRYLyXht2IrQ">
1475 <children xmi:type="notation:Node" xmi:id="_0aeMM10xEemRYLyXht2IrQ" type="5007"/>
1476 <children xmi:type="notation:Node" xmi:id="_0aezQF0xEemRYLyXht2IrQ" type="7004">
1477 <styles xmi:type="notation:SortingStyle" xmi:id="_0aezQV0xEemRYLyXht2IrQ"/>
1478 <styles xmi:type="notation:FilteringStyle" xmi:id="_0aezQl0xEemRYLyXht2IrQ"/>
1479 </children>
1480 <styles xmi:type="notation:ShapeStyle" xmi:id="_0aeMMV0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1481 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0aeMMl0xEemRYLyXht2IrQ" x="52" y="325" width="120" height="100"/>
1482 </children>
1483 <children xmi:type="notation:Node" xmi:id="_45PdkF0xEemRYLyXht2IrQ" type="2003" element="_45FskF0xEemRYLyXht2IrQ">
1484 <children xmi:type="notation:Node" xmi:id="_45QEoF0xEemRYLyXht2IrQ" type="5007"/>
1485 <children xmi:type="notation:Node" xmi:id="_45QEoV0xEemRYLyXht2IrQ" type="7004">
1486 <styles xmi:type="notation:SortingStyle" xmi:id="_45QEol0xEemRYLyXht2IrQ"/>
1487 <styles xmi:type="notation:FilteringStyle" xmi:id="_45QEo10xEemRYLyXht2IrQ"/>
1488 </children>
1489 <styles xmi:type="notation:ShapeStyle" xmi:id="_45PdkV0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1490 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_45Pdkl0xEemRYLyXht2IrQ" x="39" y="481" width="146" height="100"/>
1491 </children>
1492 <styles xmi:type="notation:DiagramStyle" xmi:id="_rfAxQl0qEemRYLyXht2IrQ"/>
1493 <edges xmi:type="notation:Edge" xmi:id="_0jV4gF0qEemRYLyXht2IrQ" type="4001" element="_0jIdIF0qEemRYLyXht2IrQ" source="_vlcbIF0qEemRYLyXht2IrQ" target="_tNH44F0qEemRYLyXht2IrQ">
1494 <children xmi:type="notation:Node" xmi:id="_0jXGoF0qEemRYLyXht2IrQ" type="6001">
1495 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jXGoV0qEemRYLyXht2IrQ" y="-10"/>
1496 </children>
1497 <children xmi:type="notation:Node" xmi:id="_0jXtsF0qEemRYLyXht2IrQ" type="6002">
1498 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jXtsV0qEemRYLyXht2IrQ" y="10"/>
1499 </children>
1500 <children xmi:type="notation:Node" xmi:id="_0jYUwF0qEemRYLyXht2IrQ" type="6003">
1501 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jYUwV0qEemRYLyXht2IrQ" y="10"/>
1502 </children>
1503 <styles xmi:type="notation:ConnectorStyle" xmi:id="_0jV4gV0qEemRYLyXht2IrQ" routing="Tree"/>
1504 <styles xmi:type="notation:FontStyle" xmi:id="_0jV4gl0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1505 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0jV4g10qEemRYLyXht2IrQ" points="[0, 0, 0, 45]$[0, -45, 0, 0]"/>
1506 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jaxAF0qEemRYLyXht2IrQ" id="(0.410958904109589,0.01)"/>
1507 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jaxAV0qEemRYLyXht2IrQ" id="(0.4548611111111111,0.5)"/>
1508 </edges>
1509 <edges xmi:type="notation:Edge" xmi:id="_Mr9B0F0sEemRYLyXht2IrQ" type="4001" element="_MruYUF0sEemRYLyXht2IrQ" source="_H1d0AF0sEemRYLyXht2IrQ" target="_Aq3OgF0sEemRYLyXht2IrQ">
1510 <children xmi:type="notation:Node" xmi:id="_Mr9o4F0sEemRYLyXht2IrQ" type="6001">
1511 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mr9o4V0sEemRYLyXht2IrQ" y="-10"/>
1512 </children>
1513 <children xmi:type="notation:Node" xmi:id="_Mr9o4l0sEemRYLyXht2IrQ" type="6002">
1514 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mr9o410sEemRYLyXht2IrQ" y="10"/>
1515 </children>
1516 <children xmi:type="notation:Node" xmi:id="_Mr9o5F0sEemRYLyXht2IrQ" type="6003">
1517 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mr9o5V0sEemRYLyXht2IrQ" y="10"/>
1518 </children>
1519 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Mr9B0V0sEemRYLyXht2IrQ" routing="Tree"/>
1520 <styles xmi:type="notation:FontStyle" xmi:id="_Mr9B0l0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1521 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Mr9B010sEemRYLyXht2IrQ" points="[0, 0, -91, 111]$[91, -111, 0, 0]"/>
1522 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mr9o5l0sEemRYLyXht2IrQ" id="(0.4406779661016949,0.0)"/>
1523 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mr9o510sEemRYLyXht2IrQ" id="(0.5,0.5)"/>
1524 </edges>
1525 <edges xmi:type="notation:Edge" xmi:id="_M-rwkF0sEemRYLyXht2IrQ" type="4001" element="_M-gxcF0sEemRYLyXht2IrQ" source="_I4glYF0sEemRYLyXht2IrQ" target="_Aq3OgF0sEemRYLyXht2IrQ">
1526 <children xmi:type="notation:Node" xmi:id="_M-rwlF0sEemRYLyXht2IrQ" type="6001">
1527 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M-rwlV0sEemRYLyXht2IrQ" y="-10"/>
1528 </children>
1529 <children xmi:type="notation:Node" xmi:id="_M-rwll0sEemRYLyXht2IrQ" type="6002">
1530 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M-rwl10sEemRYLyXht2IrQ" y="10"/>
1531 </children>
1532 <children xmi:type="notation:Node" xmi:id="_M-rwmF0sEemRYLyXht2IrQ" type="6003">
1533 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M-rwmV0sEemRYLyXht2IrQ" y="10"/>
1534 </children>
1535 <styles xmi:type="notation:ConnectorStyle" xmi:id="_M-rwkV0sEemRYLyXht2IrQ" routing="Tree"/>
1536 <styles xmi:type="notation:FontStyle" xmi:id="_M-rwkl0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1537 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M-rwk10sEemRYLyXht2IrQ" points="[0, 0, -20, 52]$[20, -52, 0, 0]"/>
1538 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-sXoF0sEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/>
1539 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M-sXoV0sEemRYLyXht2IrQ" id="(0.5,0.5)"/>
1540 </edges>
1541 <edges xmi:type="notation:Edge" xmi:id="_NTXAEF0sEemRYLyXht2IrQ" type="4001" element="_NTGhZl0sEemRYLyXht2IrQ" source="_K1IDEF0sEemRYLyXht2IrQ" target="_Aq3OgF0sEemRYLyXht2IrQ">
1542 <children xmi:type="notation:Node" xmi:id="_NTXAFF0sEemRYLyXht2IrQ" type="6001">
1543 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NTXAFV0sEemRYLyXht2IrQ" y="-10"/>
1544 </children>
1545 <children xmi:type="notation:Node" xmi:id="_NTXAFl0sEemRYLyXht2IrQ" type="6002">
1546 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NTXAF10sEemRYLyXht2IrQ" y="10"/>
1547 </children>
1548 <children xmi:type="notation:Node" xmi:id="_NTXnIF0sEemRYLyXht2IrQ" type="6003">
1549 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NTXnIV0sEemRYLyXht2IrQ" y="10"/>
1550 </children>
1551 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NTXAEV0sEemRYLyXht2IrQ" routing="Tree"/>
1552 <styles xmi:type="notation:FontStyle" xmi:id="_NTXAEl0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1553 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NTXAE10sEemRYLyXht2IrQ" points="[0, 0, 143, 52]$[-143, -52, 0, 0]"/>
1554 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NTXnIl0sEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/>
1555 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NTXnI10sEemRYLyXht2IrQ" id="(0.5,0.5)"/>
1556 </edges>
1557 <edges xmi:type="notation:Edge" xmi:id="_Npck0F0sEemRYLyXht2IrQ" type="4001" element="_NpQ-pl0sEemRYLyXht2IrQ" source="__OldwF0rEemRYLyXht2IrQ" target="_3UIIoF0rEemRYLyXht2IrQ">
1558 <children xmi:type="notation:Node" xmi:id="_NpdL4F0sEemRYLyXht2IrQ" type="6001">
1559 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL4V0sEemRYLyXht2IrQ" y="-10"/>
1560 </children>
1561 <children xmi:type="notation:Node" xmi:id="_NpdL4l0sEemRYLyXht2IrQ" type="6002">
1562 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL410sEemRYLyXht2IrQ" y="10"/>
1563 </children>
1564 <children xmi:type="notation:Node" xmi:id="_NpdL5F0sEemRYLyXht2IrQ" type="6003">
1565 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL5V0sEemRYLyXht2IrQ" y="10"/>
1566 </children>
1567 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Npck0V0sEemRYLyXht2IrQ" routing="Tree"/>
1568 <styles xmi:type="notation:FontStyle" xmi:id="_Npck0l0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1569 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Npck010sEemRYLyXht2IrQ" points="[0, 0, -103, 45]$[103, -45, 0, 0]"/>
1570 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpdL5l0sEemRYLyXht2IrQ" id="(0.5031847133757962,0.0)"/>
1571 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpdL510sEemRYLyXht2IrQ" id="(0.5,0.5)"/>
1572 </edges>
1573 <edges xmi:type="notation:Edge" xmi:id="_PE8ScF0sEemRYLyXht2IrQ" type="4001" element="_PEp-k10sEemRYLyXht2IrQ" source="_Aq3OgF0sEemRYLyXht2IrQ" target="_3UIIoF0rEemRYLyXht2IrQ">
1574 <children xmi:type="notation:Node" xmi:id="_PE8SdF0sEemRYLyXht2IrQ" type="6001">
1575 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE8SdV0sEemRYLyXht2IrQ" y="-10"/>
1576 </children>
1577 <children xmi:type="notation:Node" xmi:id="_PE8Sdl0sEemRYLyXht2IrQ" type="6002">
1578 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE8Sd10sEemRYLyXht2IrQ" y="10"/>
1579 </children>
1580 <children xmi:type="notation:Node" xmi:id="_PE85gF0sEemRYLyXht2IrQ" type="6003">
1581 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE85gV0sEemRYLyXht2IrQ" y="10"/>
1582 </children>
1583 <styles xmi:type="notation:ConnectorStyle" xmi:id="_PE8ScV0sEemRYLyXht2IrQ" routing="Tree"/>
1584 <styles xmi:type="notation:FontStyle" xmi:id="_PE8Scl0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1585 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PE8Sc10sEemRYLyXht2IrQ" points="[0, 0, 97, 45]$[-97, -45, 0, 0]"/>
1586 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PE85gl0sEemRYLyXht2IrQ" id="(0.5508474576271186,0.0)"/>
1587 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PE85g10sEemRYLyXht2IrQ" id="(0.5,0.5)"/>
1588 </edges>
1589 <edges xmi:type="notation:Edge" xmi:id="_4CEP4F0vEemRYLyXht2IrQ" type="4001" element="_4B9iMF0vEemRYLyXht2IrQ" source="_3UIIoF0rEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ">
1590 <children xmi:type="notation:Node" xmi:id="_4CEP5F0vEemRYLyXht2IrQ" type="6001">
1591 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CEP5V0vEemRYLyXht2IrQ" x="13" y="-18"/>
1592 </children>
1593 <children xmi:type="notation:Node" xmi:id="_4CE28F0vEemRYLyXht2IrQ" type="6002">
1594 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CE28V0vEemRYLyXht2IrQ" x="54" y="10"/>
1595 </children>
1596 <children xmi:type="notation:Node" xmi:id="_4CE28l0vEemRYLyXht2IrQ" type="6003">
1597 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CE2810vEemRYLyXht2IrQ" x="28" y="10"/>
1598 </children>
1599 <styles xmi:type="notation:ConnectorStyle" xmi:id="_4CEP4V0vEemRYLyXht2IrQ" routing="Rectilinear"/>
1600 <styles xmi:type="notation:FontStyle" xmi:id="_4CEP4l0vEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1601 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4CEP410vEemRYLyXht2IrQ" points="[0, -26, -194, -52]$[194, -26, 0, -52]"/>
1602 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4CE29F0vEemRYLyXht2IrQ" id="(1.0,0.5306122448979592)"/>
1603 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4CE29V0vEemRYLyXht2IrQ" id="(0.0,0.7959183673469388)"/>
1604 </edges>
1605 <edges xmi:type="notation:Edge" xmi:id="_ccT_YF0wEemRYLyXht2IrQ" type="4001" element="_ccF89l0wEemRYLyXht2IrQ" source="_3UIIoF0rEemRYLyXht2IrQ" target="_Ct-Y8F0wEemRYLyXht2IrQ">
1606 <children xmi:type="notation:Node" xmi:id="_ccT_ZF0wEemRYLyXht2IrQ" type="6001">
1607 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccT_ZV0wEemRYLyXht2IrQ" x="-32" y="39"/>
1608 </children>
1609 <children xmi:type="notation:Node" xmi:id="_ccUmcF0wEemRYLyXht2IrQ" type="6002">
1610 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccUmcV0wEemRYLyXht2IrQ" x="48" y="10"/>
1611 </children>
1612 <children xmi:type="notation:Node" xmi:id="_ccUmcl0wEemRYLyXht2IrQ" type="6003">
1613 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccUmc10wEemRYLyXht2IrQ" x="22" y="-8"/>
1614 </children>
1615 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ccT_YV0wEemRYLyXht2IrQ" routing="Rectilinear"/>
1616 <styles xmi:type="notation:FontStyle" xmi:id="_ccT_Yl0wEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1617 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ccT_Y10wEemRYLyXht2IrQ" points="[27, -33, -194, -143]$[182, -33, -39, -143]$[182, 110, -39, 0]$[221, 110, 0, 0]"/>
1618 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccUmdF0wEemRYLyXht2IrQ" id="(0.8411764705882353,1.0)"/>
1619 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccUmdV0wEemRYLyXht2IrQ" id="(0.0,0.6632653061224489)"/>
1620 </edges>
1621 <edges xmi:type="notation:Edge" xmi:id="_db1tQF0xEemRYLyXht2IrQ" type="4001" element="_dbuYhl0xEemRYLyXht2IrQ" source="_Ct-Y8F0wEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ">
1622 <children xmi:type="notation:Node" xmi:id="_db2UUF0xEemRYLyXht2IrQ" type="6001">
1623 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UUV0xEemRYLyXht2IrQ" x="-5" y="-44"/>
1624 </children>
1625 <children xmi:type="notation:Node" xmi:id="_db2UUl0xEemRYLyXht2IrQ" type="6002">
1626 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UU10xEemRYLyXht2IrQ" y="10"/>
1627 </children>
1628 <children xmi:type="notation:Node" xmi:id="_db2UVF0xEemRYLyXht2IrQ" type="6003">
1629 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UVV0xEemRYLyXht2IrQ" y="10"/>
1630 </children>
1631 <styles xmi:type="notation:ConnectorStyle" xmi:id="_db1tQV0xEemRYLyXht2IrQ" routing="Rectilinear"/>
1632 <styles xmi:type="notation:FontStyle" xmi:id="_db1tQl0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1633 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_db1tQ10xEemRYLyXht2IrQ" points="[14, 0, 14, 45]$[14, -45, 14, 0]"/>
1634 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_db2UVl0xEemRYLyXht2IrQ" id="(0.19387755102040816,0.0)"/>
1635 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_db2UV10xEemRYLyXht2IrQ" id="(0.19387755102040816,1.0)"/>
1636 </edges>
1637 <edges xmi:type="notation:Edge" xmi:id="_i2ZRcF0xEemRYLyXht2IrQ" type="4001" element="_i2PgeV0xEemRYLyXht2IrQ" source="_Ct-Y8F0wEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ">
1638 <children xmi:type="notation:Node" xmi:id="_i2ZRdF0xEemRYLyXht2IrQ" type="6001">
1639 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZRdV0xEemRYLyXht2IrQ" x="-5" y="46"/>
1640 </children>
1641 <children xmi:type="notation:Node" xmi:id="_i2ZRdl0xEemRYLyXht2IrQ" type="6002">
1642 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZRd10xEemRYLyXht2IrQ" y="10"/>
1643 </children>
1644 <children xmi:type="notation:Node" xmi:id="_i2ZReF0xEemRYLyXht2IrQ" type="6003">
1645 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZReV0xEemRYLyXht2IrQ" y="10"/>
1646 </children>
1647 <styles xmi:type="notation:ConnectorStyle" xmi:id="_i2ZRcV0xEemRYLyXht2IrQ" routing="Rectilinear"/>
1648 <styles xmi:type="notation:FontStyle" xmi:id="_i2ZRcl0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1649 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i2ZRc10xEemRYLyXht2IrQ" points="[0, 0, 0, 45]$[0, -45, 0, 0]"/>
1650 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i2ZRel0xEemRYLyXht2IrQ" id="(0.7193877551020408,0.0)"/>
1651 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i2ZRe10xEemRYLyXht2IrQ" id="(0.7193877551020408,1.0)"/>
1652 </edges>
1653 <edges xmi:type="notation:Edge" xmi:id="_3HAq8F0xEemRYLyXht2IrQ" type="4001" element="_3GzPll0xEemRYLyXht2IrQ" source="_Aq3OgF0sEemRYLyXht2IrQ" target="_0aeMMF0xEemRYLyXht2IrQ">
1654 <children xmi:type="notation:Node" xmi:id="_3HBSAF0xEemRYLyXht2IrQ" type="6001">
1655 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HBSAV0xEemRYLyXht2IrQ" y="-10"/>
1656 </children>
1657 <children xmi:type="notation:Node" xmi:id="_3HBSAl0xEemRYLyXht2IrQ" type="6002">
1658 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HBSA10xEemRYLyXht2IrQ" y="10"/>
1659 </children>
1660 <children xmi:type="notation:Node" xmi:id="_3HB5EF0xEemRYLyXht2IrQ" type="6003">
1661 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HB5EV0xEemRYLyXht2IrQ" y="10"/>
1662 </children>
1663 <styles xmi:type="notation:ConnectorStyle" xmi:id="_3HAq8V0xEemRYLyXht2IrQ" routing="Rectilinear"/>
1664 <styles xmi:type="notation:FontStyle" xmi:id="_3HAq8l0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1665 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3HAq810xEemRYLyXht2IrQ" points="[0, 0, 168, 0]$[-168, 0, 0, 0]"/>
1666 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3HB5El0xEemRYLyXht2IrQ" id="(0.0,0.5)"/>
1667 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3HB5E10xEemRYLyXht2IrQ" id="(1.0,0.5)"/>
1668 </edges>
1669 <edges xmi:type="notation:Edge" xmi:id="_8iOWcF0xEemRYLyXht2IrQ" type="4001" element="_8iFzll0xEemRYLyXht2IrQ" source="_45PdkF0xEemRYLyXht2IrQ" target="_0aeMMF0xEemRYLyXht2IrQ">
1670 <children xmi:type="notation:Node" xmi:id="_8iOWdF0xEemRYLyXht2IrQ" type="6001">
1671 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iOWdV0xEemRYLyXht2IrQ" y="-10"/>
1672 </children>
1673 <children xmi:type="notation:Node" xmi:id="_8iO9gF0xEemRYLyXht2IrQ" type="6002">
1674 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iO9gV0xEemRYLyXht2IrQ" y="10"/>
1675 </children>
1676 <children xmi:type="notation:Node" xmi:id="_8iO9gl0xEemRYLyXht2IrQ" type="6003">
1677 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iO9g10xEemRYLyXht2IrQ" y="10"/>
1678 </children>
1679 <styles xmi:type="notation:ConnectorStyle" xmi:id="_8iOWcV0xEemRYLyXht2IrQ" routing="Tree"/>
1680 <styles xmi:type="notation:FontStyle" xmi:id="_8iOWcl0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/>
1681 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8iOWc10xEemRYLyXht2IrQ" points="[0, 0, 0, 58]$[0, -58, 0, 0]"/>
1682 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8iO9hF0xEemRYLyXht2IrQ" id="(0.4246575342465753,0.01)"/>
1683 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8iO9hV0xEemRYLyXht2IrQ" id="(0.5,0.5)"/>
1684 </edges>
1685 <edges xmi:type="notation:Edge" xmi:id="_Kzrp4F0yEemRYLyXht2IrQ" type="4001" element="_KzljXl0yEemRYLyXht2IrQ" source="_tNH44F0qEemRYLyXht2IrQ" target="__OldwF0rEemRYLyXht2IrQ">
1686 <children xmi:type="notation:Node" xmi:id="_Kzrp5F0yEemRYLyXht2IrQ" type="6001">
1687 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp5V0yEemRYLyXht2IrQ" x="-11" y="-10"/>
1688 </children>
1689 <children xmi:type="notation:Node" xmi:id="_Kzrp5l0yEemRYLyXht2IrQ" type="6002">
1690 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp510yEemRYLyXht2IrQ" x="-3" y="10"/>
1691 </children>
1692 <children xmi:type="notation:Node" xmi:id="_Kzrp6F0yEemRYLyXht2IrQ" type="6003">
1693 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp6V0yEemRYLyXht2IrQ" x="3" y="10"/>
1694 </children>
1695 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Kzrp4V0yEemRYLyXht2IrQ" routing="Rectilinear"/>
1696 <styles xmi:type="notation:FontStyle" xmi:id="_Kzrp4l0yEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1697 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kzrp410yEemRYLyXht2IrQ" points="[0, -57, -419, -265]$[418, -57, -1, -265]$[418, 208, -1, 0]"/>
1698 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Kzrp6l0yEemRYLyXht2IrQ" id="(1.0,0.7959183673469388)"/>
1699 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Kzrp610yEemRYLyXht2IrQ" id="(0.610062893081761,0.0)"/>
1700 </edges>
1701 <edges xmi:type="notation:Edge" xmi:id="_PdUugF0yEemRYLyXht2IrQ" type="4001" element="_PdH6PF0yEemRYLyXht2IrQ" source="_tNH44F0qEemRYLyXht2IrQ" target="_Aq3OgF0sEemRYLyXht2IrQ">
1702 <children xmi:type="notation:Node" xmi:id="_PdUuhF0yEemRYLyXht2IrQ" type="6001">
1703 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdUuhV0yEemRYLyXht2IrQ" x="-30" y="104"/>
1704 </children>
1705 <children xmi:type="notation:Node" xmi:id="_PdUuhl0yEemRYLyXht2IrQ" type="6002">
1706 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdUuh10yEemRYLyXht2IrQ" y="10"/>
1707 </children>
1708 <children xmi:type="notation:Node" xmi:id="_PdVVkF0yEemRYLyXht2IrQ" type="6003">
1709 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdVVkV0yEemRYLyXht2IrQ" x="-4" y="10"/>
1710 </children>
1711 <styles xmi:type="notation:ConnectorStyle" xmi:id="_PdUugV0yEemRYLyXht2IrQ" routing="Rectilinear"/>
1712 <styles xmi:type="notation:FontStyle" xmi:id="_PdUugl0yEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1713 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PdUug10yEemRYLyXht2IrQ" points="[40, -32, -194, -220]$[221, -32, -13, -220]$[221, 188, -13, 0]"/>
1714 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVkl0yEemRYLyXht2IrQ" id="(0.7222222222222222,1.0)"/>
1715 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVk10yEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/>
1716 </edges>
1717 </data>
1718 </ownedAnnotationEntries>
1719 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tM4oUF0qEemRYLyXht2IrQ" name="ConstellationMission" tooltipText="" outgoingEdges="_KzljXl0yEemRYLyXht2IrQ _PdH6PF0yEemRYLyXht2IrQ" incomingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10">
1720 <target xmi:type="ecore:EClass" href="satellite.ecore#//ConstellationMission"/>
1721 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//ConstellationMission"/>
1722 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1723 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1724 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1725 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_4b3pQV0qEemRYLyXht2IrQ" 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">
1726 <labelFormat>italic</labelFormat>
1727 <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"/>
1728 </ownedStyle>
1729 <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']"/>
1730 </ownedDiagramElements>
1731 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vlPm0F0qEemRYLyXht2IrQ" name="InterferometryMission" tooltipText="" outgoingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10">
1732 <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/>
1733 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/>
1734 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1735 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1736 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1737 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_0ECtY10qEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1738 <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"/>
1739 </ownedStyle>
1740 <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']"/>
1741 <ownedElements xmi:type="diagram:DNodeListElement" uid="_zChmAF0qEemRYLyXht2IrQ" name="observationTime : EFloat = 2.0" tooltipText="">
1742 <target xmi:type="ecore:EAttribute" href="satellite.ecore#//InterferometryMission/observationTime"/>
1743 <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//InterferometryMission/observationTime"/>
1744 <ownedStyle xmi:type="diagram:BundledImage" uid="_1awPYV0vEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ">
1745 <labelFormat>bold</labelFormat>
1746 </ownedStyle>
1747 <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']"/>
1748 </ownedElements>
1749 </ownedDiagramElements>
1750 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_0jIdIF0qEemRYLyXht2IrQ" sourceNode="_vlPm0F0qEemRYLyXht2IrQ" targetNode="_tM4oUF0qEemRYLyXht2IrQ">
1751 <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/>
1752 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/>
1753 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0jK5YF0qEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
1754 <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"/>
1755 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_0jK5YV0qEemRYLyXht2IrQ" showIcon="false">
1756 <labelFormat>italic</labelFormat>
1757 </beginLabelStyle>
1758 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0jK5Yl0qEemRYLyXht2IrQ" showIcon="false"/>
1759 </ownedStyle>
1760 <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']"/>
1761 </ownedDiagramElements>
1762 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_3T7UUF0rEemRYLyXht2IrQ" name="CommunicatingElement" tooltipText="" outgoingEdges="_4B9iMF0vEemRYLyXht2IrQ _ccF89l0wEemRYLyXht2IrQ" incomingEdges="_NpQ-pl0sEemRYLyXht2IrQ _PEp-k10sEemRYLyXht2IrQ" width="12" height="10">
1763 <target xmi:type="ecore:EClass" href="satellite.ecore#//CommunicatingElement"/>
1764 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CommunicatingElement"/>
1765 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1766 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1767 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1768 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_9uaEcV0rEemRYLyXht2IrQ" 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">
1769 <labelFormat>italic</labelFormat>
1770 <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"/>
1771 </ownedStyle>
1772 <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']"/>
1773 </ownedDiagramElements>
1774 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__OYCYF0rEemRYLyXht2IrQ" name="GroundStationNetwork" tooltipText="" outgoingEdges="_NpQ-pl0sEemRYLyXht2IrQ" incomingEdges="_KzljXl0yEemRYLyXht2IrQ" width="12" height="10">
1775 <target xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/>
1776 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/>
1777 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1778 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1779 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1780 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__B6W510vEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1781 <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"/>
1782 </ownedStyle>
1783 <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']"/>
1784 </ownedDiagramElements>
1785 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_AqsPYF0sEemRYLyXht2IrQ" name="Spacecraft" tooltipText="" outgoingEdges="_PEp-k10sEemRYLyXht2IrQ _3GzPll0xEemRYLyXht2IrQ" incomingEdges="_MruYUF0sEemRYLyXht2IrQ _M-gxcF0sEemRYLyXht2IrQ _NTGhZl0sEemRYLyXht2IrQ _PdH6PF0yEemRYLyXht2IrQ" width="12" height="10">
1786 <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/>
1787 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/>
1788 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1789 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1790 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1791 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_B6m_I10sEemRYLyXht2IrQ" 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">
1792 <labelFormat>italic</labelFormat>
1793 <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"/>
1794 </ownedStyle>
1795 <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']"/>
1796 </ownedDiagramElements>
1797 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_H1OjcF0sEemRYLyXht2IrQ" name="CubeSat3U" tooltipText="" outgoingEdges="_MruYUF0sEemRYLyXht2IrQ" width="12" height="10">
1798 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
1799 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
1800 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1801 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1802 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1803 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_H1PKgF0sEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1804 <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"/>
1805 </ownedStyle>
1806 <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']"/>
1807 </ownedDiagramElements>
1808 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_I4Si8F0sEemRYLyXht2IrQ" name="CubeSat6U" tooltipText="" outgoingEdges="_M-gxcF0sEemRYLyXht2IrQ" width="12" height="10">
1809 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
1810 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
1811 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1812 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1813 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1814 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_I4TxEF0sEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1815 <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"/>
1816 </ownedStyle>
1817 <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']"/>
1818 </ownedDiagramElements>
1819 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_K04LcF0sEemRYLyXht2IrQ" name="SmallSat" tooltipText="" outgoingEdges="_NTGhZl0sEemRYLyXht2IrQ" width="12" height="10">
1820 <target xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
1821 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
1822 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1823 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1824 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1825 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_K04ygF0sEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1826 <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"/>
1827 </ownedStyle>
1828 <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']"/>
1829 </ownedDiagramElements>
1830 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_MruYUF0sEemRYLyXht2IrQ" sourceNode="_H1OjcF0sEemRYLyXht2IrQ" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
1831 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
1832 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/>
1833 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Mru_YF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
1834 <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"/>
1835 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_Mru_YV0sEemRYLyXht2IrQ" showIcon="false">
1836 <labelFormat>italic</labelFormat>
1837 </beginLabelStyle>
1838 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Mru_Yl0sEemRYLyXht2IrQ" showIcon="false"/>
1839 </ownedStyle>
1840 <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']"/>
1841 </ownedDiagramElements>
1842 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_M-gxcF0sEemRYLyXht2IrQ" sourceNode="_I4Si8F0sEemRYLyXht2IrQ" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
1843 <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
1844 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/>
1845 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_M-hYgF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
1846 <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"/>
1847 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_M-hYgV0sEemRYLyXht2IrQ" showIcon="false">
1848 <labelFormat>italic</labelFormat>
1849 </beginLabelStyle>
1850 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_M-hYgl0sEemRYLyXht2IrQ" showIcon="false"/>
1851 </ownedStyle>
1852 <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']"/>
1853 </ownedDiagramElements>
1854 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NTGhZl0sEemRYLyXht2IrQ" sourceNode="_K04LcF0sEemRYLyXht2IrQ" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
1855 <target xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
1856 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/>
1857 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NTIWkF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
1858 <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"/>
1859 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_NTIWkV0sEemRYLyXht2IrQ" showIcon="false">
1860 <labelFormat>italic</labelFormat>
1861 </beginLabelStyle>
1862 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NTIWkl0sEemRYLyXht2IrQ" showIcon="false"/>
1863 </ownedStyle>
1864 <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']"/>
1865 </ownedDiagramElements>
1866 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NpQ-pl0sEemRYLyXht2IrQ" sourceNode="__OYCYF0rEemRYLyXht2IrQ" targetNode="_3T7UUF0rEemRYLyXht2IrQ">
1867 <target xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/>
1868 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/>
1869 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NpRlsF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
1870 <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"/>
1871 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_NpRlsV0sEemRYLyXht2IrQ" showIcon="false">
1872 <labelFormat>italic</labelFormat>
1873 </beginLabelStyle>
1874 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NpRlsl0sEemRYLyXht2IrQ" showIcon="false"/>
1875 </ownedStyle>
1876 <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']"/>
1877 </ownedDiagramElements>
1878 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PEp-k10sEemRYLyXht2IrQ" sourceNode="_AqsPYF0sEemRYLyXht2IrQ" targetNode="_3T7UUF0rEemRYLyXht2IrQ">
1879 <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/>
1880 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/>
1881 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_PEqloF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
1882 <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"/>
1883 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_PEqloV0sEemRYLyXht2IrQ" showIcon="false">
1884 <labelFormat>italic</labelFormat>
1885 </beginLabelStyle>
1886 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_PEqlol0sEemRYLyXht2IrQ" showIcon="false"/>
1887 </ownedStyle>
1888 <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']"/>
1889 </ownedDiagramElements>
1890 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_j0eAEF0tEemRYLyXht2IrQ" name="CommSubsystem" tooltipText="" incomingEdges="_4B9iMF0vEemRYLyXht2IrQ _dbuYhl0xEemRYLyXht2IrQ _i2PgeV0xEemRYLyXht2IrQ" width="12" height="10">
1891 <target xmi:type="ecore:EClass" href="satellite.ecore#//CommSubsystem"/>
1892 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CommSubsystem"/>
1893 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1894 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1895 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1896 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_UMdpIV0wEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1897 <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"/>
1898 </ownedStyle>
1899 <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']"/>
1900 <ownedElements xmi:type="diagram:DNodeListElement" uid="_zuaCUF0vEemRYLyXht2IrQ" name="band : TransceiverBand = UHF" tooltipText="">
1901 <target xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/band"/>
1902 <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/band"/>
1903 <ownedStyle xmi:type="diagram:BundledImage" uid="_028-wl0vEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ">
1904 <labelFormat>bold</labelFormat>
1905 </ownedStyle>
1906 <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']"/>
1907 </ownedElements>
1908 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Q8yBAF0wEemRYLyXht2IrQ" name="gain : AntennaGain = LOW" tooltipText="">
1909 <target xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/gain"/>
1910 <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/gain"/>
1911 <ownedStyle xmi:type="diagram:BundledImage" uid="_UgHk4l0wEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ">
1912 <labelFormat>bold</labelFormat>
1913 </ownedStyle>
1914 <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']"/>
1915 </ownedElements>
1916 </ownedDiagramElements>
1917 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vyhbkF0vEemRYLyXht2IrQ" name="TransceiverBand" tooltipText="" width="12" height="10">
1918 <target xmi:type="ecore:EEnum" href="satellite.ecore#//TransceiverBand"/>
1919 <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//TransceiverBand"/>
1920 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1921 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1922 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1923 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_vyj30F0vEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
1924 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
1925 </ownedStyle>
1926 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
1927 <ownedElements xmi:type="diagram:DNodeListElement" uid="_x3rKMF0vEemRYLyXht2IrQ" name="UHF" tooltipText="">
1928 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/UHF"/>
1929 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/UHF"/>
1930 <ownedStyle xmi:type="diagram:BundledImage" uid="_x3rKMV0vEemRYLyXht2IrQ" labelAlignment="LEFT">
1931 <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"/>
1932 </ownedStyle>
1933 <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']"/>
1934 </ownedElements>
1935 <ownedElements xmi:type="diagram:DNodeListElement" uid="_yg2DAF0vEemRYLyXht2IrQ" name="X" tooltipText="">
1936 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/X"/>
1937 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/X"/>
1938 <ownedStyle xmi:type="diagram:BundledImage" uid="_yg2qEF0vEemRYLyXht2IrQ" labelAlignment="LEFT">
1939 <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"/>
1940 </ownedStyle>
1941 <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']"/>
1942 </ownedElements>
1943 <ownedElements xmi:type="diagram:DNodeListElement" uid="_zAInEF0vEemRYLyXht2IrQ" name="Ka" tooltipText="">
1944 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/Ka"/>
1945 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/Ka"/>
1946 <ownedStyle xmi:type="diagram:BundledImage" uid="_zAInEV0vEemRYLyXht2IrQ" labelAlignment="LEFT">
1947 <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"/>
1948 </ownedStyle>
1949 <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']"/>
1950 </ownedElements>
1951 </ownedDiagramElements>
1952 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_4B9iMF0vEemRYLyXht2IrQ" name="[1..2] commSubsystem" sourceNode="_3T7UUF0rEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ">
1953 <target xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/commSubsystem"/>
1954 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/commSubsystem"/>
1955 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_6kODk10vEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1956 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_6kODlV0vEemRYLyXht2IrQ" showIcon="false">
1957 <labelFormat>bold</labelFormat>
1958 </centerLabelStyle>
1959 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_6kODlF0vEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1960 </ownedStyle>
1961 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1962 </ownedDiagramElements>
1963 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ctw9kF0wEemRYLyXht2IrQ" name="DirectedCommunicationLink" tooltipText="" outgoingEdges="_dbuYhl0xEemRYLyXht2IrQ _i2PgeV0xEemRYLyXht2IrQ" incomingEdges="_ccF89l0wEemRYLyXht2IrQ" width="12" height="10">
1964 <target xmi:type="ecore:EClass" href="satellite.ecore#//DirectedCommunicationLink"/>
1965 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//DirectedCommunicationLink"/>
1966 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1967 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1968 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1969 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fC-qQ10xEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1970 <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"/>
1971 </ownedStyle>
1972 <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']"/>
1973 </ownedDiagramElements>
1974 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_M5OsAF0wEemRYLyXht2IrQ" name="AntennaGain" tooltipText="" width="12" height="10">
1975 <target xmi:type="ecore:EEnum" href="satellite.ecore#//AntennaGain"/>
1976 <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//AntennaGain"/>
1977 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1978 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1979 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1980 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_M5OsAV0wEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
1981 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
1982 </ownedStyle>
1983 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
1984 <ownedElements xmi:type="diagram:DNodeListElement" uid="_OBacEF0wEemRYLyXht2IrQ" name="LOW" tooltipText="">
1985 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/LOW"/>
1986 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/LOW"/>
1987 <ownedStyle xmi:type="diagram:BundledImage" uid="_OBbDIF0wEemRYLyXht2IrQ" labelAlignment="LEFT">
1988 <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"/>
1989 </ownedStyle>
1990 <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']"/>
1991 </ownedElements>
1992 <ownedElements xmi:type="diagram:DNodeListElement" uid="_OcLsgF0wEemRYLyXht2IrQ" name="MEDIUM" tooltipText="">
1993 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/MEDIUM"/>
1994 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/MEDIUM"/>
1995 <ownedStyle xmi:type="diagram:BundledImage" uid="_OcLsgV0wEemRYLyXht2IrQ" labelAlignment="LEFT">
1996 <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"/>
1997 </ownedStyle>
1998 <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']"/>
1999 </ownedElements>
2000 <ownedElements xmi:type="diagram:DNodeListElement" uid="_O9wIgF0wEemRYLyXht2IrQ" name="HIGH" tooltipText="">
2001 <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/HIGH"/>
2002 <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/HIGH"/>
2003 <ownedStyle xmi:type="diagram:BundledImage" uid="_O9wvkF0wEemRYLyXht2IrQ" labelAlignment="LEFT">
2004 <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"/>
2005 </ownedStyle>
2006 <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']"/>
2007 </ownedElements>
2008 </ownedDiagramElements>
2009 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ccF89l0wEemRYLyXht2IrQ" name="[0..1] communicationLink" sourceNode="_3T7UUF0rEemRYLyXht2IrQ" targetNode="_Ctw9kF0wEemRYLyXht2IrQ">
2010 <target xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/communicationLink"/>
2011 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/communicationLink"/>
2012 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ccHLE10wEemRYLyXht2IrQ" description="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
2013 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ccHLFV0wEemRYLyXht2IrQ" showIcon="false">
2014 <customFeatures>labelSize</customFeatures>
2015 </centerLabelStyle>
2016 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ccHLFF0wEemRYLyXht2IrQ" showIcon="false" labelColor="39,76,114">
2017 <customFeatures>labelSize</customFeatures>
2018 </endLabelStyle>
2019 </ownedStyle>
2020 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2021 </ownedDiagramElements>
2022 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dbuYhl0xEemRYLyXht2IrQ" name="[1..1] source" sourceNode="_Ctw9kF0wEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ">
2023 <target xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/source"/>
2024 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/source"/>
2025 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_fDAfY10xEemRYLyXht2IrQ" description="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan" strokeColor="0,0,0">
2026 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_fDAfZV0xEemRYLyXht2IrQ" showIcon="false">
2027 <labelFormat>bold</labelFormat>
2028 </centerLabelStyle>
2029 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_fDAfZF0xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
2030 </ownedStyle>
2031 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2032 </ownedDiagramElements>
2033 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_i2PgeV0xEemRYLyXht2IrQ" name="[1..1] target" sourceNode="_Ctw9kF0wEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ">
2034 <target xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/target"/>
2035 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/target"/>
2036 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jrg7ll0xEemRYLyXht2IrQ" description="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan" strokeColor="0,0,0">
2037 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jrg7mF0xEemRYLyXht2IrQ" showIcon="false">
2038 <labelFormat>bold</labelFormat>
2039 </centerLabelStyle>
2040 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_jrg7l10xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
2041 </ownedStyle>
2042 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2043 </ownedDiagramElements>
2044 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_0aW3cF0xEemRYLyXht2IrQ" name="Payload" tooltipText="" incomingEdges="_3GzPll0xEemRYLyXht2IrQ _8iFzll0xEemRYLyXht2IrQ" width="12" height="10">
2045 <target xmi:type="ecore:EClass" href="satellite.ecore#//Payload"/>
2046 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Payload"/>
2047 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2048 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2049 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2050 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_4n8SQl0xEemRYLyXht2IrQ" 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">
2051 <labelFormat>italic</labelFormat>
2052 <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"/>
2053 </ownedStyle>
2054 <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']"/>
2055 </ownedDiagramElements>
2056 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3GzPll0xEemRYLyXht2IrQ" name="[0..1] payload" sourceNode="_AqsPYF0sEemRYLyXht2IrQ" targetNode="_0aW3cF0xEemRYLyXht2IrQ">
2057 <target xmi:type="ecore:EReference" href="satellite.ecore#//Spacecraft/payload"/>
2058 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//Spacecraft/payload"/>
2059 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3G0dsF0xEemRYLyXht2IrQ" description="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
2060 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_3G0dsl0xEemRYLyXht2IrQ" showIcon="false">
2061 <customFeatures>labelSize</customFeatures>
2062 </centerLabelStyle>
2063 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3G0dsV0xEemRYLyXht2IrQ" showIcon="false" labelColor="39,76,114">
2064 <customFeatures>labelSize</customFeatures>
2065 </endLabelStyle>
2066 </ownedStyle>
2067 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2068 </ownedDiagramElements>
2069 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_45FskF0xEemRYLyXht2IrQ" name="InterferometryPayload" tooltipText="" outgoingEdges="_8iFzll0xEemRYLyXht2IrQ" width="12" height="10">
2070 <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/>
2071 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/>
2072 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2073 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2074 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2075 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IHvBB10yEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2076 <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"/>
2077 </ownedStyle>
2078 <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']"/>
2079 </ownedDiagramElements>
2080 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_8iFzll0xEemRYLyXht2IrQ" sourceNode="_45FskF0xEemRYLyXht2IrQ" targetNode="_0aW3cF0xEemRYLyXht2IrQ">
2081 <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/>
2082 <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/>
2083 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IH284l0yEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree">
2084 <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"/>
2085 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IH28410yEemRYLyXht2IrQ" showIcon="false">
2086 <labelFormat>italic</labelFormat>
2087 </beginLabelStyle>
2088 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IH285F0yEemRYLyXht2IrQ" showIcon="false"/>
2089 </ownedStyle>
2090 <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']"/>
2091 </ownedDiagramElements>
2092 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_KzljXl0yEemRYLyXht2IrQ" name="[1..1] groundStationNetwork" sourceNode="_tM4oUF0qEemRYLyXht2IrQ" targetNode="__OYCYF0rEemRYLyXht2IrQ">
2093 <target xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/groundStationNetwork"/>
2094 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/groundStationNetwork"/>
2095 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_MI6-gF0yEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
2096 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_MI6-gl0yEemRYLyXht2IrQ" showIcon="false">
2097 <labelFormat>bold</labelFormat>
2098 </centerLabelStyle>
2099 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_MI6-gV0yEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
2100 </ownedStyle>
2101 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2102 </ownedDiagramElements>
2103 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PdH6PF0yEemRYLyXht2IrQ" name="[2..50] spacecraft" sourceNode="_tM4oUF0qEemRYLyXht2IrQ" targetNode="_AqsPYF0sEemRYLyXht2IrQ">
2104 <target xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/spacecraft"/>
2105 <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/spacecraft"/>
2106 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_SRBlMF0yEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
2107 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_SRBlMl0yEemRYLyXht2IrQ" showIcon="false">
2108 <labelFormat>bold</labelFormat>
2109 </centerLabelStyle>
2110 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_SRBlMV0yEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
2111 </ownedStyle>
2112 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2113 </ownedDiagramElements>
2114 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
2115 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_reoWwF0qEemRYLyXht2IrQ"/>
2116 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
2117 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
2118 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
2119 <target xmi:type="ecore:EPackage" href="satellite.ecore#/"/>
2120 </diagram:DSemanticDiagram>
2121</xmi:XMI>
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
new file mode 100644
index 00000000..d439fe23
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="satellite" nsURI="http://www.example.org/satellite" nsPrefix="satellite">
4 <eClassifiers xsi:type="ecore:EClass" name="ConstellationMission" abstract="true">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1"
6 eType="#//GroundStationNetwork" containment="true"/>
7 <eStructuralFeatures xsi:type="ecore:EReference" name="spacecraft" lowerBound="2"
8 upperBound="50" eType="#//Spacecraft" containment="true"/>
9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="InterferometryMission" eSuperTypes="#//ConstellationMission">
11 <eStructuralFeatures xsi:type="ecore:EAttribute" name="observationTime" lowerBound="1"
12 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat" defaultValueLiteral="2.0"/>
13 </eClassifiers>
14 <eClassifiers xsi:type="ecore:EClass" name="CommunicatingElement" abstract="true">
15 <eStructuralFeatures xsi:type="ecore:EReference" name="commSubsystem" lowerBound="1"
16 upperBound="2" eType="#//CommSubsystem" containment="true"/>
17 <eStructuralFeatures xsi:type="ecore:EReference" name="communicationLink" eType="#//DirectedCommunicationLink"
18 containment="true"/>
19 </eClassifiers>
20 <eClassifiers xsi:type="ecore:EClass" name="GroundStationNetwork" eSuperTypes="#//CommunicatingElement"/>
21 <eClassifiers xsi:type="ecore:EClass" name="Spacecraft" abstract="true" eSuperTypes="#//CommunicatingElement">
22 <eStructuralFeatures xsi:type="ecore:EReference" name="payload" eType="#//Payload"
23 containment="true"/>
24 </eClassifiers>
25 <eClassifiers xsi:type="ecore:EClass" name="CubeSat3U" eSuperTypes="#//Spacecraft"/>
26 <eClassifiers xsi:type="ecore:EClass" name="CubeSat6U" eSuperTypes="#//Spacecraft"/>
27 <eClassifiers xsi:type="ecore:EClass" name="SmallSat" eSuperTypes="#//Spacecraft"/>
28 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem">
29 <eStructuralFeatures xsi:type="ecore:EAttribute" name="band" lowerBound="1" eType="#//TransceiverBand"/>
30 <eStructuralFeatures xsi:type="ecore:EAttribute" name="gain" lowerBound="1" eType="#//AntennaGain"/>
31 </eClassifiers>
32 <eClassifiers xsi:type="ecore:EEnum" name="TransceiverBand">
33 <eLiterals name="UHF"/>
34 <eLiterals name="X" value="1"/>
35 <eLiterals name="Ka" value="2"/>
36 </eClassifiers>
37 <eClassifiers xsi:type="ecore:EClass" name="DirectedCommunicationLink">
38 <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
39 eType="#//CommSubsystem"/>
40 <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
41 eType="#//CommSubsystem"/>
42 </eClassifiers>
43 <eClassifiers xsi:type="ecore:EEnum" name="AntennaGain">
44 <eLiterals name="LOW"/>
45 <eLiterals name="MEDIUM" value="1"/>
46 <eLiterals name="HIGH" value="2"/>
47 </eClassifiers>
48 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/>
49 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/>
50</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
new file mode 100644
index 00000000..a90d5b26
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
@@ -0,0 +1,54 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
4 modelDirectory="/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen"
5 creationIcons="false" editDirectory="/hu.bme.mit.inf.dslreasoner.domains.satellite.edit/src-gen"
6 editorDirectory="/hu.bme.mit.inf.dslreasoner.domains.satellite.editor/src-gen"
7 modelPluginID="hu.bme.mit.inf.dslreasoner.domains.satellite" modelName="Satellite"
8 rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
9 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
10 operationReflection="true" importOrganizing="true">
11 <foreignModel>satellite.ecore</foreignModel>
12 <testsDirectory xsi:nil="true"/>
13 <genPackages prefix="Satellite" basePackage="hu.bme.mit.inf.dslreasoner.domains"
14 disposableProviderFactory="true" ecorePackage="satellite.ecore#/">
15 <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//TransceiverBand">
16 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/UHF"/>
17 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/X"/>
18 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/Ka"/>
19 </genEnums>
20 <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//AntennaGain">
21 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//AntennaGain/LOW"/>
22 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//AntennaGain/MEDIUM"/>
23 <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//AntennaGain/HIGH"/>
24 </genEnums>
25 <genClasses ecoreClass="satellite.ecore#//ConstellationMission">
26 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/>
27 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/>
28 </genClasses>
29 <genClasses ecoreClass="satellite.ecore#//InterferometryMission">
30 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/>
31 </genClasses>
32 <genClasses ecoreClass="satellite.ecore#//CommunicatingElement">
33 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/>
34 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/communicationLink"/>
35 </genClasses>
36 <genClasses ecoreClass="satellite.ecore#//GroundStationNetwork"/>
37 <genClasses ecoreClass="satellite.ecore#//Spacecraft">
38 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//Spacecraft/payload"/>
39 </genClasses>
40 <genClasses ecoreClass="satellite.ecore#//CubeSat3U"/>
41 <genClasses ecoreClass="satellite.ecore#//CubeSat6U"/>
42 <genClasses ecoreClass="satellite.ecore#//SmallSat"/>
43 <genClasses ecoreClass="satellite.ecore#//CommSubsystem">
44 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/band"/>
45 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/gain"/>
46 </genClasses>
47 <genClasses ecoreClass="satellite.ecore#//DirectedCommunicationLink">
48 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/source"/>
49 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/target"/>
50 </genClasses>
51 <genClasses ecoreClass="satellite.ecore#//Payload"/>
52 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/>
53 </genPackages>
54</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
new file mode 100644
index 00000000..b7530140
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated
@@ -0,0 +1,3021 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48
49////////////////////////
50// 0.3 Required Patterns by TypeIndexer
51////////////////////////
52private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
53 find interpretation(problem,interpretation);
54 LogicProblem.types(problem,type);
55 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
57}
58
59private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
60 find interpretation(problem,interpretation);
61 LogicProblem.types(problem,type);
62 TypeDefinition.elements(type,element);
63} or {
64 find interpretation(problem,interpretation);
65 find typeInterpretation(problem,interpretation,type,typeInterpretation);
66 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
67}
68
69private pattern isPrimitive(element: PrimitiveElement) {
70 PrimitiveElement(element);
71}
72
73//////////
74// 1. Problem-Specific Base Indexers
75//////////
76// 1.1 Type Indexers
77//////////
78// 1.1.1 primitive Type Indexers
79//////////
80
81//////////
82// 1.1.2 domain-specific Type Indexers
83//////////
84/**
85 * An element must be an instance of type "ConstellationMission class".
86 */
87private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
88 Type.name(type,"ConstellationMission class");
89 find directInstanceOf(problem,interpretation,element,type);
90}
91private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
92 find interpretation(problem,interpretation);
93 PartialInterpretation.scopes(interpretation,scope);
94 Scope.targetTypeInterpretation(scope,typeInterpretation);
95 Scope.maxNewElements(scope,0);
96 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
97 Type.name(type,"ConstellationMission class");
98}
99
100/**
101 * An element may be an instance of type "ConstellationMission class".
102 */
103private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
104{
105 find interpretation(problem,interpretation);
106 PartialInterpretation.newElements(interpretation,element);
107 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
108 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);
113 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
114 neg find isPrimitive(element);
115} or {
116 find interpretation(problem,interpretation);
117 PartialInterpretation.openWorldElements(interpretation,element);
118 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
119 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);
124 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
125 neg find isPrimitive(element);
126} or
127{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
128/**
129 * An element must be an instance of type "InterferometryMission class".
130 */
131private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
132 Type.name(type,"InterferometryMission class");
133 find directInstanceOf(problem,interpretation,element,type);
134}
135private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
136 find interpretation(problem,interpretation);
137 PartialInterpretation.scopes(interpretation,scope);
138 Scope.targetTypeInterpretation(scope,typeInterpretation);
139 Scope.maxNewElements(scope,0);
140 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
141 Type.name(type,"InterferometryMission class");
142}
143
144/**
145 * An element may be an instance of type "InterferometryMission class".
146 */
147private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
148{
149 find interpretation(problem,interpretation);
150 PartialInterpretation.newElements(interpretation,element);
151 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
152 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
153 neg find mustInstanceOfPayload_class(problem,interpretation,element);
154 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
155 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
156 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
157 neg find isPrimitive(element);
158} or {
159 find interpretation(problem,interpretation);
160 PartialInterpretation.openWorldElements(interpretation,element);
161 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
162 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
163 neg find mustInstanceOfPayload_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
166 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
167 neg find isPrimitive(element);
168} or
169{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
170/**
171 * An element must be an instance of type "CommunicatingElement class".
172 */
173private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
174 Type.name(type,"CommunicatingElement class");
175 find directInstanceOf(problem,interpretation,element,type);
176}
177private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
178 find interpretation(problem,interpretation);
179 PartialInterpretation.scopes(interpretation,scope);
180 Scope.targetTypeInterpretation(scope,typeInterpretation);
181 Scope.maxNewElements(scope,0);
182 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
183 Type.name(type,"CommunicatingElement class");
184}
185
186/**
187 * An element may be an instance of type "CommunicatingElement class".
188 */
189private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
190{
191 find interpretation(problem,interpretation);
192 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);
197 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
198 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 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);
208 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
209 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
210 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
211 neg find isPrimitive(element);
212} or
213{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
214/**
215 * An element must be an instance of type "GroundStationNetwork class".
216 */
217private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
218 Type.name(type,"GroundStationNetwork class");
219 find directInstanceOf(problem,interpretation,element,type);
220}
221private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
222 find interpretation(problem,interpretation);
223 PartialInterpretation.scopes(interpretation,scope);
224 Scope.targetTypeInterpretation(scope,typeInterpretation);
225 Scope.maxNewElements(scope,0);
226 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
227 Type.name(type,"GroundStationNetwork class");
228}
229
230/**
231 * An element may be an instance of type "GroundStationNetwork class".
232 */
233private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
234{
235 find interpretation(problem,interpretation);
236 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);
241 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
242 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
243 neg find isPrimitive(element);
244} or {
245 find interpretation(problem,interpretation);
246 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);
251 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
252 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
253 neg find isPrimitive(element);
254} or
255{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
256/**
257 * An element must be an instance of type "Spacecraft class".
258 */
259private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
260 Type.name(type,"Spacecraft class");
261 find directInstanceOf(problem,interpretation,element,type);
262}
263private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
264 find interpretation(problem,interpretation);
265 PartialInterpretation.scopes(interpretation,scope);
266 Scope.targetTypeInterpretation(scope,typeInterpretation);
267 Scope.maxNewElements(scope,0);
268 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
269 Type.name(type,"Spacecraft class");
270}
271
272/**
273 * An element may be an instance of type "Spacecraft class".
274 */
275private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
276{
277 find interpretation(problem,interpretation);
278 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);
285 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
286 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
287 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
288 neg find isPrimitive(element);
289} or {
290 find interpretation(problem,interpretation);
291 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);
298 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
299 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
300 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
301 neg find isPrimitive(element);
302} or
303{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
304/**
305 * An element must be an instance of type "CubeSat3U class".
306 */
307private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
308 Type.name(type,"CubeSat3U class");
309 find directInstanceOf(problem,interpretation,element,type);
310}
311private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
312 find interpretation(problem,interpretation);
313 PartialInterpretation.scopes(interpretation,scope);
314 Scope.targetTypeInterpretation(scope,typeInterpretation);
315 Scope.maxNewElements(scope,0);
316 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
317 Type.name(type,"CubeSat3U class");
318}
319
320/**
321 * An element may be an instance of type "CubeSat3U class".
322 */
323private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
324{
325 find interpretation(problem,interpretation);
326 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);
332 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
333 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
334 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
335 neg find isPrimitive(element);
336} or {
337 find interpretation(problem,interpretation);
338 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);
344 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
345 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
346 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
347 neg find isPrimitive(element);
348} or
349{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
350/**
351 * An element must be an instance of type "CubeSat6U class".
352 */
353private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
354 Type.name(type,"CubeSat6U class");
355 find directInstanceOf(problem,interpretation,element,type);
356}
357private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
358 find interpretation(problem,interpretation);
359 PartialInterpretation.scopes(interpretation,scope);
360 Scope.targetTypeInterpretation(scope,typeInterpretation);
361 Scope.maxNewElements(scope,0);
362 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
363 Type.name(type,"CubeSat6U class");
364}
365
366/**
367 * An element may be an instance of type "CubeSat6U class".
368 */
369private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
370{
371 find interpretation(problem,interpretation);
372 PartialInterpretation.newElements(interpretation,element);
373 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
374 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);
379 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
380 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
381 neg find isPrimitive(element);
382} or {
383 find interpretation(problem,interpretation);
384 PartialInterpretation.openWorldElements(interpretation,element);
385 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
386 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);
391 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
392 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
393 neg find isPrimitive(element);
394} or
395{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
396/**
397 * An element must be an instance of type "SmallSat class".
398 */
399private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
400 Type.name(type,"SmallSat class");
401 find directInstanceOf(problem,interpretation,element,type);
402}
403private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
404 find interpretation(problem,interpretation);
405 PartialInterpretation.scopes(interpretation,scope);
406 Scope.targetTypeInterpretation(scope,typeInterpretation);
407 Scope.maxNewElements(scope,0);
408 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
409 Type.name(type,"SmallSat class");
410}
411
412/**
413 * An element may be an instance of type "SmallSat class".
414 */
415private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
416{
417 find interpretation(problem,interpretation);
418 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);
424 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
425 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
426 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
427 neg find isPrimitive(element);
428} or {
429 find interpretation(problem,interpretation);
430 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);
436 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
437 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
438 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
439 neg find isPrimitive(element);
440} or
441{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
442/**
443 * An element must be an instance of type "CommSubsystem class".
444 */
445private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
446 Type.name(type,"CommSubsystem class");
447 find directInstanceOf(problem,interpretation,element,type);
448}
449private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
450 find interpretation(problem,interpretation);
451 PartialInterpretation.scopes(interpretation,scope);
452 Scope.targetTypeInterpretation(scope,typeInterpretation);
453 Scope.maxNewElements(scope,0);
454 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
455 Type.name(type,"CommSubsystem class");
456}
457
458/**
459 * An element may be an instance of type "CommSubsystem class".
460 */
461private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
462{
463 find interpretation(problem,interpretation);
464 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);
469 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
470 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
471 neg find isPrimitive(element);
472} or {
473 find interpretation(problem,interpretation);
474 PartialInterpretation.openWorldElements(interpretation,element);
475 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
476 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
477 neg find mustInstanceOfPayload_class(problem,interpretation,element);
478 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
479 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
480 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
481 neg find isPrimitive(element);
482} or
483{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
484/**
485 * An element must be an instance of type "DirectedCommunicationLink class".
486 */
487private pattern mustInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
488 Type.name(type,"DirectedCommunicationLink class");
489 find directInstanceOf(problem,interpretation,element,type);
490}
491private pattern scopeDisallowsNewDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
492 find interpretation(problem,interpretation);
493 PartialInterpretation.scopes(interpretation,scope);
494 Scope.targetTypeInterpretation(scope,typeInterpretation);
495 Scope.maxNewElements(scope,0);
496 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
497 Type.name(type,"DirectedCommunicationLink class");
498}
499
500/**
501 * An element may be an instance of type "DirectedCommunicationLink class".
502 */
503private pattern mayInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
504{
505 find interpretation(problem,interpretation);
506 PartialInterpretation.newElements(interpretation,element);
507 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
508 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
509 neg find mustInstanceOfPayload_class(problem,interpretation,element);
510 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
511 neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation);
512 neg find isPrimitive(element);
513} or {
514 find interpretation(problem,interpretation);
515 PartialInterpretation.openWorldElements(interpretation,element);
516 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
517 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
518 neg find mustInstanceOfPayload_class(problem,interpretation,element);
519 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
520 neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation);
521 neg find isPrimitive(element);
522} or
523{ find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); }
524/**
525 * An element must be an instance of type "Payload class".
526 */
527private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
528 Type.name(type,"Payload class");
529 find directInstanceOf(problem,interpretation,element,type);
530}
531private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
532 find interpretation(problem,interpretation);
533 PartialInterpretation.scopes(interpretation,scope);
534 Scope.targetTypeInterpretation(scope,typeInterpretation);
535 Scope.maxNewElements(scope,0);
536 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
537 Type.name(type,"Payload class");
538}
539
540/**
541 * An element may be an instance of type "Payload class".
542 */
543private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
544{
545 find interpretation(problem,interpretation);
546 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);
551 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
552 neg find scopeDisallowsNewPayload_class(problem, interpretation);
553 neg find isPrimitive(element);
554} or {
555 find interpretation(problem,interpretation);
556 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);
561 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
562 neg find scopeDisallowsNewPayload_class(problem, interpretation);
563 neg find isPrimitive(element);
564} or
565{ find mustInstanceOfPayload_class(problem,interpretation,element); }
566/**
567 * An element must be an instance of type "InterferometryPayload class".
568 */
569private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
570 Type.name(type,"InterferometryPayload class");
571 find directInstanceOf(problem,interpretation,element,type);
572}
573private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
574 find interpretation(problem,interpretation);
575 PartialInterpretation.scopes(interpretation,scope);
576 Scope.targetTypeInterpretation(scope,typeInterpretation);
577 Scope.maxNewElements(scope,0);
578 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
579 Type.name(type,"InterferometryPayload class");
580}
581
582/**
583 * An element may be an instance of type "InterferometryPayload class".
584 */
585private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
586{
587 find interpretation(problem,interpretation);
588 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);
592 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
593 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
594 neg find isPrimitive(element);
595} or {
596 find interpretation(problem,interpretation);
597 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);
601 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
602 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
603 neg find isPrimitive(element);
604} or
605{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
606/**
607 * An element must be an instance of type "TransceiverBand enum".
608 */
609private pattern mustInstanceOfTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
610 Type.name(type,"TransceiverBand enum");
611 find directInstanceOf(problem,interpretation,element,type);
612}
613private pattern scopeDisallowsNewTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
614 find interpretation(problem,interpretation);
615 PartialInterpretation.scopes(interpretation,scope);
616 Scope.targetTypeInterpretation(scope,typeInterpretation);
617 Scope.maxNewElements(scope,0);
618 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
619 Type.name(type,"TransceiverBand enum");
620}
621
622/**
623 * An element may be an instance of type "TransceiverBand enum".
624 */
625private pattern mayInstanceOfTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
626{ find mustInstanceOfTransceiverBand_enum(problem,interpretation,element); }
627/**
628 * An element must be an instance of type "AntennaGain enum".
629 */
630private pattern mustInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
631 Type.name(type,"AntennaGain enum");
632 find directInstanceOf(problem,interpretation,element,type);
633}
634private pattern scopeDisallowsNewAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
635 find interpretation(problem,interpretation);
636 PartialInterpretation.scopes(interpretation,scope);
637 Scope.targetTypeInterpretation(scope,typeInterpretation);
638 Scope.maxNewElements(scope,0);
639 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
640 Type.name(type,"AntennaGain enum");
641}
642
643/**
644 * An element may be an instance of type "AntennaGain enum".
645 */
646private pattern mayInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
647{ find mustInstanceOfAntennaGain_enum(problem,interpretation,element); }
648/**
649 * An element must be an instance of type "ConstellationMission class DefinedPart".
650 */
651private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
652 Type.name(type,"ConstellationMission class DefinedPart");
653 find directInstanceOf(problem,interpretation,element,type);
654}
655private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
656 find interpretation(problem,interpretation);
657 PartialInterpretation.scopes(interpretation,scope);
658 Scope.targetTypeInterpretation(scope,typeInterpretation);
659 Scope.maxNewElements(scope,0);
660 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
661 Type.name(type,"ConstellationMission class DefinedPart");
662}
663
664/**
665 * An element may be an instance of type "ConstellationMission class DefinedPart".
666 */
667private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
668{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
669/**
670 * An element must be an instance of type "ConstellationMission class UndefinedPart".
671 */
672private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
673 Type.name(type,"ConstellationMission class UndefinedPart");
674 find directInstanceOf(problem,interpretation,element,type);
675}
676private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
677 find interpretation(problem,interpretation);
678 PartialInterpretation.scopes(interpretation,scope);
679 Scope.targetTypeInterpretation(scope,typeInterpretation);
680 Scope.maxNewElements(scope,0);
681 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
682 Type.name(type,"ConstellationMission class UndefinedPart");
683}
684
685/**
686 * An element may be an instance of type "ConstellationMission class UndefinedPart".
687 */
688private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
689{
690 find interpretation(problem,interpretation);
691 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);
696 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
697 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
698 neg find isPrimitive(element);
699} or {
700 find interpretation(problem,interpretation);
701 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);
706 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
707 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
708 neg find isPrimitive(element);
709} or
710{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
711/**
712 * An element must be an instance of type "InterferometryMission class DefinedPart".
713 */
714private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
715 Type.name(type,"InterferometryMission class DefinedPart");
716 find directInstanceOf(problem,interpretation,element,type);
717}
718private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
719 find interpretation(problem,interpretation);
720 PartialInterpretation.scopes(interpretation,scope);
721 Scope.targetTypeInterpretation(scope,typeInterpretation);
722 Scope.maxNewElements(scope,0);
723 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
724 Type.name(type,"InterferometryMission class DefinedPart");
725}
726
727/**
728 * An element may be an instance of type "InterferometryMission class DefinedPart".
729 */
730private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
731{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
732/**
733 * An element must be an instance of type "InterferometryMission class UndefinedPart".
734 */
735private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
736 Type.name(type,"InterferometryMission class UndefinedPart");
737 find directInstanceOf(problem,interpretation,element,type);
738}
739private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
740 find interpretation(problem,interpretation);
741 PartialInterpretation.scopes(interpretation,scope);
742 Scope.targetTypeInterpretation(scope,typeInterpretation);
743 Scope.maxNewElements(scope,0);
744 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
745 Type.name(type,"InterferometryMission class UndefinedPart");
746}
747
748/**
749 * An element may be an instance of type "InterferometryMission class UndefinedPart".
750 */
751private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
752{
753 find interpretation(problem,interpretation);
754 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);
759 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
760 neg find isPrimitive(element);
761} or {
762 find interpretation(problem,interpretation);
763 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);
768 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
769 neg find isPrimitive(element);
770} or
771{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
772/**
773 * An element must be an instance of type "CommunicatingElement class DefinedPart".
774 */
775private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
776 Type.name(type,"CommunicatingElement class DefinedPart");
777 find directInstanceOf(problem,interpretation,element,type);
778}
779private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
780 find interpretation(problem,interpretation);
781 PartialInterpretation.scopes(interpretation,scope);
782 Scope.targetTypeInterpretation(scope,typeInterpretation);
783 Scope.maxNewElements(scope,0);
784 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
785 Type.name(type,"CommunicatingElement class DefinedPart");
786}
787
788/**
789 * An element may be an instance of type "CommunicatingElement class DefinedPart".
790 */
791private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
792{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
793/**
794 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
795 */
796private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
797 Type.name(type,"CommunicatingElement class UndefinedPart");
798 find directInstanceOf(problem,interpretation,element,type);
799}
800private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
801 find interpretation(problem,interpretation);
802 PartialInterpretation.scopes(interpretation,scope);
803 Scope.targetTypeInterpretation(scope,typeInterpretation);
804 Scope.maxNewElements(scope,0);
805 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
806 Type.name(type,"CommunicatingElement class UndefinedPart");
807}
808
809/**
810 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
811 */
812private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
813{
814 find interpretation(problem,interpretation);
815 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);
819 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
820 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
821 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
822 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
823 neg find isPrimitive(element);
824} or {
825 find interpretation(problem,interpretation);
826 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);
830 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
831 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
832 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
833 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
834 neg find isPrimitive(element);
835} or
836{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
837/**
838 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
839 */
840private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
841 Type.name(type,"GroundStationNetwork class DefinedPart");
842 find directInstanceOf(problem,interpretation,element,type);
843}
844private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
845 find interpretation(problem,interpretation);
846 PartialInterpretation.scopes(interpretation,scope);
847 Scope.targetTypeInterpretation(scope,typeInterpretation);
848 Scope.maxNewElements(scope,0);
849 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
850 Type.name(type,"GroundStationNetwork class DefinedPart");
851}
852
853/**
854 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
855 */
856private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
857{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
858/**
859 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
860 */
861private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
862 Type.name(type,"GroundStationNetwork class UndefinedPart");
863 find directInstanceOf(problem,interpretation,element,type);
864}
865private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
866 find interpretation(problem,interpretation);
867 PartialInterpretation.scopes(interpretation,scope);
868 Scope.targetTypeInterpretation(scope,typeInterpretation);
869 Scope.maxNewElements(scope,0);
870 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
871 Type.name(type,"GroundStationNetwork class UndefinedPart");
872}
873
874/**
875 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
876 */
877private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
878{
879 find interpretation(problem,interpretation);
880 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);
884 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
887 neg find isPrimitive(element);
888} or {
889 find interpretation(problem,interpretation);
890 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);
894 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
897 neg find isPrimitive(element);
898} or
899{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
900/**
901 * An element must be an instance of type "CommSubsystem class DefinedPart".
902 */
903private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
904 Type.name(type,"CommSubsystem class DefinedPart");
905 find directInstanceOf(problem,interpretation,element,type);
906}
907private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
908 find interpretation(problem,interpretation);
909 PartialInterpretation.scopes(interpretation,scope);
910 Scope.targetTypeInterpretation(scope,typeInterpretation);
911 Scope.maxNewElements(scope,0);
912 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
913 Type.name(type,"CommSubsystem class DefinedPart");
914}
915
916/**
917 * An element may be an instance of type "CommSubsystem class DefinedPart".
918 */
919private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
920{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
921/**
922 * An element must be an instance of type "CommSubsystem class UndefinedPart".
923 */
924private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
925 Type.name(type,"CommSubsystem class UndefinedPart");
926 find directInstanceOf(problem,interpretation,element,type);
927}
928private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
929 find interpretation(problem,interpretation);
930 PartialInterpretation.scopes(interpretation,scope);
931 Scope.targetTypeInterpretation(scope,typeInterpretation);
932 Scope.maxNewElements(scope,0);
933 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
934 Type.name(type,"CommSubsystem class UndefinedPart");
935}
936
937/**
938 * An element may be an instance of type "CommSubsystem class UndefinedPart".
939 */
940private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
941{
942 find interpretation(problem,interpretation);
943 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);
947 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
948 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
949 neg find isPrimitive(element);
950} or {
951 find interpretation(problem,interpretation);
952 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);
956 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
957 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
958 neg find isPrimitive(element);
959} or
960{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
961
962//////////
963// 1.2 Relation Declaration Indexers
964//////////
965/**
966 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
967 */
968private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
969 problem:LogicProblem, interpretation:PartialInterpretation,
970 source: DefinedElement, target:DefinedElement)
971{
972 find interpretation(problem,interpretation);
973 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
974 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
975 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
976 BinaryElementRelationLink.param1(link,source);
977 BinaryElementRelationLink.param2(link,target);
978}
979/**
980 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
981 */
982private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
983 problem:LogicProblem, interpretation:PartialInterpretation,
984 source: DefinedElement, target:DefinedElement)
985{
986 find interpretation(problem,interpretation);
987 // The two endpoint of the link have to exist
988 find mayExist(problem, interpretation, source);
989 find mayExist(problem, interpretation, target);
990 // Type consistency
991 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
992 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
993 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
994 // the upper bound of the multiplicity should be considered.
995 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
996 check(numberOfExistingReferences < 1);
997 // The reference is containment, then a new reference cannot be create if:
998 // 1. Multiple parents
999 neg find mustContains4(problem,interpretation,_,target);
1000 // 2. Circle in the containment hierarchy
1001 neg find mustTransitiveContains(source,target);
1002} or {
1003 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1004}
1005/**
1006 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1007 */
1008private pattern mustInRelationspacecraft_reference_ConstellationMission(
1009 problem:LogicProblem, interpretation:PartialInterpretation,
1010 source: DefinedElement, target:DefinedElement)
1011{
1012 find interpretation(problem,interpretation);
1013 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1014 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1015 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1016 BinaryElementRelationLink.param1(link,source);
1017 BinaryElementRelationLink.param2(link,target);
1018}
1019/**
1020 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1021 */
1022private pattern mayInRelationspacecraft_reference_ConstellationMission(
1023 problem:LogicProblem, interpretation:PartialInterpretation,
1024 source: DefinedElement, target:DefinedElement)
1025{
1026 find interpretation(problem,interpretation);
1027 // The two endpoint of the link have to exist
1028 find mayExist(problem, interpretation, source);
1029 find mayExist(problem, interpretation, target);
1030 // Type consistency
1031 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1032 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1033 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1034 // the upper bound of the multiplicity should be considered.
1035 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1036 check(numberOfExistingReferences < 50);
1037 // The reference is containment, then a new reference cannot be create if:
1038 // 1. Multiple parents
1039 neg find mustContains4(problem,interpretation,_,target);
1040 // 2. Circle in the containment hierarchy
1041 neg find mustTransitiveContains(source,target);
1042} or {
1043 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1044}
1045/**
1046 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1047 */
1048private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1049 problem:LogicProblem, interpretation:PartialInterpretation,
1050 source: DefinedElement, target:DefinedElement)
1051{
1052 find interpretation(problem,interpretation);
1053 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1054 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1055 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1056 BinaryElementRelationLink.param1(link,source);
1057 BinaryElementRelationLink.param2(link,target);
1058}
1059/**
1060 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1061 */
1062private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1063 problem:LogicProblem, interpretation:PartialInterpretation,
1064 source: DefinedElement, target:DefinedElement)
1065{
1066 find interpretation(problem,interpretation);
1067 // The two endpoint of the link have to exist
1068 find mayExist(problem, interpretation, source);
1069 find mayExist(problem, interpretation, target);
1070 // Type consistency
1071 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1072 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1073 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1074 // the upper bound of the multiplicity should be considered.
1075 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1076 check(numberOfExistingReferences < 2);
1077 // The reference is containment, then a new reference cannot be create if:
1078 // 1. Multiple parents
1079 neg find mustContains4(problem,interpretation,_,target);
1080 // 2. Circle in the containment hierarchy
1081 neg find mustTransitiveContains(source,target);
1082} or {
1083 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1084}
1085/**
1086 * Matcher for detecting tuples t where []communicationLink reference CommunicatingElement(source,target)
1087 */
1088private pattern mustInRelationcommunicationLink_reference_CommunicatingElement(
1089 problem:LogicProblem, interpretation:PartialInterpretation,
1090 source: DefinedElement, target:DefinedElement)
1091{
1092 find interpretation(problem,interpretation);
1093 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1094 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"communicationLink reference CommunicatingElement");
1095 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1096 BinaryElementRelationLink.param1(link,source);
1097 BinaryElementRelationLink.param2(link,target);
1098}
1099/**
1100 * Matcher for detecting tuples t where <>communicationLink reference CommunicatingElement(source,target)
1101 */
1102private pattern mayInRelationcommunicationLink_reference_CommunicatingElement(
1103 problem:LogicProblem, interpretation:PartialInterpretation,
1104 source: DefinedElement, target:DefinedElement)
1105{
1106 find interpretation(problem,interpretation);
1107 // The two endpoint of the link have to exist
1108 find mayExist(problem, interpretation, source);
1109 find mayExist(problem, interpretation, target);
1110 // Type consistency
1111 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1112 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,target);
1113 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1114 // the upper bound of the multiplicity should be considered.
1115 numberOfExistingReferences == count find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,source,_);
1116 check(numberOfExistingReferences < 1);
1117 // The reference is containment, then a new reference cannot be create if:
1118 // 1. Multiple parents
1119 neg find mustContains4(problem,interpretation,_,target);
1120 // 2. Circle in the containment hierarchy
1121 neg find mustTransitiveContains(source,target);
1122} or {
1123 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,source,target);
1124}
1125/**
1126 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1127 */
1128private pattern mustInRelationpayload_reference_Spacecraft(
1129 problem:LogicProblem, interpretation:PartialInterpretation,
1130 source: DefinedElement, target:DefinedElement)
1131{
1132 find interpretation(problem,interpretation);
1133 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1134 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1135 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1136 BinaryElementRelationLink.param1(link,source);
1137 BinaryElementRelationLink.param2(link,target);
1138}
1139/**
1140 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1141 */
1142private pattern mayInRelationpayload_reference_Spacecraft(
1143 problem:LogicProblem, interpretation:PartialInterpretation,
1144 source: DefinedElement, target:DefinedElement)
1145{
1146 find interpretation(problem,interpretation);
1147 // The two endpoint of the link have to exist
1148 find mayExist(problem, interpretation, source);
1149 find mayExist(problem, interpretation, target);
1150 // Type consistency
1151 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1152 find mayInstanceOfPayload_class(problem,interpretation,target);
1153 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1154 // the upper bound of the multiplicity should be considered.
1155 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1156 check(numberOfExistingReferences < 1);
1157 // The reference is containment, then a new reference cannot be create if:
1158 // 1. Multiple parents
1159 neg find mustContains4(problem,interpretation,_,target);
1160 // 2. Circle in the containment hierarchy
1161 neg find mustTransitiveContains(source,target);
1162} or {
1163 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1164}
1165/**
1166 * Matcher for detecting tuples t where []source reference DirectedCommunicationLink(source,target)
1167 */
1168private pattern mustInRelationsource_reference_DirectedCommunicationLink(
1169 problem:LogicProblem, interpretation:PartialInterpretation,
1170 source: DefinedElement, target:DefinedElement)
1171{
1172 find interpretation(problem,interpretation);
1173 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1174 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference DirectedCommunicationLink");
1175 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1176 BinaryElementRelationLink.param1(link,source);
1177 BinaryElementRelationLink.param2(link,target);
1178}
1179/**
1180 * Matcher for detecting tuples t where <>source reference DirectedCommunicationLink(source,target)
1181 */
1182private pattern mayInRelationsource_reference_DirectedCommunicationLink(
1183 problem:LogicProblem, interpretation:PartialInterpretation,
1184 source: DefinedElement, target:DefinedElement)
1185{
1186 find interpretation(problem,interpretation);
1187 // The two endpoint of the link have to exist
1188 find mayExist(problem, interpretation, source);
1189 find mayExist(problem, interpretation, target);
1190 // Type consistency
1191 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,source);
1192 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1193 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1194 // the upper bound of the multiplicity should be considered.
1195 numberOfExistingReferences == count find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,source,_);
1196 check(numberOfExistingReferences < 1);
1197} or {
1198 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []target reference DirectedCommunicationLink(source,target)
1202 */
1203private pattern mustInRelationtarget_reference_DirectedCommunicationLink(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference DirectedCommunicationLink");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>target reference DirectedCommunicationLink(source,target)
1216 */
1217private pattern mayInRelationtarget_reference_DirectedCommunicationLink(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,source);
1227 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 1);
1232} or {
1233 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,source,target);
1234}
1235/**
1236 * Matcher for detecting tuples t where []band attribute CommSubsystem(source,target)
1237 */
1238private pattern mustInRelationband_attribute_CommSubsystem(
1239 problem:LogicProblem, interpretation:PartialInterpretation,
1240 source: DefinedElement, target:DefinedElement)
1241{
1242 find interpretation(problem,interpretation);
1243 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1244 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"band attribute CommSubsystem");
1245 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1246 BinaryElementRelationLink.param1(link,source);
1247 BinaryElementRelationLink.param2(link,target);
1248}
1249/**
1250 * Matcher for detecting tuples t where <>band attribute CommSubsystem(source,target)
1251 */
1252private pattern mayInRelationband_attribute_CommSubsystem(
1253 problem:LogicProblem, interpretation:PartialInterpretation,
1254 source: DefinedElement, target:DefinedElement)
1255{
1256 find interpretation(problem,interpretation);
1257 // The two endpoint of the link have to exist
1258 find mayExist(problem, interpretation, source);
1259 find mayExist(problem, interpretation, target);
1260 // Type consistency
1261 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1262 find mayInstanceOfTransceiverBand_enum(problem,interpretation,target);
1263 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1264 // the upper bound of the multiplicity should be considered.
1265 numberOfExistingReferences == count find mustInRelationband_attribute_CommSubsystem(problem,interpretation,source,_);
1266 check(numberOfExistingReferences < 1);
1267} or {
1268 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,source,target);
1269}
1270/**
1271 * Matcher for detecting tuples t where []gain attribute CommSubsystem(source,target)
1272 */
1273private pattern mustInRelationgain_attribute_CommSubsystem(
1274 problem:LogicProblem, interpretation:PartialInterpretation,
1275 source: DefinedElement, target:DefinedElement)
1276{
1277 find interpretation(problem,interpretation);
1278 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1279 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"gain attribute CommSubsystem");
1280 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1281 BinaryElementRelationLink.param1(link,source);
1282 BinaryElementRelationLink.param2(link,target);
1283}
1284/**
1285 * Matcher for detecting tuples t where <>gain attribute CommSubsystem(source,target)
1286 */
1287private pattern mayInRelationgain_attribute_CommSubsystem(
1288 problem:LogicProblem, interpretation:PartialInterpretation,
1289 source: DefinedElement, target:DefinedElement)
1290{
1291 find interpretation(problem,interpretation);
1292 // The two endpoint of the link have to exist
1293 find mayExist(problem, interpretation, source);
1294 find mayExist(problem, interpretation, target);
1295 // Type consistency
1296 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1297 find mayInstanceOfAntennaGain_enum(problem,interpretation,target);
1298 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1299 // the upper bound of the multiplicity should be considered.
1300 numberOfExistingReferences == count find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,source,_);
1301 check(numberOfExistingReferences < 1);
1302} or {
1303 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,source,target);
1304}
1305
1306//////////
1307// 1.3 Relation Definition Indexers
1308//////////
1309// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1310private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1311 problem:LogicProblem, interpretation:PartialInterpretation,
1312 var_Link)
1313{
1314 find interpretation(problem,interpretation);
1315 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1316 // Link is exported
1317 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1318 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1319 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0);
1320 var_virtual0 == var_Link;
1321 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1322 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1323 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1324 var_virtual1 == var_SourceComm;
1325 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement);
1326 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2);
1327 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1328 var_virtual2 == var_SourceComm;
1329 neg find mayEquivalent(problem, interpretation, var_Element, var_SourceElement);
1330}
1331private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1332 problem:LogicProblem, interpretation:PartialInterpretation,
1333 var_Link)
1334{
1335 find interpretation(problem,interpretation);
1336 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1337 // Link is exported
1338 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1339 find mayInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1340 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0);
1341 find mayEquivalent(problem, interpretation, var_virtual0, var_Link);
1342 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1343 find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1344 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1345 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceComm);
1346 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement);
1347 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2);
1348 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1349 find mayEquivalent(problem, interpretation, var_virtual2, var_SourceComm);
1350 var_Element != var_SourceElement;
1351}
1352private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1353 problem:LogicProblem, interpretation:PartialInterpretation,
1354 var_Link)
1355{
1356 find interpretation(problem,interpretation);
1357 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1358 // Link is exported
1359 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1360 find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1361 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0);
1362 var_virtual0 == var_Link;
1363 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1364 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1365 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1366 var_virtual1 == var_SourceComm;
1367 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement);
1368 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2);
1369 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1370 var_virtual2 == var_SourceComm;
1371 var_Element != var_SourceElement;
1372}
1373// 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(
1375 problem:LogicProblem, interpretation:PartialInterpretation,
1376 var_Mission)
1377{
1378 find interpretation(problem,interpretation);
1379 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1380 // Mission is exported
1381 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1382 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1383}
1384private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1385 problem:LogicProblem, interpretation:PartialInterpretation,
1386 var_Mission)
1387{
1388 find interpretation(problem,interpretation);
1389 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1390 // Mission is exported
1391 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1392 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1393}
1394private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Mission)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1400 // Mission is exported
1401 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1402 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1403}
1404// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1405private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1406 problem:LogicProblem, interpretation:PartialInterpretation,
1407 var_Mission)
1408{
1409 find interpretation(problem,interpretation);
1410 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1411 // Mission is exported
1412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1413 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1414 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1415}
1416private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1417 problem:LogicProblem, interpretation:PartialInterpretation,
1418 var_Mission)
1419{
1420 find interpretation(problem,interpretation);
1421 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1422 // Mission is exported
1423 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);
1425 var_Spacecraft1 != var_Spacecraft2;
1426}
1427private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1428 problem:LogicProblem, interpretation:PartialInterpretation,
1429 var_Mission)
1430{
1431 find interpretation(problem,interpretation);
1432 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1433 // Mission is exported
1434 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);
1436 var_Spacecraft1 != var_Spacecraft2;
1437}
1438// 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(
1440 problem:LogicProblem, interpretation:PartialInterpretation,
1441 var_Mission, var_Spacecraft)
1442{
1443 find interpretation(problem,interpretation);
1444 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1445 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1446 // Mission is exported
1447 // Spacecraft is exported
1448 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1449 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1450 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1451 var_virtual0 == var_Spacecraft;
1452 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1453 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1454 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1455 var_virtual1 == var_Payload;
1456 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1457}
1458private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1459 problem:LogicProblem, interpretation:PartialInterpretation,
1460 var_Mission, var_Spacecraft)
1461{
1462 find interpretation(problem,interpretation);
1463 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1464 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1465 // Mission is exported
1466 // Spacecraft is exported
1467 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1468 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1469 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1470 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1471 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1472 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1473 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1474 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1475 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1476}
1477private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1478 problem:LogicProblem, interpretation:PartialInterpretation,
1479 var_Mission, var_Spacecraft)
1480{
1481 find interpretation(problem,interpretation);
1482 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1483 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1484 // Mission is exported
1485 // Spacecraft is exported
1486 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1487 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1488 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1489 var_virtual0 == var_Spacecraft;
1490 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1491 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1492 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1493 var_virtual1 == var_Payload;
1494 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1495}
1496// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1497private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1498 problem:LogicProblem, interpretation:PartialInterpretation,
1499 var_Spacecraft)
1500{
1501 find interpretation(problem,interpretation);
1502 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1503 // Spacecraft is exported
1504 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1505 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1506 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1507 var_virtual0 == var_GroundStation;
1508 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1509 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1510 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1511 var_virtual1 == var_Spacecraft;
1512 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1513}
1514private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1520 // Spacecraft is exported
1521 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1522 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1523 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1524 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1525 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1526 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1527 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1528 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1529 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1530}
1531private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1532 problem:LogicProblem, interpretation:PartialInterpretation,
1533 var_Spacecraft)
1534{
1535 find interpretation(problem,interpretation);
1536 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1537 // Spacecraft is exported
1538 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1540 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1541 var_virtual0 == var_GroundStation;
1542 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1544 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1545 var_virtual1 == var_Spacecraft;
1546 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1547}
1548// 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(
1550 problem:LogicProblem, interpretation:PartialInterpretation,
1551 var_Element)
1552{
1553 find interpretation(problem,interpretation);
1554 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1555 // Element is exported
1556 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
1557}
1558private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
1559 problem:LogicProblem, interpretation:PartialInterpretation,
1560 var_Element)
1561{
1562 find interpretation(problem,interpretation);
1563 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1564 // Element is exported
1565 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
1566}
1567private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
1568 problem:LogicProblem, interpretation:PartialInterpretation,
1569 var_Element)
1570{
1571 find interpretation(problem,interpretation);
1572 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1573 // Element is exported
1574 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
1575}
1576// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
1577private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
1578 problem:LogicProblem, interpretation:PartialInterpretation,
1579 var_Source, var_Target)
1580{
1581 find interpretation(problem,interpretation);
1582 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1583 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1584 // Source is exported
1585 // Target is exported
1586 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
1587}
1588private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
1589 problem:LogicProblem, interpretation:PartialInterpretation,
1590 var_Source, var_Target)
1591{
1592 find interpretation(problem,interpretation);
1593 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1594 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1595 // Source is exported
1596 // Target is exported
1597 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
1598}
1599private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
1600 problem:LogicProblem, interpretation:PartialInterpretation,
1601 var_Source, var_Target)
1602{
1603 find interpretation(problem,interpretation);
1604 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1605 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1606 // Source is exported
1607 // Target is exported
1608 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
1609}
1610// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
1611private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
1612 problem:LogicProblem, interpretation:PartialInterpretation,
1613 var_Source, var_Target)
1614{
1615 find interpretation(problem,interpretation);
1616 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1617 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1618 // Source is exported
1619 // Target is exported
1620 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1621 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1622 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1623 var_virtual0 == var_SourceSubsystem;
1624 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1625 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1626 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1627 var_virtual1 == var_TargetSubsystem;
1628 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1629 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2);
1630 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1631 var_virtual2 == var_SourceSubsystem;
1632 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1633 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
1634 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
1635 var_virtual3 == var_TargetSubsystem;
1636}
1637private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
1638 problem:LogicProblem, interpretation:PartialInterpretation,
1639 var_Source, var_Target)
1640{
1641 find interpretation(problem,interpretation);
1642 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1643 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1644 // Source is exported
1645 // Target is exported
1646 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1647 find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1648 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1649 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1650 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1651 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1652 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1653 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1654 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1655 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2);
1656 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1657 find mayEquivalent(problem, interpretation, var_virtual2, var_SourceSubsystem);
1658 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1659 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
1660 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
1661 find mayEquivalent(problem, interpretation, var_virtual3, var_TargetSubsystem);
1662}
1663private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
1664 problem:LogicProblem, interpretation:PartialInterpretation,
1665 var_Source, var_Target)
1666{
1667 find interpretation(problem,interpretation);
1668 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1669 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1670 // Source is exported
1671 // Target is exported
1672 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1673 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1674 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1675 var_virtual0 == var_SourceSubsystem;
1676 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1677 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1678 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1679 var_virtual1 == var_TargetSubsystem;
1680 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
1681 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2);
1682 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
1683 var_virtual2 == var_SourceSubsystem;
1684 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
1685 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
1686 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
1687 var_virtual3 == var_TargetSubsystem;
1688}
1689private 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);
1691}
1692private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
1693 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
1694}
1695private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
1696 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
1697}
1698// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
1699private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
1700 problem:LogicProblem, interpretation:PartialInterpretation,
1701 var_Link)
1702{
1703 find interpretation(problem,interpretation);
1704 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1705 // Link is exported
1706 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1707 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1708 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1709 var_virtual0 == var_SourceSubsystem;
1710 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1711 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1712 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1713 var_virtual1 == var_TargetSubsystem;
1714 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1715 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1716 // type constraint is enforced by construction
1717 var_virtual2 == var_Band;
1718 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band);
1719}
1720private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
1721 problem:LogicProblem, interpretation:PartialInterpretation,
1722 var_Link)
1723{
1724 find interpretation(problem,interpretation);
1725 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1726 // Link is exported
1727 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1728 find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1729 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1730 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1731 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1732 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1733 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1734 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1735 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1736 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1737 // type constraint is enforced by construction
1738 find mayEquivalent(problem, interpretation, var_virtual2, var_Band);
1739 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band);
1740}
1741private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
1742 problem:LogicProblem, interpretation:PartialInterpretation,
1743 var_Link)
1744{
1745 find interpretation(problem,interpretation);
1746 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1747 // Link is exported
1748 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1749 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1750 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1751 var_virtual0 == var_SourceSubsystem;
1752 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1753 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1754 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1755 var_virtual1 == var_TargetSubsystem;
1756 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1757 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1758 // type constraint is enforced by construction
1759 var_virtual2 == var_Band;
1760 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band);
1761}
1762// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand
1763private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(
1764 problem:LogicProblem, interpretation:PartialInterpretation,
1765 var_Comm, var_Band)
1766{
1767 find interpretation(problem,interpretation);
1768 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1769 // type constraint is enforced by construction
1770 // Comm is exported
1771 // Band is exported
1772 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1773 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1774 // type constraint is enforced by construction
1775 var_virtual0 == var_Band;
1776}
1777private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(
1778 problem:LogicProblem, interpretation:PartialInterpretation,
1779 var_Comm, var_Band)
1780{
1781 find interpretation(problem,interpretation);
1782 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1783 // type constraint is enforced by construction
1784 // Comm is exported
1785 // Band is exported
1786 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1787 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1788 // type constraint is enforced by construction
1789 find mayEquivalent(problem, interpretation, var_virtual0, var_Band);
1790}
1791private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(
1792 problem:LogicProblem, interpretation:PartialInterpretation,
1793 var_Comm, var_Band)
1794{
1795 find interpretation(problem,interpretation);
1796 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1797 // type constraint is enforced by construction
1798 // Comm is exported
1799 // Band is exported
1800 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1801 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1802 // type constraint is enforced by construction
1803 var_virtual0 == var_Band;
1804}
1805// 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(
1807 problem:LogicProblem, interpretation:PartialInterpretation,
1808 var_Link)
1809{
1810 find interpretation(problem,interpretation);
1811 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1812 // Link is exported
1813 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1814 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1815 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1816 var_virtual0 == var_SourceSubsystem;
1817 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1818 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1819 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1820 var_virtual1 == var_TargetSubsystem;
1821 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1822 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1823 // type constraint is enforced by construction
1824 var_virtual2 == var_Gain;
1825 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain);
1826}
1827private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(
1828 problem:LogicProblem, interpretation:PartialInterpretation,
1829 var_Link)
1830{
1831 find interpretation(problem,interpretation);
1832 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1833 // Link is exported
1834 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1835 find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1836 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1837 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem);
1838 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1839 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1840 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1841 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem);
1842 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1843 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1844 // type constraint is enforced by construction
1845 find mayEquivalent(problem, interpretation, var_virtual2, var_Gain);
1846 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain);
1847}
1848private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(
1849 problem:LogicProblem, interpretation:PartialInterpretation,
1850 var_Link)
1851{
1852 find interpretation(problem,interpretation);
1853 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1854 // Link is exported
1855 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1856 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0);
1857 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1858 var_virtual0 == var_SourceSubsystem;
1859 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
1860 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
1861 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1862 var_virtual1 == var_TargetSubsystem;
1863 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
1864 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2);
1865 // type constraint is enforced by construction
1866 var_virtual2 == var_Gain;
1867 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain);
1868}
1869// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain
1870private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(
1871 problem:LogicProblem, interpretation:PartialInterpretation,
1872 var_Comm, var_Gain)
1873{
1874 find interpretation(problem,interpretation);
1875 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1876 // type constraint is enforced by construction
1877 // Comm is exported
1878 // Gain is exported
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1880 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1881 // type constraint is enforced by construction
1882 var_virtual0 == var_Gain;
1883}
1884private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(
1885 problem:LogicProblem, interpretation:PartialInterpretation,
1886 var_Comm, var_Gain)
1887{
1888 find interpretation(problem,interpretation);
1889 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1890 // type constraint is enforced by construction
1891 // Comm is exported
1892 // Gain is exported
1893 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1894 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1895 // type constraint is enforced by construction
1896 find mayEquivalent(problem, interpretation, var_virtual0, var_Gain);
1897}
1898private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(
1899 problem:LogicProblem, interpretation:PartialInterpretation,
1900 var_Comm, var_Gain)
1901{
1902 find interpretation(problem,interpretation);
1903 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1904 // type constraint is enforced by construction
1905 // Comm is exported
1906 // Gain is exported
1907 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1908 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0);
1909 // type constraint is enforced by construction
1910 var_virtual0 == var_Gain;
1911}
1912// 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(
1914 problem:LogicProblem, interpretation:PartialInterpretation,
1915 var_Comm)
1916{
1917 find interpretation(problem,interpretation);
1918 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1919 // Comm is exported
1920 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
1921 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1922 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1923 // type constraint is enforced by construction
1924 var_virtual1 == var_virtual0;
1925 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm);
1926}
1927private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(
1928 problem:LogicProblem, interpretation:PartialInterpretation,
1929 var_Comm)
1930{
1931 find interpretation(problem,interpretation);
1932 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1933 // Comm is exported
1934 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
1935 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1936 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1937 // type constraint is enforced by construction
1938 find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0);
1939 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm);
1940}
1941private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(
1942 problem:LogicProblem, interpretation:PartialInterpretation,
1943 var_Comm)
1944{
1945 find interpretation(problem,interpretation);
1946 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1947 // Comm is exported
1948 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
1949 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1950 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1951 // type constraint is enforced by construction
1952 var_virtual1 == var_virtual0;
1953 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm);
1954}
1955// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow
1956private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(
1957 problem:LogicProblem, interpretation:PartialInterpretation,
1958 var_Comm)
1959{
1960 find interpretation(problem,interpretation);
1961 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1962 // Comm is exported
1963 var_virtual0 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain);
1964 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1965 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1966 // type constraint is enforced by construction
1967 var_virtual1 == var_virtual0;
1968}
1969private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(
1970 problem:LogicProblem, interpretation:PartialInterpretation,
1971 var_Comm)
1972{
1973 find interpretation(problem,interpretation);
1974 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1975 // Comm is exported
1976 var_virtual0 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain);
1977 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1978 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1979 // type constraint is enforced by construction
1980 find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0);
1981}
1982private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(
1983 problem:LogicProblem, interpretation:PartialInterpretation,
1984 var_Comm)
1985{
1986 find interpretation(problem,interpretation);
1987 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1988 // Comm is exported
1989 var_virtual0 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain);
1990 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1991 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1992 // type constraint is enforced by construction
1993 var_virtual1 == var_virtual0;
1994}
1995// 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(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Comm)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2002 // Comm is exported
2003 var_virtual0 == const_X_TransceiverBand;DefinedElement.name(const_X_TransceiverBand,"X TransceiverBand"); //LogicProblem.elements(problem,const_X_TransceiverBand);
2004 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2005 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2006 // type constraint is enforced by construction
2007 var_virtual1 == var_virtual0;
2008 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm);
2009}
2010private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(
2011 problem:LogicProblem, interpretation:PartialInterpretation,
2012 var_Comm)
2013{
2014 find interpretation(problem,interpretation);
2015 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2016 // Comm is exported
2017 var_virtual0 == const_X_TransceiverBand;DefinedElement.name(const_X_TransceiverBand,"X TransceiverBand"); //LogicProblem.elements(problem,const_X_TransceiverBand);
2018 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2019 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2020 // type constraint is enforced by construction
2021 find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2022 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Comm)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2030 // Comm is exported
2031 var_virtual0 == const_X_TransceiverBand;DefinedElement.name(const_X_TransceiverBand,"X TransceiverBand"); //LogicProblem.elements(problem,const_X_TransceiverBand);
2032 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2033 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2034 // type constraint is enforced by construction
2035 var_virtual1 == var_virtual0;
2036 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm);
2037}
2038// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium
2039private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(
2040 problem:LogicProblem, interpretation:PartialInterpretation,
2041 var_Comm)
2042{
2043 find interpretation(problem,interpretation);
2044 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2045 // Comm is exported
2046 var_virtual0 == const_MEDIUM_AntennaGain;DefinedElement.name(const_MEDIUM_AntennaGain,"MEDIUM AntennaGain"); //LogicProblem.elements(problem,const_MEDIUM_AntennaGain);
2047 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2048 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2049 // type constraint is enforced by construction
2050 var_virtual1 == var_virtual0;
2051}
2052private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(
2053 problem:LogicProblem, interpretation:PartialInterpretation,
2054 var_Comm)
2055{
2056 find interpretation(problem,interpretation);
2057 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2058 // Comm is exported
2059 var_virtual0 == const_MEDIUM_AntennaGain;DefinedElement.name(const_MEDIUM_AntennaGain,"MEDIUM AntennaGain"); //LogicProblem.elements(problem,const_MEDIUM_AntennaGain);
2060 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2061 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2062 // type constraint is enforced by construction
2063 find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2064}
2065private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(
2066 problem:LogicProblem, interpretation:PartialInterpretation,
2067 var_Comm)
2068{
2069 find interpretation(problem,interpretation);
2070 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2071 // Comm is exported
2072 var_virtual0 == const_MEDIUM_AntennaGain;DefinedElement.name(const_MEDIUM_AntennaGain,"MEDIUM AntennaGain"); //LogicProblem.elements(problem,const_MEDIUM_AntennaGain);
2073 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2074 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2075 // type constraint is enforced by construction
2076 var_virtual1 == var_virtual0;
2077}
2078// 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(
2080 problem:LogicProblem, interpretation:PartialInterpretation,
2081 var_Comm)
2082{
2083 find interpretation(problem,interpretation);
2084 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2085 // Comm is exported
2086 var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2088 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2089 // type constraint is enforced by construction
2090 var_virtual1 == var_virtual0;
2091 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);
2093 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3);
2094 // type constraint is enforced by construction
2095 var_virtual3 == var_virtual2;
2096}
2097private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(
2098 problem:LogicProblem, interpretation:PartialInterpretation,
2099 var_Comm)
2100{
2101 find interpretation(problem,interpretation);
2102 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2103 // Comm is exported
2104 var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2106 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2107 // type constraint is enforced by construction
2108 find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2109 var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain);
2110 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2111 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3);
2112 // type constraint is enforced by construction
2113 find mayEquivalent(problem, interpretation, var_virtual3, var_virtual2);
2114}
2115private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(
2116 problem:LogicProblem, interpretation:PartialInterpretation,
2117 var_Comm)
2118{
2119 find interpretation(problem,interpretation);
2120 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2121 // Comm is exported
2122 var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2124 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2125 // type constraint is enforced by construction
2126 var_virtual1 == var_virtual0;
2127 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);
2129 find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3);
2130 // type constraint is enforced by construction
2131 var_virtual3 == var_virtual2;
2132}
2133// 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(
2135 problem:LogicProblem, interpretation:PartialInterpretation,
2136 var_Sat)
2137{
2138 find interpretation(problem,interpretation);
2139 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2140 // Sat is exported
2141 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2142 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2143 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2144 var_virtual0 == var_SourceComm;
2145 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);
2147 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
2148 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2149 var_virtual1 == var_SourceComm;
2150 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2151 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2);
2152 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2153 var_virtual2 == var_TargetComm;
2154 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2155 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
2156 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
2157 var_virtual3 == var_TargetComm;
2158 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2159}
2160private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2161 problem:LogicProblem, interpretation:PartialInterpretation,
2162 var_Sat)
2163{
2164 find interpretation(problem,interpretation);
2165 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2166 // Sat is exported
2167 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2168 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2169 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2170 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2171 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2172 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2173 find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
2174 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2175 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceComm);
2176 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2177 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2);
2178 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2179 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2180 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2181 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
2182 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
2183 find mayEquivalent(problem, interpretation, var_virtual3, var_TargetComm);
2184 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2185}
2186private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2187 problem:LogicProblem, interpretation:PartialInterpretation,
2188 var_Sat)
2189{
2190 find interpretation(problem,interpretation);
2191 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2192 // Sat is exported
2193 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2194 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2195 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2196 var_virtual0 == var_SourceComm;
2197 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);
2199 find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1);
2200 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2201 var_virtual1 == var_SourceComm;
2202 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link);
2203 find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2);
2204 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2205 var_virtual2 == var_TargetComm;
2206 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2207 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3);
2208 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3);
2209 var_virtual3 == var_TargetComm;
2210 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2211}
2212// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2213private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2214 problem:LogicProblem, interpretation:PartialInterpretation,
2215 var_Comm)
2216{
2217 find interpretation(problem,interpretation);
2218 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2219 // Comm is exported
2220 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
2221 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2222 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2223 // type constraint is enforced by construction
2224 var_virtual1 == var_virtual0;
2225}
2226private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2227 problem:LogicProblem, interpretation:PartialInterpretation,
2228 var_Comm)
2229{
2230 find interpretation(problem,interpretation);
2231 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2232 // Comm is exported
2233 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
2234 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2235 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2236 // type constraint is enforced by construction
2237 find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0);
2238}
2239private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2240 problem:LogicProblem, interpretation:PartialInterpretation,
2241 var_Comm)
2242{
2243 find interpretation(problem,interpretation);
2244 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2245 // Comm is exported
2246 var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand);
2247 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
2248 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
2249 // type constraint is enforced by construction
2250 var_virtual1 == var_virtual0;
2251}
2252// 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(
2254 problem:LogicProblem, interpretation:PartialInterpretation,
2255 var_Network)
2256{
2257 find interpretation(problem,interpretation);
2258 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2259 // Network is exported
2260 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2261}
2262private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2263 problem:LogicProblem, interpretation:PartialInterpretation,
2264 var_Network)
2265{
2266 find interpretation(problem,interpretation);
2267 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2268 // Network is exported
2269 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2270}
2271private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2272 problem:LogicProblem, interpretation:PartialInterpretation,
2273 var_Network)
2274{
2275 find interpretation(problem,interpretation);
2276 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2277 // Network is exported
2278 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2279}
2280// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2281private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2282 problem:LogicProblem, interpretation:PartialInterpretation,
2283 var_Spacecraft)
2284{
2285 find interpretation(problem,interpretation);
2286 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2287 // Spacecraft is exported
2288 var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand);
2289 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2290 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual1);
2291 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2292 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2);
2293 // type constraint is enforced by construction
2294 var_virtual2 == var_virtual0;
2295 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2296}
2297private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Spacecraft)
2300{
2301 find interpretation(problem,interpretation);
2302 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2303 // Spacecraft is exported
2304 var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand);
2305 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2306 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual1);
2307 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2308 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2);
2309 // type constraint is enforced by construction
2310 find mayEquivalent(problem, interpretation, var_virtual2, var_virtual0);
2311 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2312}
2313private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2314 problem:LogicProblem, interpretation:PartialInterpretation,
2315 var_Spacecraft)
2316{
2317 find interpretation(problem,interpretation);
2318 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2319 // Spacecraft is exported
2320 var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand);
2321 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2322 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual1);
2323 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2324 find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2);
2325 // type constraint is enforced by construction
2326 var_virtual2 == var_virtual0;
2327 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2328}
2329// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2330private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2331 problem:LogicProblem, interpretation:PartialInterpretation,
2332 var_Sat)
2333{
2334 find interpretation(problem,interpretation);
2335 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2336 // Sat is exported
2337 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2338}
2339private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2340 problem:LogicProblem, interpretation:PartialInterpretation,
2341 var_Sat)
2342{
2343 find interpretation(problem,interpretation);
2344 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2345 // Sat is exported
2346 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2347}
2348private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2349 problem:LogicProblem, interpretation:PartialInterpretation,
2350 var_Sat)
2351{
2352 find interpretation(problem,interpretation);
2353 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2354 // Sat is exported
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356}
2357
2358//////////
2359// 1.4 Containment Indexer
2360//////////
2361private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2362 find mustContains4(_,_,source,target);
2363}
2364
2365private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2366 source: DefinedElement, target: DefinedElement)
2367 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2368
2369 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2370
2371 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2372
2373 { find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,source,target); }or
2374
2375 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2376
2377private pattern mustTransitiveContains(source,target) {
2378 find mustContains2+(source,target);
2379}
2380
2381//////////
2382// 2. Invalidation Indexers
2383//////////
2384// 2.1 Invalidated by WF Queries
2385//////////
2386pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2387 var_Link)
2388{
2389 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link);
2390}
2391pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2392 var_Spacecraft)
2393{
2394 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2395}
2396pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2397 var_Element)
2398{
2399 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2400}
2401pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2402 var_Link)
2403{
2404 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_Link);
2405}
2406pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem:LogicProblem, interpretation:PartialInterpretation,
2407 var_Link)
2408{
2409 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem,interpretation,var_Link);
2410}
2411pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem:LogicProblem, interpretation:PartialInterpretation,
2412 var_Comm)
2413{
2414 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem,interpretation,var_Comm);
2415}
2416pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem:LogicProblem, interpretation:PartialInterpretation,
2417 var_Comm)
2418{
2419 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem,interpretation,var_Comm);
2420}
2421pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem:LogicProblem, interpretation:PartialInterpretation,
2422 var_Comm)
2423{
2424 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem,interpretation,var_Comm);
2425}
2426pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2427 var_Sat)
2428{
2429 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2430}
2431pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2432 var_Spacecraft)
2433{
2434 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2435}
2436
2437//////////
2438// 3. Unfinishedness Indexers
2439//////////
2440// 3.1 Unfinishedness Measured by Multiplicity
2441//////////
2442pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2443 find interpretation(problem,interpretation);
2444 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2445 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2446 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2447 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2448 check(numberOfExistingReferences < 1);
2449 missingMultiplicity == eval(1-numberOfExistingReferences);
2450}
2451pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2452 find interpretation(problem,interpretation);
2453 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2454 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2455 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2456 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2457 check(numberOfExistingReferences < 2);
2458 missingMultiplicity == eval(2-numberOfExistingReferences);
2459}
2460pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2461 find interpretation(problem,interpretation);
2462 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2463 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2464 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2465 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2466 check(numberOfExistingReferences < 1);
2467 missingMultiplicity == eval(1-numberOfExistingReferences);
2468}
2469pattern unfinishedLowerMultiplicity_source_reference_DirectedCommunicationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2470 find interpretation(problem,interpretation);
2471 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2472 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference DirectedCommunicationLink");
2473 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,object);
2474 numberOfExistingReferences == count find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,object,_);
2475 check(numberOfExistingReferences < 1);
2476 missingMultiplicity == eval(1-numberOfExistingReferences);
2477}
2478pattern unfinishedLowerMultiplicity_target_reference_DirectedCommunicationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2479 find interpretation(problem,interpretation);
2480 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2481 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference DirectedCommunicationLink");
2482 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,object);
2483 numberOfExistingReferences == count find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,object,_);
2484 check(numberOfExistingReferences < 1);
2485 missingMultiplicity == eval(1-numberOfExistingReferences);
2486}
2487pattern unfinishedLowerMultiplicity_band_attribute_CommSubsystem(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2488 find interpretation(problem,interpretation);
2489 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2490 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"band attribute CommSubsystem");
2491 find mustInstanceOfCommSubsystem_class(problem,interpretation,object);
2492 numberOfExistingReferences == count find mustInRelationband_attribute_CommSubsystem(problem,interpretation,object,_);
2493 check(numberOfExistingReferences < 1);
2494 missingMultiplicity == eval(1-numberOfExistingReferences);
2495}
2496pattern unfinishedLowerMultiplicity_gain_attribute_CommSubsystem(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2497 find interpretation(problem,interpretation);
2498 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2499 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"gain attribute CommSubsystem");
2500 find mustInstanceOfCommSubsystem_class(problem,interpretation,object);
2501 numberOfExistingReferences == count find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,object,_);
2502 check(numberOfExistingReferences < 1);
2503 missingMultiplicity == eval(1-numberOfExistingReferences);
2504}
2505
2506//////////
2507// 3.2 Unfinishedness Measured by WF Queries
2508//////////
2509pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2510 var_Link)
2511{
2512 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link);
2513}
2514pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2515 var_Spacecraft)
2516{
2517 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2518}
2519pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2520 var_Element)
2521{
2522 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2523}
2524pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2525 var_Link)
2526{
2527 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_Link);
2528}
2529pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem:LogicProblem, interpretation:PartialInterpretation,
2530 var_Link)
2531{
2532 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem,interpretation,var_Link);
2533}
2534pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem:LogicProblem, interpretation:PartialInterpretation,
2535 var_Comm)
2536{
2537 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem,interpretation,var_Comm);
2538}
2539pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem:LogicProblem, interpretation:PartialInterpretation,
2540 var_Comm)
2541{
2542 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem,interpretation,var_Comm);
2543}
2544pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem:LogicProblem, interpretation:PartialInterpretation,
2545 var_Comm)
2546{
2547 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem,interpretation,var_Comm);
2548}
2549pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2550 var_Sat)
2551{
2552 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2553}
2554pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2555 var_Spacecraft)
2556{
2557 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2558}
2559
2560//////////
2561// 4. Refinement Indexers
2562//////////
2563// 4.1 Object constructors
2564//////////
2565private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2566{
2567 find interpretation(problem,interpretation);
2568 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2569 find mustExist(problem, interpretation, root);
2570}or{
2571 find interpretation(problem,interpretation);
2572 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2573 find mustExist(problem, interpretation, root);
2574}or{
2575 find interpretation(problem,interpretation);
2576 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2577 find mustExist(problem, interpretation, root);
2578}or{
2579 find interpretation(problem,interpretation);
2580 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,root);
2581 find mustExist(problem, interpretation, root);
2582}or{
2583 find interpretation(problem,interpretation);
2584 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2585 find mustExist(problem, interpretation, root);
2586}or{
2587 find interpretation(problem,interpretation);
2588 find mustInstanceOfPayload_class(problem,interpretation,root);
2589 find mustExist(problem, interpretation, root);
2590}or{
2591 find interpretation(problem,interpretation);
2592 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2593 find mustExist(problem, interpretation, root);
2594}or{
2595 find interpretation(problem,interpretation);
2596 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2597 find mustExist(problem, interpretation, root);
2598}or{
2599 find interpretation(problem,interpretation);
2600 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2601 find mustExist(problem, interpretation, root);
2602}or{
2603 find interpretation(problem,interpretation);
2604 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2605 find mustExist(problem, interpretation, root);
2606}or{
2607 find interpretation(problem,interpretation);
2608 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2609 find mustExist(problem, interpretation, root);
2610}or{
2611 find interpretation(problem,interpretation);
2612 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2613 find mustExist(problem, interpretation, root);
2614}or{
2615 find interpretation(problem,interpretation);
2616 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2617 find mustExist(problem, interpretation, root);
2618}or{
2619 find interpretation(problem,interpretation);
2620 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2621 find mustExist(problem, interpretation, root);
2622}or{
2623 find interpretation(problem,interpretation);
2624 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2625 find mustExist(problem, interpretation, root);
2626}or{
2627 find interpretation(problem,interpretation);
2628 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2629 find mustExist(problem, interpretation, root);
2630}or{
2631 find interpretation(problem,interpretation);
2632 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2633 find mustExist(problem, interpretation, root);
2634}or{
2635 find interpretation(problem,interpretation);
2636 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2637 find mustExist(problem, interpretation, root);
2638}or{
2639 find interpretation(problem,interpretation);
2640 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2641 find mustExist(problem, interpretation, root);
2642}or{
2643 find interpretation(problem,interpretation);
2644 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2645 find mustExist(problem, interpretation, root);
2646}or{
2647 find interpretation(problem,interpretation);
2648 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2649 find mustExist(problem, interpretation, root);
2650}or{
2651 find interpretation(problem,interpretation);
2652 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2653 find mustExist(problem, interpretation, root);
2654}
2655pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2656 problem:LogicProblem, interpretation:PartialInterpretation,
2657 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2658 container:DefinedElement)
2659{
2660 find interpretation(problem,interpretation);
2661 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2662 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2663 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2664 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2665 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2666 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2667 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2668 find mustExist(problem, interpretation, container);
2669 neg find mustExist(problem, interpretation, newObject);
2670}
2671pattern createObject_CubeSat6U_class(
2672 problem:LogicProblem, interpretation:PartialInterpretation,
2673 typeInterpretation:PartialComplexTypeInterpretation)
2674{
2675 find interpretation(problem,interpretation);
2676 neg find hasElementInContainment(problem,interpretation);
2677 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2678 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2679 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2680 find mayExist(problem, interpretation, newObject);
2681 neg find mustExist(problem, interpretation, newObject);
2682}
2683pattern createObject_CommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
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,
2701 typeInterpretation:PartialComplexTypeInterpretation)
2702{
2703 find interpretation(problem,interpretation);
2704 neg find hasElementInContainment(problem,interpretation);
2705 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2706 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart");
2707 find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2708 find mayExist(problem, interpretation, newObject);
2709 neg find mustExist(problem, interpretation, newObject);
2710}
2711pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2712 problem:LogicProblem, interpretation:PartialInterpretation,
2713 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2714 container:DefinedElement)
2715{
2716 find interpretation(problem,interpretation);
2717 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2718 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2719 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2720 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2721 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2722 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2723 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2724 find mustExist(problem, interpretation, container);
2725 neg find mustExist(problem, interpretation, newObject);
2726}
2727pattern createObject_InterferometryPayload_class(
2728 problem:LogicProblem, interpretation:PartialInterpretation,
2729 typeInterpretation:PartialComplexTypeInterpretation)
2730{
2731 find interpretation(problem,interpretation);
2732 neg find hasElementInContainment(problem,interpretation);
2733 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2734 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2735 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2736 find mayExist(problem, interpretation, newObject);
2737 neg find mustExist(problem, interpretation, newObject);
2738}
2739pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2740 problem:LogicProblem, interpretation:PartialInterpretation,
2741 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2742 container:DefinedElement)
2743{
2744 find interpretation(problem,interpretation);
2745 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2746 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2747 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2748 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2749 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2750 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2751 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2752 find mustExist(problem, interpretation, container);
2753 neg find mustExist(problem, interpretation, newObject);
2754}
2755pattern createObject_SmallSat_class(
2756 problem:LogicProblem, interpretation:PartialInterpretation,
2757 typeInterpretation:PartialComplexTypeInterpretation)
2758{
2759 find interpretation(problem,interpretation);
2760 neg find hasElementInContainment(problem,interpretation);
2761 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2762 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2763 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2764 find mayExist(problem, interpretation, newObject);
2765 neg find mustExist(problem, interpretation, newObject);
2766}
2767pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2768 problem:LogicProblem, interpretation:PartialInterpretation,
2769 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2770 container:DefinedElement)
2771{
2772 find interpretation(problem,interpretation);
2773 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2774 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2775 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2776 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2777 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2778 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2779 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2780 find mustExist(problem, interpretation, container);
2781 neg find mustExist(problem, interpretation, newObject);
2782}
2783pattern createObject_CubeSat3U_class(
2784 problem:LogicProblem, interpretation:PartialInterpretation,
2785 typeInterpretation:PartialComplexTypeInterpretation)
2786{
2787 find interpretation(problem,interpretation);
2788 neg find hasElementInContainment(problem,interpretation);
2789 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2790 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2791 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2792 find mayExist(problem, interpretation, newObject);
2793 neg find mustExist(problem, interpretation, newObject);
2794}
2795pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2796 problem:LogicProblem, interpretation:PartialInterpretation,
2797 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2798 container:DefinedElement)
2799{
2800 find interpretation(problem,interpretation);
2801 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2802 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2803 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2804 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2805 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2806 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2807 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2808 find mustExist(problem, interpretation, container);
2809 neg find mustExist(problem, interpretation, newObject);
2810}
2811pattern createObject_GroundStationNetwork_class_UndefinedPart(
2812 problem:LogicProblem, interpretation:PartialInterpretation,
2813 typeInterpretation:PartialComplexTypeInterpretation)
2814{
2815 find interpretation(problem,interpretation);
2816 neg find hasElementInContainment(problem,interpretation);
2817 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2818 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2819 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2820 find mayExist(problem, interpretation, newObject);
2821 neg find mustExist(problem, interpretation, newObject);
2822}
2823pattern createObject_DirectedCommunicationLink_class_by_communicationLink_reference_CommunicatingElement(
2824 problem:LogicProblem, interpretation:PartialInterpretation,
2825 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2826 container:DefinedElement)
2827{
2828 find interpretation(problem,interpretation);
2829 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2830 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class");
2831 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2832 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"communicationLink reference CommunicatingElement");
2833 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2834 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject);
2835 find mayInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,container,newObject);
2836 find mustExist(problem, interpretation, container);
2837 neg find mustExist(problem, interpretation, newObject);
2838}
2839pattern createObject_DirectedCommunicationLink_class(
2840 problem:LogicProblem, interpretation:PartialInterpretation,
2841 typeInterpretation:PartialComplexTypeInterpretation)
2842{
2843 find interpretation(problem,interpretation);
2844 neg find hasElementInContainment(problem,interpretation);
2845 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2846 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class");
2847 find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject);
2848 find mayExist(problem, interpretation, newObject);
2849 neg find mustExist(problem, interpretation, newObject);
2850}
2851pattern createObject_InterferometryMission_class_UndefinedPart(
2852 problem:LogicProblem, interpretation:PartialInterpretation,
2853 typeInterpretation:PartialComplexTypeInterpretation)
2854{
2855 find interpretation(problem,interpretation);
2856 neg find hasElementInContainment(problem,interpretation);
2857 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2858 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2859 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2860 find mayExist(problem, interpretation, newObject);
2861 neg find mustExist(problem, interpretation, newObject);
2862}
2863
2864//////////
2865// 4.2 Type refinement
2866//////////
2867pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2868 find interpretation(problem,interpretation);
2869 PartialInterpretation.newElements(interpretation,element);
2870 find mayInstanceOfCubeSat6U_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);
2877 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2878 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2879}
2880pattern refineTypeTo_CommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2881 find interpretation(problem,interpretation);
2882 PartialInterpretation.newElements(interpretation,element);
2883 find mayInstanceOfCommSubsystem_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);
2888 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2889}
2890pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2891 find interpretation(problem,interpretation);
2892 PartialInterpretation.newElements(interpretation,element);
2893 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2894 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2895 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2896 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2897 neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899}
2900pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2901 find interpretation(problem,interpretation);
2902 PartialInterpretation.newElements(interpretation,element);
2903 find mayInstanceOfSmallSat_class(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);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2912}
2913pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2914 find interpretation(problem,interpretation);
2915 PartialInterpretation.newElements(interpretation,element);
2916 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);
2923 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2924 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2925}
2926pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2927 find interpretation(problem,interpretation);
2928 PartialInterpretation.newElements(interpretation,element);
2929 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(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);
2933 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2934 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2935 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2936}
2937pattern refineTypeTo_DirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2938 find interpretation(problem,interpretation);
2939 PartialInterpretation.newElements(interpretation,element);
2940 find mayInstanceOfDirectedCommunicationLink_class(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);
2945 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2946}
2947pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2948 find interpretation(problem,interpretation);
2949 PartialInterpretation.newElements(interpretation,element);
2950 find mayInstanceOfInterferometryMission_class_UndefinedPart(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);
2955 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2956}
2957
2958//////////
2959// 4.3 Relation refinement
2960//////////
2961pattern refineRelation_source_reference_DirectedCommunicationLink(
2962 problem:LogicProblem, interpretation:PartialInterpretation,
2963 relationIterpretation:PartialRelationInterpretation,
2964 from: DefinedElement, to: DefinedElement)
2965{
2966 find interpretation(problem,interpretation);
2967 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2968 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference DirectedCommunicationLink");
2969 find mustExist(problem, interpretation, from);
2970 find mustExist(problem, interpretation, to);
2971 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,from);
2972 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2973 find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,from,to);
2974 neg find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,from,to);
2975}
2976pattern refineRelation_target_reference_DirectedCommunicationLink(
2977 problem:LogicProblem, interpretation:PartialInterpretation,
2978 relationIterpretation:PartialRelationInterpretation,
2979 from: DefinedElement, to: DefinedElement)
2980{
2981 find interpretation(problem,interpretation);
2982 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2983 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference DirectedCommunicationLink");
2984 find mustExist(problem, interpretation, from);
2985 find mustExist(problem, interpretation, to);
2986 find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,from);
2987 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2988 find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to);
2989 neg find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to);
2990}
2991pattern refineRelation_band_attribute_CommSubsystem(
2992 problem:LogicProblem, interpretation:PartialInterpretation,
2993 relationIterpretation:PartialRelationInterpretation,
2994 from: DefinedElement, to: DefinedElement)
2995{
2996 find interpretation(problem,interpretation);
2997 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2998 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"band attribute CommSubsystem");
2999 find mustExist(problem, interpretation, from);
3000 find mustExist(problem, interpretation, to);
3001 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
3002 find mustInstanceOfTransceiverBand_enum(problem,interpretation,to);
3003 find mayInRelationband_attribute_CommSubsystem(problem,interpretation,from,to);
3004 neg find mustInRelationband_attribute_CommSubsystem(problem,interpretation,from,to);
3005}
3006pattern refineRelation_gain_attribute_CommSubsystem(
3007 problem:LogicProblem, interpretation:PartialInterpretation,
3008 relationIterpretation:PartialRelationInterpretation,
3009 from: DefinedElement, to: DefinedElement)
3010{
3011 find interpretation(problem,interpretation);
3012 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
3013 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"gain attribute CommSubsystem");
3014 find mustExist(problem, interpretation, from);
3015 find mustExist(problem, interpretation, to);
3016 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
3017 find mustInstanceOfAntennaGain_enum(problem,interpretation,to);
3018 find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,from,to);
3019 neg find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,from,to);
3020}
3021
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
new file mode 100644
index 00000000..7b46b451
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem
@@ -0,0 +1,1759 @@
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">
3 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class" subtypes="//@types.1 //@types.14 //@types.15" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class" subtypes="//@types.16 //@types.17" 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"/>
6 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class" subtypes="//@types.20 //@types.21" 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"/>
8 <types xsi:type="language_1:TypeDeclaration" name="CubeSat3U class" supertypes="//@types.4"/>
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"/>
13 <types xsi:type="language_1:TypeDeclaration" name="Payload class" subtypes="//@types.11" isAbstract="true"/>
14 <types xsi:type="language_1:TypeDeclaration" name="InterferometryPayload class" supertypes="//@types.10"/>
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="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:TypeDeclaration" name="ConstellationMission class UndefinedPart" subtypes="//@types.17" supertypes="//@types.0" isAbstract="true"/>
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="InterferometryMission class UndefinedPart" supertypes="//@types.1 //@types.15"/>
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="CommunicatingElement class UndefinedPart" subtypes="//@types.21 //@types.4" supertypes="//@types.2" isAbstract="true"/>
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="GroundStationNetwork class UndefinedPart" supertypes="//@types.3 //@types.19"/>
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="CommSubsystem class UndefinedPart" supertypes="//@types.8"/>
27 <assertions name="lowerMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.0">
28 <value xsi:type="language_1:Forall">
29 <quantifiedVariables name="src">
30 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
31 </quantifiedVariables>
32 <expression xsi:type="language_1:Exists">
33 <quantifiedVariables name="trg 1">
34 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
35 </quantifiedVariables>
36 <expression xsi:type="language_1:And">
37 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
38 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
39 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
40 </operands>
41 </expression>
42 </expression>
43 </value>
44 </assertions>
45 <assertions name="upperMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.1">
46 <value xsi:type="language_1:Forall">
47 <quantifiedVariables name="src">
48 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
49 </quantifiedVariables>
50 <quantifiedVariables name="trg 1">
51 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
52 </quantifiedVariables>
53 <quantifiedVariables name="trg 2">
54 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
55 </quantifiedVariables>
56 <expression xsi:type="language_1:Impl">
57 <leftOperand xsi:type="language_1:And">
58 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
59 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
60 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
61 </operands>
62 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
63 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
64 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
65 </operands>
66 </leftOperand>
67 <rightOperand xsi:type="language_1:Not">
68 <operand xsi:type="language_1:Distinct">
69 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
70 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
71 </operand>
72 </rightOperand>
73 </expression>
74 </value>
75 </assertions>
76 <assertions name="lowerMultiplicity spacecraft ConstellationMission" annotations="//@annotations.2">
77 <value xsi:type="language_1:Forall">
78 <quantifiedVariables name="src">
79 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
80 </quantifiedVariables>
81 <expression xsi:type="language_1:Exists">
82 <quantifiedVariables name="trg 1">
83 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
84 </quantifiedVariables>
85 <quantifiedVariables name="trg 2">
86 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
87 </quantifiedVariables>
88 <expression xsi:type="language_1:And">
89 <operands xsi:type="language_1:Distinct">
90 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.0"/>
91 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.1"/>
92 </operands>
93 <operands xsi:type="language_1:And">
94 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
95 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
96 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.0"/>
97 </operands>
98 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
99 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
100 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.1"/>
101 </operands>
102 </operands>
103 </expression>
104 </expression>
105 </value>
106 </assertions>
107 <assertions name="upperMultiplicity spacecraft ConstellationMission" annotations="//@annotations.3">
108 <value xsi:type="language_1:Forall">
109 <quantifiedVariables name="src">
110 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
111 </quantifiedVariables>
112 <quantifiedVariables name="trg 1">
113 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
114 </quantifiedVariables>
115 <quantifiedVariables name="trg 2">
116 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
117 </quantifiedVariables>
118 <quantifiedVariables name="trg 3">
119 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
120 </quantifiedVariables>
121 <quantifiedVariables name="trg 4">
122 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
123 </quantifiedVariables>
124 <quantifiedVariables name="trg 5">
125 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
126 </quantifiedVariables>
127 <quantifiedVariables name="trg 6">
128 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
129 </quantifiedVariables>
130 <quantifiedVariables name="trg 7">
131 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
132 </quantifiedVariables>
133 <quantifiedVariables name="trg 8">
134 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
135 </quantifiedVariables>
136 <quantifiedVariables name="trg 9">
137 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
138 </quantifiedVariables>
139 <quantifiedVariables name="trg 10">
140 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
141 </quantifiedVariables>
142 <quantifiedVariables name="trg 11">
143 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
144 </quantifiedVariables>
145 <quantifiedVariables name="trg 12">
146 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
147 </quantifiedVariables>
148 <quantifiedVariables name="trg 13">
149 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
150 </quantifiedVariables>
151 <quantifiedVariables name="trg 14">
152 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
153 </quantifiedVariables>
154 <quantifiedVariables name="trg 15">
155 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
156 </quantifiedVariables>
157 <quantifiedVariables name="trg 16">
158 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
159 </quantifiedVariables>
160 <quantifiedVariables name="trg 17">
161 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
162 </quantifiedVariables>
163 <quantifiedVariables name="trg 18">
164 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
165 </quantifiedVariables>
166 <quantifiedVariables name="trg 19">
167 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
168 </quantifiedVariables>
169 <quantifiedVariables name="trg 20">
170 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
171 </quantifiedVariables>
172 <quantifiedVariables name="trg 21">
173 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
174 </quantifiedVariables>
175 <quantifiedVariables name="trg 22">
176 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
177 </quantifiedVariables>
178 <quantifiedVariables name="trg 23">
179 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
180 </quantifiedVariables>
181 <quantifiedVariables name="trg 24">
182 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
183 </quantifiedVariables>
184 <quantifiedVariables name="trg 25">
185 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
186 </quantifiedVariables>
187 <quantifiedVariables name="trg 26">
188 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
189 </quantifiedVariables>
190 <quantifiedVariables name="trg 27">
191 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
192 </quantifiedVariables>
193 <quantifiedVariables name="trg 28">
194 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
195 </quantifiedVariables>
196 <quantifiedVariables name="trg 29">
197 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
198 </quantifiedVariables>
199 <quantifiedVariables name="trg 30">
200 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
201 </quantifiedVariables>
202 <quantifiedVariables name="trg 31">
203 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
204 </quantifiedVariables>
205 <quantifiedVariables name="trg 32">
206 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
207 </quantifiedVariables>
208 <quantifiedVariables name="trg 33">
209 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
210 </quantifiedVariables>
211 <quantifiedVariables name="trg 34">
212 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
213 </quantifiedVariables>
214 <quantifiedVariables name="trg 35">
215 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
216 </quantifiedVariables>
217 <quantifiedVariables name="trg 36">
218 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
219 </quantifiedVariables>
220 <quantifiedVariables name="trg 37">
221 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
222 </quantifiedVariables>
223 <quantifiedVariables name="trg 38">
224 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
225 </quantifiedVariables>
226 <quantifiedVariables name="trg 39">
227 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
228 </quantifiedVariables>
229 <quantifiedVariables name="trg 40">
230 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
231 </quantifiedVariables>
232 <quantifiedVariables name="trg 41">
233 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
234 </quantifiedVariables>
235 <quantifiedVariables name="trg 42">
236 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
237 </quantifiedVariables>
238 <quantifiedVariables name="trg 43">
239 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
240 </quantifiedVariables>
241 <quantifiedVariables name="trg 44">
242 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
243 </quantifiedVariables>
244 <quantifiedVariables name="trg 45">
245 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
246 </quantifiedVariables>
247 <quantifiedVariables name="trg 46">
248 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
249 </quantifiedVariables>
250 <quantifiedVariables name="trg 47">
251 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
252 </quantifiedVariables>
253 <quantifiedVariables name="trg 48">
254 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
255 </quantifiedVariables>
256 <quantifiedVariables name="trg 49">
257 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
258 </quantifiedVariables>
259 <quantifiedVariables name="trg 50">
260 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
261 </quantifiedVariables>
262 <quantifiedVariables name="trg 51">
263 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
264 </quantifiedVariables>
265 <expression xsi:type="language_1:Impl">
266 <leftOperand xsi:type="language_1:And">
267 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
268 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
269 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
270 </operands>
271 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
272 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
273 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
274 </operands>
275 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
276 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
277 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.3"/>
278 </operands>
279 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
280 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
281 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.4"/>
282 </operands>
283 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
284 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
285 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.5"/>
286 </operands>
287 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
288 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
289 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.6"/>
290 </operands>
291 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
292 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
293 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.7"/>
294 </operands>
295 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
296 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
297 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.8"/>
298 </operands>
299 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
300 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
301 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.9"/>
302 </operands>
303 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
304 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
305 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.10"/>
306 </operands>
307 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
308 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
309 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.11"/>
310 </operands>
311 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
312 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
313 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.12"/>
314 </operands>
315 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
316 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
317 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.13"/>
318 </operands>
319 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
320 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
321 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.14"/>
322 </operands>
323 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
324 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
325 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.15"/>
326 </operands>
327 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
328 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
329 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.16"/>
330 </operands>
331 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
332 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
333 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.17"/>
334 </operands>
335 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
336 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
337 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.18"/>
338 </operands>
339 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
340 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.19"/>
342 </operands>
343 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
344 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
345 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.20"/>
346 </operands>
347 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
348 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
349 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.21"/>
350 </operands>
351 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
352 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
353 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.22"/>
354 </operands>
355 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
356 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
357 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.23"/>
358 </operands>
359 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
360 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
361 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.24"/>
362 </operands>
363 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
364 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
365 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.25"/>
366 </operands>
367 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
368 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
369 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.26"/>
370 </operands>
371 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
372 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
373 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.27"/>
374 </operands>
375 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
376 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
377 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.28"/>
378 </operands>
379 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
380 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
381 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.29"/>
382 </operands>
383 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
384 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
385 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.30"/>
386 </operands>
387 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
388 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
389 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.31"/>
390 </operands>
391 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
392 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
393 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.32"/>
394 </operands>
395 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
396 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
397 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.33"/>
398 </operands>
399 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
400 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
401 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.34"/>
402 </operands>
403 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
404 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
405 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.35"/>
406 </operands>
407 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
408 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
409 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.36"/>
410 </operands>
411 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
412 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
413 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.37"/>
414 </operands>
415 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
416 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
417 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.38"/>
418 </operands>
419 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
420 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
421 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.39"/>
422 </operands>
423 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
424 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
425 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.40"/>
426 </operands>
427 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
428 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
429 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.41"/>
430 </operands>
431 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
432 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
433 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.42"/>
434 </operands>
435 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
436 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
437 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.43"/>
438 </operands>
439 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
440 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
441 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.44"/>
442 </operands>
443 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
444 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
445 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.45"/>
446 </operands>
447 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
448 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
449 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.46"/>
450 </operands>
451 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
452 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
453 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.47"/>
454 </operands>
455 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
456 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
457 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.48"/>
458 </operands>
459 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
460 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
461 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.49"/>
462 </operands>
463 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
464 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
465 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.50"/>
466 </operands>
467 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
468 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
469 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.51"/>
470 </operands>
471 </leftOperand>
472 <rightOperand xsi:type="language_1:Not">
473 <operand xsi:type="language_1:Distinct">
474 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
475 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
476 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.3"/>
477 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.4"/>
478 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.5"/>
479 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.6"/>
480 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.7"/>
481 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.8"/>
482 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.9"/>
483 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.10"/>
484 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.11"/>
485 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.12"/>
486 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.13"/>
487 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.14"/>
488 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.15"/>
489 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.16"/>
490 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.17"/>
491 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.18"/>
492 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.19"/>
493 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.20"/>
494 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.21"/>
495 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.22"/>
496 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.23"/>
497 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.24"/>
498 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.25"/>
499 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.26"/>
500 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.27"/>
501 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.28"/>
502 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.29"/>
503 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.30"/>
504 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.31"/>
505 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.32"/>
506 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.33"/>
507 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.34"/>
508 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.35"/>
509 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.36"/>
510 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.37"/>
511 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.38"/>
512 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.39"/>
513 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.40"/>
514 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.41"/>
515 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.42"/>
516 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.43"/>
517 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.44"/>
518 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.45"/>
519 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.46"/>
520 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.47"/>
521 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.48"/>
522 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.49"/>
523 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.50"/>
524 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.51"/>
525 </operand>
526 </rightOperand>
527 </expression>
528 </value>
529 </assertions>
530 <assertions name="lowerMultiplicity commSubsystem CommunicatingElement" annotations="//@annotations.4">
531 <value xsi:type="language_1:Forall">
532 <quantifiedVariables name="src">
533 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
534 </quantifiedVariables>
535 <expression xsi:type="language_1:Exists">
536 <quantifiedVariables name="trg 1">
537 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
538 </quantifiedVariables>
539 <expression xsi:type="language_1:And">
540 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
541 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
542 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@expression/@quantifiedVariables.0"/>
543 </operands>
544 </expression>
545 </expression>
546 </value>
547 </assertions>
548 <assertions name="upperMultiplicity commSubsystem CommunicatingElement" annotations="//@annotations.5">
549 <value xsi:type="language_1:Forall">
550 <quantifiedVariables name="src">
551 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
552 </quantifiedVariables>
553 <quantifiedVariables name="trg 1">
554 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
555 </quantifiedVariables>
556 <quantifiedVariables name="trg 2">
557 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
558 </quantifiedVariables>
559 <quantifiedVariables name="trg 3">
560 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
561 </quantifiedVariables>
562 <expression xsi:type="language_1:Impl">
563 <leftOperand xsi:type="language_1:And">
564 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
565 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
566 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
567 </operands>
568 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
569 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
570 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
571 </operands>
572 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
573 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
574 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.3"/>
575 </operands>
576 </leftOperand>
577 <rightOperand xsi:type="language_1:Not">
578 <operand xsi:type="language_1:Distinct">
579 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
580 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
581 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.3"/>
582 </operand>
583 </rightOperand>
584 </expression>
585 </value>
586 </assertions>
587 <assertions name="upperMultiplicity communicationLink CommunicatingElement" annotations="//@annotations.6">
588 <value xsi:type="language_1:Forall">
589 <quantifiedVariables name="src">
590 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
591 </quantifiedVariables>
592 <quantifiedVariables name="trg 1">
593 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
594 </quantifiedVariables>
595 <quantifiedVariables name="trg 2">
596 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
597 </quantifiedVariables>
598 <expression xsi:type="language_1:Impl">
599 <leftOperand xsi:type="language_1:And">
600 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
601 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
602 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
603 </operands>
604 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
605 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
606 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
607 </operands>
608 </leftOperand>
609 <rightOperand xsi:type="language_1:Not">
610 <operand xsi:type="language_1:Distinct">
611 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
612 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
613 </operand>
614 </rightOperand>
615 </expression>
616 </value>
617 </assertions>
618 <assertions name="upperMultiplicity payload Spacecraft" annotations="//@annotations.7">
619 <value xsi:type="language_1:Forall">
620 <quantifiedVariables name="src">
621 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
622 </quantifiedVariables>
623 <quantifiedVariables name="trg 1">
624 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
625 </quantifiedVariables>
626 <quantifiedVariables name="trg 2">
627 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
628 </quantifiedVariables>
629 <expression xsi:type="language_1:Impl">
630 <leftOperand xsi:type="language_1:And">
631 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
632 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
633 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
634 </operands>
635 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
636 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
637 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
638 </operands>
639 </leftOperand>
640 <rightOperand xsi:type="language_1:Not">
641 <operand xsi:type="language_1:Distinct">
642 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
643 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
644 </operand>
645 </rightOperand>
646 </expression>
647 </value>
648 </assertions>
649 <assertions name="lowerMultiplicity source DirectedCommunicationLink" annotations="//@annotations.8">
650 <value xsi:type="language_1:Forall">
651 <quantifiedVariables name="src">
652 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
653 </quantifiedVariables>
654 <expression xsi:type="language_1:Exists">
655 <quantifiedVariables name="trg 1">
656 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
657 </quantifiedVariables>
658 <expression xsi:type="language_1:And">
659 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
660 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
661 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@expression/@quantifiedVariables.0"/>
662 </operands>
663 </expression>
664 </expression>
665 </value>
666 </assertions>
667 <assertions name="upperMultiplicity source DirectedCommunicationLink" annotations="//@annotations.9">
668 <value xsi:type="language_1:Forall">
669 <quantifiedVariables name="src">
670 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
671 </quantifiedVariables>
672 <quantifiedVariables name="trg 1">
673 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
674 </quantifiedVariables>
675 <quantifiedVariables name="trg 2">
676 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
677 </quantifiedVariables>
678 <expression xsi:type="language_1:Impl">
679 <leftOperand xsi:type="language_1:And">
680 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
681 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
682 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/>
683 </operands>
684 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
685 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
686 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/>
687 </operands>
688 </leftOperand>
689 <rightOperand xsi:type="language_1:Not">
690 <operand xsi:type="language_1:Distinct">
691 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/>
692 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/>
693 </operand>
694 </rightOperand>
695 </expression>
696 </value>
697 </assertions>
698 <assertions name="lowerMultiplicity target DirectedCommunicationLink" annotations="//@annotations.10">
699 <value xsi:type="language_1:Forall">
700 <quantifiedVariables name="src">
701 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
702 </quantifiedVariables>
703 <expression xsi:type="language_1:Exists">
704 <quantifiedVariables name="trg 1">
705 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
706 </quantifiedVariables>
707 <expression xsi:type="language_1:And">
708 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
709 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
710 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@expression/@quantifiedVariables.0"/>
711 </operands>
712 </expression>
713 </expression>
714 </value>
715 </assertions>
716 <assertions name="upperMultiplicity target DirectedCommunicationLink" annotations="//@annotations.11">
717 <value xsi:type="language_1:Forall">
718 <quantifiedVariables name="src">
719 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
720 </quantifiedVariables>
721 <quantifiedVariables name="trg 1">
722 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
723 </quantifiedVariables>
724 <quantifiedVariables name="trg 2">
725 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
726 </quantifiedVariables>
727 <expression xsi:type="language_1:Impl">
728 <leftOperand xsi:type="language_1:And">
729 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
730 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
731 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
732 </operands>
733 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
734 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
735 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/>
736 </operands>
737 </leftOperand>
738 <rightOperand xsi:type="language_1:Not">
739 <operand xsi:type="language_1:Distinct">
740 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
741 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/>
742 </operand>
743 </rightOperand>
744 </expression>
745 </value>
746 </assertions>
747 <assertions name="lowerMultiplicity band CommSubsystem" annotations="//@annotations.12">
748 <value xsi:type="language_1:Forall">
749 <quantifiedVariables name="src">
750 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
751 </quantifiedVariables>
752 <expression xsi:type="language_1:Exists">
753 <quantifiedVariables name="trg 1">
754 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
755 </quantifiedVariables>
756 <expression xsi:type="language_1:And">
757 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
758 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
759 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@expression/@quantifiedVariables.0"/>
760 </operands>
761 </expression>
762 </expression>
763 </value>
764 </assertions>
765 <assertions name="upperMultiplicity band CommSubsystem" annotations="//@annotations.13">
766 <value xsi:type="language_1:Forall">
767 <quantifiedVariables name="src">
768 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
769 </quantifiedVariables>
770 <quantifiedVariables name="trg 1">
771 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
772 </quantifiedVariables>
773 <quantifiedVariables name="trg 2">
774 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
775 </quantifiedVariables>
776 <expression xsi:type="language_1:Impl">
777 <leftOperand xsi:type="language_1:And">
778 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
779 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
780 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
781 </operands>
782 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
783 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
784 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/>
785 </operands>
786 </leftOperand>
787 <rightOperand xsi:type="language_1:Not">
788 <operand xsi:type="language_1:Distinct">
789 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
790 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/>
791 </operand>
792 </rightOperand>
793 </expression>
794 </value>
795 </assertions>
796 <assertions name="lowerMultiplicity gain CommSubsystem" annotations="//@annotations.14">
797 <value xsi:type="language_1:Forall">
798 <quantifiedVariables name="src">
799 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
800 </quantifiedVariables>
801 <expression xsi:type="language_1:Exists">
802 <quantifiedVariables name="trg 1">
803 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
804 </quantifiedVariables>
805 <expression xsi:type="language_1:And">
806 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
807 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
808 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@expression/@quantifiedVariables.0"/>
809 </operands>
810 </expression>
811 </expression>
812 </value>
813 </assertions>
814 <assertions name="upperMultiplicity gain CommSubsystem" annotations="//@annotations.15">
815 <value xsi:type="language_1:Forall">
816 <quantifiedVariables name="src">
817 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
818 </quantifiedVariables>
819 <quantifiedVariables name="trg 1">
820 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
821 </quantifiedVariables>
822 <quantifiedVariables name="trg 2">
823 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
824 </quantifiedVariables>
825 <expression xsi:type="language_1:Impl">
826 <leftOperand xsi:type="language_1:And">
827 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
828 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
829 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
830 </operands>
831 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
832 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
833 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/>
834 </operands>
835 </leftOperand>
836 <rightOperand xsi:type="language_1:Not">
837 <operand xsi:type="language_1:Distinct">
838 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
839 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/>
840 </operand>
841 </rightOperand>
842 </expression>
843 </value>
844 </assertions>
845 <assertions name="PartialInterpretation groundStationNetwork reference ConstellationMission" annotations="//@annotations.16">
846 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
847 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/>
848 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/>
849 </value>
850 </assertions>
851 <assertions name="PartialInterpretation commSubsystem reference CommunicatingElement" annotations="//@annotations.17">
852 <value xsi:type="language_1:And">
853 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
854 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/>
855 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/>
856 </operands>
857 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
858 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/>
859 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/>
860 </operands>
861 </value>
862 </assertions>
863 <assertions name="PartialInterpretation band attribute CommSubsystem" annotations="//@annotations.18">
864 <value xsi:type="language_1:And">
865 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
866 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/>
867 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
868 </operands>
869 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
870 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/>
871 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
872 </operands>
873 </value>
874 </assertions>
875 <assertions name="PartialInterpretation gain attribute CommSubsystem" annotations="//@annotations.19">
876 <value xsi:type="language_1:And">
877 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
878 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/>
879 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/>
880 </operands>
881 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
882 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/>
883 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/>
884 </operands>
885 </value>
886 </assertions>
887 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.42">
888 <value xsi:type="language_1:Forall">
889 <quantifiedVariables name="p0">
890 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
891 </quantifiedVariables>
892 <expression xsi:type="language_1:Not">
893 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
894 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/>
895 </operand>
896 </expression>
897 </value>
898 </assertions>
899 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.43">
900 <value xsi:type="language_1:Forall">
901 <quantifiedVariables name="p0">
902 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
903 </quantifiedVariables>
904 <expression xsi:type="language_1:Not">
905 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
906 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/>
907 </operand>
908 </expression>
909 </value>
910 </assertions>
911 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.44">
912 <value xsi:type="language_1:Forall">
913 <quantifiedVariables name="p0">
914 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
915 </quantifiedVariables>
916 <expression xsi:type="language_1:Not">
917 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
918 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
919 </operand>
920 </expression>
921 </value>
922 </assertions>
923 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.45">
924 <value xsi:type="language_1:Forall">
925 <quantifiedVariables name="p0">
926 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
927 </quantifiedVariables>
928 <expression xsi:type="language_1:Not">
929 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
930 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/>
931 </operand>
932 </expression>
933 </value>
934 </assertions>
935 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.46">
936 <value xsi:type="language_1:Forall">
937 <quantifiedVariables name="p0">
938 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
939 </quantifiedVariables>
940 <expression xsi:type="language_1:Not">
941 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
942 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/>
943 </operand>
944 </expression>
945 </value>
946 </assertions>
947 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.47">
948 <value xsi:type="language_1:Forall">
949 <quantifiedVariables name="p0">
950 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
951 </quantifiedVariables>
952 <expression xsi:type="language_1:Not">
953 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
954 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/>
955 </operand>
956 </expression>
957 </value>
958 </assertions>
959 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.48">
960 <value xsi:type="language_1:Forall">
961 <quantifiedVariables name="p0">
962 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
963 </quantifiedVariables>
964 <expression xsi:type="language_1:Not">
965 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
966 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/>
967 </operand>
968 </expression>
969 </value>
970 </assertions>
971 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.49">
972 <value xsi:type="language_1:Forall">
973 <quantifiedVariables name="p0">
974 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
975 </quantifiedVariables>
976 <expression xsi:type="language_1:Not">
977 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25">
978 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/>
979 </operand>
980 </expression>
981 </value>
982 </assertions>
983 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.50">
984 <value xsi:type="language_1:Forall">
985 <quantifiedVariables name="p0">
986 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
987 </quantifiedVariables>
988 <expression xsi:type="language_1:Not">
989 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26">
990 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/>
991 </operand>
992 </expression>
993 </value>
994 </assertions>
995 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.51">
996 <value xsi:type="language_1:Forall">
997 <quantifiedVariables name="p0">
998 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
999 </quantifiedVariables>
1000 <expression xsi:type="language_1:Not">
1001 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29">
1002 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/>
1003 </operand>
1004 </expression>
1005 </value>
1006 </assertions>
1007 <relations xsi:type="language_1:RelationDeclaration" name="groundStationNetwork reference ConstellationMission">
1008 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1009 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1010 </relations>
1011 <relations xsi:type="language_1:RelationDeclaration" name="spacecraft reference ConstellationMission">
1012 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1013 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1014 </relations>
1015 <relations xsi:type="language_1:RelationDeclaration" name="commSubsystem reference CommunicatingElement">
1016 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1017 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1018 </relations>
1019 <relations xsi:type="language_1:RelationDeclaration" name="communicationLink reference CommunicatingElement">
1020 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1021 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1022 </relations>
1023 <relations xsi:type="language_1:RelationDeclaration" name="payload reference Spacecraft">
1024 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1025 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1026 </relations>
1027 <relations xsi:type="language_1:RelationDeclaration" name="source reference DirectedCommunicationLink">
1028 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1029 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1030 </relations>
1031 <relations xsi:type="language_1:RelationDeclaration" name="target reference DirectedCommunicationLink">
1032 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1033 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1034 </relations>
1035 <relations xsi:type="language_1:RelationDeclaration" name="band attribute CommSubsystem">
1036 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1037 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1038 </relations>
1039 <relations xsi:type="language_1:RelationDeclaration" name="gain attribute CommSubsystem">
1040 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1041 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1042 </relations>
1043 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.20">
1044 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1045 <variables name="parameter Link">
1046 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1047 </variables>
1048 <value xsi:type="language_1:Or">
1049 <operands xsi:type="language_1:Exists">
1050 <quantifiedVariables name="variable Element">
1051 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1052 </quantifiedVariables>
1053 <quantifiedVariables name="variable SourceComm">
1054 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1055 </quantifiedVariables>
1056 <quantifiedVariables name="variable SourceElement">
1057 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1058 </quantifiedVariables>
1059 <expression xsi:type="language_1:And">
1060 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
1061 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.0"/>
1062 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.0"/>
1063 </operands>
1064 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1065 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.0"/>
1066 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.1"/>
1067 </operands>
1068 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1069 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.2"/>
1070 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.1"/>
1071 </operands>
1072 <operands xsi:type="language_1:InstanceOf">
1073 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.1"/>
1074 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1075 </operands>
1076 <operands xsi:type="language_1:Distinct">
1077 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.0"/>
1078 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.2"/>
1079 </operands>
1080 </expression>
1081 </operands>
1082 </value>
1083 </relations>
1084 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.21">
1085 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1086 <variables name="parameter Mission">
1087 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1088 </variables>
1089 <value xsi:type="language_1:Or">
1090 <operands xsi:type="language_1:And">
1091 <operands xsi:type="language_1:InstanceOf">
1092 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
1093 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1094 </operands>
1095 <operands xsi:type="language_1:Not">
1096 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
1097 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
1098 </operand>
1099 </operands>
1100 </operands>
1101 </value>
1102 </relations>
1103 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads" annotations="//@annotations.22">
1104 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1105 <variables name="parameter Mission">
1106 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1107 </variables>
1108 <value xsi:type="language_1:Or">
1109 <operands xsi:type="language_1:Exists">
1110 <quantifiedVariables name="variable Spacecraft1">
1111 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1112 </quantifiedVariables>
1113 <quantifiedVariables name="variable Spacecraft2">
1114 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1115 </quantifiedVariables>
1116 <expression xsi:type="language_1:And">
1117 <operands xsi:type="language_1:InstanceOf">
1118 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1119 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1120 </operands>
1121 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
1122 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1123 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.0"/>
1124 </operands>
1125 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
1126 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1127 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/>
1128 </operands>
1129 <operands xsi:type="language_1:Distinct">
1130 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.0"/>
1131 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/>
1132 </operands>
1133 </expression>
1134 </operands>
1135 </value>
1136 </relations>
1137 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload" annotations="//@annotations.23">
1138 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1139 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1140 <variables name="parameter Mission">
1141 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1142 </variables>
1143 <variables name="parameter Spacecraft">
1144 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1145 </variables>
1146 <value xsi:type="language_1:Or">
1147 <operands xsi:type="language_1:Exists">
1148 <quantifiedVariables name="variable Payload">
1149 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1150 </quantifiedVariables>
1151 <expression xsi:type="language_1:And">
1152 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
1153 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/>
1154 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.1"/>
1155 </operands>
1156 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
1157 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.1"/>
1158 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/>
1159 </operands>
1160 <operands xsi:type="language_1:InstanceOf">
1161 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/>
1162 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1163 </operands>
1164 </expression>
1165 </operands>
1166 </value>
1167 </relations>
1168 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.24">
1169 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1170 <variables name="parameter Spacecraft">
1171 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1172 </variables>
1173 <value xsi:type="language_1:Or">
1174 <operands xsi:type="language_1:Exists">
1175 <quantifiedVariables name="variable Mission">
1176 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1177 </quantifiedVariables>
1178 <quantifiedVariables name="variable GroundStation">
1179 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1180 </quantifiedVariables>
1181 <expression xsi:type="language_1:And">
1182 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
1183 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/>
1184 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.1"/>
1185 </operands>
1186 <operands xsi:type="language_1:InstanceOf">
1187 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.1"/>
1188 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1189 </operands>
1190 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
1191 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/>
1192 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1193 </operands>
1194 <operands xsi:type="language_1:InstanceOf">
1195 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1196 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1197 </operands>
1198 <operands xsi:type="language_1:Not">
1199 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
1200 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1201 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.1"/>
1202 </operand>
1203 </operands>
1204 </expression>
1205 </operands>
1206 </value>
1207 </relations>
1208 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.25">
1209 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1210 <variables name="parameter Element">
1211 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1212 </variables>
1213 <value xsi:type="language_1:Or">
1214 <operands xsi:type="language_1:And">
1215 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
1216 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1217 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1218 </operands>
1219 </operands>
1220 </value>
1221 </relations>
1222 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink" annotations="//@annotations.26">
1223 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1224 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1225 <variables name="parameter Source">
1226 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1227 </variables>
1228 <variables name="parameter Target">
1229 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1230 </variables>
1231 <value xsi:type="language_1:Or">
1232 <operands xsi:type="language_1:And">
1233 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.16"/>
1234 </operands>
1235 </value>
1236 </relations>
1237 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink" annotations="//@annotations.27">
1238 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1239 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1240 <variables name="parameter Source">
1241 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1242 </variables>
1243 <variables name="parameter Target">
1244 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1245 </variables>
1246 <value xsi:type="language_1:Or">
1247 <operands xsi:type="language_1:Exists">
1248 <quantifiedVariables name="variable Link">
1249 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1250 </quantifiedVariables>
1251 <quantifiedVariables name="variable SourceSubsystem">
1252 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1253 </quantifiedVariables>
1254 <quantifiedVariables name="variable TargetSubsystem">
1255 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1256 </quantifiedVariables>
1257 <expression xsi:type="language_1:And">
1258 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1259 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
1260 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/>
1261 </operands>
1262 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1263 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
1264 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.2"/>
1265 </operands>
1266 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1267 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
1268 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/>
1269 </operands>
1270 <operands xsi:type="language_1:InstanceOf">
1271 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/>
1272 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1273 </operands>
1274 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1275 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.1"/>
1276 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.2"/>
1277 </operands>
1278 <operands xsi:type="language_1:InstanceOf">
1279 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.2"/>
1280 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1281 </operands>
1282 </expression>
1283 </operands>
1284 </value>
1285 </relations>
1286 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.28">
1287 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1288 <variables name="parameter Link">
1289 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1290 </variables>
1291 <value xsi:type="language_1:Or">
1292 <operands xsi:type="language_1:Exists">
1293 <quantifiedVariables name="variable SourceSubsystem">
1294 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1295 </quantifiedVariables>
1296 <quantifiedVariables name="variable TargetSubsystem">
1297 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1298 </quantifiedVariables>
1299 <quantifiedVariables name="variable Band">
1300 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1301 </quantifiedVariables>
1302 <expression xsi:type="language_1:And">
1303 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1304 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1305 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
1306 </operands>
1307 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1308 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1309 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/>
1310 </operands>
1311 <operands xsi:type="language_1:InstanceOf">
1312 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/>
1313 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1314 </operands>
1315 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1316 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
1317 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.2"/>
1318 </operands>
1319 <operands xsi:type="language_1:Not">
1320 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
1321 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/>
1322 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.2"/>
1323 </operand>
1324 </operands>
1325 </expression>
1326 </operands>
1327 </value>
1328 </relations>
1329 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand" annotations="//@annotations.29">
1330 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1331 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1332 <variables name="parameter Comm">
1333 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1334 </variables>
1335 <variables name="parameter Band">
1336 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1337 </variables>
1338 <value xsi:type="language_1:Or">
1339 <operands xsi:type="language_1:And">
1340 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
1342 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
1343 </operands>
1344 </operands>
1345 </value>
1346 </relations>
1347 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.30">
1348 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1349 <variables name="parameter Link">
1350 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1351 </variables>
1352 <value xsi:type="language_1:Or">
1353 <operands xsi:type="language_1:Exists">
1354 <quantifiedVariables name="variable SourceSubsystem">
1355 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1356 </quantifiedVariables>
1357 <quantifiedVariables name="variable TargetSubsystem">
1358 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1359 </quantifiedVariables>
1360 <quantifiedVariables name="variable Gain">
1361 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1362 </quantifiedVariables>
1363 <expression xsi:type="language_1:And">
1364 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1365 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
1366 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/>
1367 </operands>
1368 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1369 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
1370 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/>
1371 </operands>
1372 <operands xsi:type="language_1:InstanceOf">
1373 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/>
1374 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1375 </operands>
1376 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1377 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/>
1378 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/>
1379 </operands>
1380 <operands xsi:type="language_1:Not">
1381 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20">
1382 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/>
1383 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/>
1384 </operand>
1385 </operands>
1386 </expression>
1387 </operands>
1388 </value>
1389 </relations>
1390 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain" annotations="//@annotations.31">
1391 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1392 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1393 <variables name="parameter Comm">
1394 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1395 </variables>
1396 <variables name="parameter Gain">
1397 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1398 </variables>
1399 <value xsi:type="language_1:Or">
1400 <operands xsi:type="language_1:And">
1401 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1402 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
1403 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
1404 </operands>
1405 </operands>
1406 </value>
1407 </relations>
1408 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.32">
1409 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1410 <variables name="parameter Comm">
1411 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1412 </variables>
1413 <value xsi:type="language_1:Or">
1414 <operands xsi:type="language_1:Exists">
1415 <quantifiedVariables name="variable virtual0">
1416 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1417 </quantifiedVariables>
1418 <expression xsi:type="language_1:And">
1419 <operands xsi:type="language_1:Equals">
1420 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
1421 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1422 </operands>
1423 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1424 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
1425 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
1426 </operands>
1427 <operands xsi:type="language_1:Not">
1428 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
1429 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
1430 </operand>
1431 </operands>
1432 </expression>
1433 </operands>
1434 </value>
1435 </relations>
1436 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow" annotations="//@annotations.33">
1437 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1438 <variables name="parameter Comm">
1439 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1440 </variables>
1441 <value xsi:type="language_1:Or">
1442 <operands xsi:type="language_1:Exists">
1443 <quantifiedVariables name="variable virtual0">
1444 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1445 </quantifiedVariables>
1446 <expression xsi:type="language_1:And">
1447 <operands xsi:type="language_1:Equals">
1448 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1449 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/>
1450 </operands>
1451 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1452 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
1453 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1454 </operands>
1455 </expression>
1456 </operands>
1457 </value>
1458 </relations>
1459 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.34">
1460 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1461 <variables name="parameter Comm">
1462 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1463 </variables>
1464 <value xsi:type="language_1:Or">
1465 <operands xsi:type="language_1:Exists">
1466 <quantifiedVariables name="variable virtual0">
1467 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1468 </quantifiedVariables>
1469 <expression xsi:type="language_1:And">
1470 <operands xsi:type="language_1:Equals">
1471 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/>
1472 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
1473 </operands>
1474 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1475 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
1476 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/>
1477 </operands>
1478 <operands xsi:type="language_1:Not">
1479 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
1480 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
1481 </operand>
1482 </operands>
1483 </expression>
1484 </operands>
1485 </value>
1486 </relations>
1487 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium" annotations="//@annotations.35">
1488 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1489 <variables name="parameter Comm">
1490 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1491 </variables>
1492 <value xsi:type="language_1:Or">
1493 <operands xsi:type="language_1:Exists">
1494 <quantifiedVariables name="variable virtual0">
1495 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1496 </quantifiedVariables>
1497 <expression xsi:type="language_1:And">
1498 <operands xsi:type="language_1:Equals">
1499 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@quantifiedVariables.0"/>
1500 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/>
1501 </operands>
1502 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1503 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
1504 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@quantifiedVariables.0"/>
1505 </operands>
1506 </expression>
1507 </operands>
1508 </value>
1509 </relations>
1510 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.36">
1511 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1512 <variables name="parameter Comm">
1513 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1514 </variables>
1515 <value xsi:type="language_1:Or">
1516 <operands xsi:type="language_1:Exists">
1517 <quantifiedVariables name="variable virtual0">
1518 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1519 </quantifiedVariables>
1520 <quantifiedVariables name="variable virtual2">
1521 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1522 </quantifiedVariables>
1523 <expression xsi:type="language_1:And">
1524 <operands xsi:type="language_1:Equals">
1525 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1526 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
1527 </operands>
1528 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1529 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1530 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1531 </operands>
1532 <operands xsi:type="language_1:Equals">
1533 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/>
1534 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/>
1535 </operands>
1536 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
1537 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1538 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/>
1539 </operands>
1540 </expression>
1541 </operands>
1542 </value>
1543 </relations>
1544 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.37">
1545 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1546 <variables name="parameter Sat">
1547 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1548 </variables>
1549 <value xsi:type="language_1:Or">
1550 <operands xsi:type="language_1:Exists">
1551 <quantifiedVariables name="variable SourceComm">
1552 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1553 </quantifiedVariables>
1554 <quantifiedVariables name="variable Link">
1555 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1556 </quantifiedVariables>
1557 <quantifiedVariables name="variable TargetComm">
1558 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1559 </quantifiedVariables>
1560 <quantifiedVariables name="variable Target">
1561 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1562 </quantifiedVariables>
1563 <expression xsi:type="language_1:And">
1564 <operands xsi:type="language_1:InstanceOf">
1565 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
1566 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1567 </operands>
1568 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1569 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
1570 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
1571 </operands>
1572 <operands xsi:type="language_1:Not">
1573 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27">
1574 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
1575 </operand>
1576 </operands>
1577 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
1578 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.1"/>
1579 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
1580 </operands>
1581 <operands xsi:type="language_1:InstanceOf">
1582 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
1583 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1584 </operands>
1585 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
1586 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.1"/>
1587 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.2"/>
1588 </operands>
1589 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1590 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.3"/>
1591 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.2"/>
1592 </operands>
1593 <operands xsi:type="language_1:InstanceOf">
1594 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.2"/>
1595 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1596 </operands>
1597 <operands xsi:type="language_1:Not">
1598 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28">
1599 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.3"/>
1600 </operand>
1601 </operands>
1602 </expression>
1603 </operands>
1604 </value>
1605 </relations>
1606 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf" annotations="//@annotations.38">
1607 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1608 <variables name="parameter Comm">
1609 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1610 </variables>
1611 <value xsi:type="language_1:Or">
1612 <operands xsi:type="language_1:Exists">
1613 <quantifiedVariables name="variable virtual0">
1614 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1615 </quantifiedVariables>
1616 <expression xsi:type="language_1:And">
1617 <operands xsi:type="language_1:Equals">
1618 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/>
1619 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1620 </operands>
1621 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1622 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/>
1623 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/>
1624 </operands>
1625 </expression>
1626 </operands>
1627 </value>
1628 </relations>
1629 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork" annotations="//@annotations.39">
1630 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1631 <variables name="parameter Network">
1632 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1633 </variables>
1634 <value xsi:type="language_1:Or">
1635 <operands xsi:type="language_1:And">
1636 <operands xsi:type="language_1:InstanceOf">
1637 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/>
1638 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1639 </operands>
1640 </operands>
1641 </value>
1642 </relations>
1643 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.40">
1644 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1645 <variables name="parameter Spacecraft">
1646 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1647 </variables>
1648 <value xsi:type="language_1:Or">
1649 <operands xsi:type="language_1:Exists">
1650 <quantifiedVariables name="variable virtual0">
1651 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1652 </quantifiedVariables>
1653 <quantifiedVariables name="variable virtual1">
1654 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1655 </quantifiedVariables>
1656 <expression xsi:type="language_1:And">
1657 <operands xsi:type="language_1:InstanceOf">
1658 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/>
1659 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1660 </operands>
1661 <operands xsi:type="language_1:Equals">
1662 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/>
1663 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
1664 </operands>
1665 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1666 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/>
1667 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.1"/>
1668 </operands>
1669 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
1670 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.1"/>
1671 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/>
1672 </operands>
1673 <operands xsi:type="language_1:Not">
1674 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30">
1675 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/>
1676 </operand>
1677 </operands>
1678 </expression>
1679 </operands>
1680 </value>
1681 </relations>
1682 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries smallSat" annotations="//@annotations.41">
1683 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1684 <variables name="parameter Sat">
1685 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1686 </variables>
1687 <value xsi:type="language_1:Or">
1688 <operands xsi:type="language_1:And">
1689 <operands xsi:type="language_1:InstanceOf">
1690 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@variables.0"/>
1691 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1692 </operands>
1693 </operands>
1694 </value>
1695 </relations>
1696 <elements name="UHF literal TransceiverBand" definedInType="//@types.12"/>
1697 <elements name="X literal TransceiverBand" definedInType="//@types.12"/>
1698 <elements name="Ka literal TransceiverBand" definedInType="//@types.12"/>
1699 <elements name="LOW literal AntennaGain" definedInType="//@types.13"/>
1700 <elements name="MEDIUM literal AntennaGain" definedInType="//@types.13"/>
1701 <elements name="HIGH literal AntennaGain" definedInType="//@types.13"/>
1702 <elements name="o 1" definedInType="//@types.14 //@types.16"/>
1703 <elements name="o 2" definedInType="//@types.18 //@types.20"/>
1704 <elements name="o 3" definedInType="//@types.22"/>
1705 <elements name="o 4" definedInType="//@types.22"/>
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"/>
1707 <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"/>
1709 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" lower="2"/>
1710 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.1" upper="50"/>
1711 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.4" relation="//@relations.2" lower="1"/>
1712 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.2" upper="2"/>
1713 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.3" upper="1"/>
1714 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.4" upper="1"/>
1715 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.8" relation="//@relations.5" lower="1"/>
1716 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.5" upper="1"/>
1717 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.10" relation="//@relations.6" lower="1"/>
1718 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.11" relation="//@relations.6" upper="1"/>
1719 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.12" relation="//@relations.7" lower="1"/>
1720 <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"/>
1722 <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"/>
1724 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.17" targetRelation="//@relations.2"/>
1725 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.18" targetRelation="//@relations.7"/>
1726 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.19" targetRelation="//@relations.8"/>
1727 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.9" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
1728 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.10" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
1729 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.11" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads"/>
1730 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.12" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload"/>
1731 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.13" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
1732 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.14" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/>
1733 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink"/>
1734 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink"/>
1735 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/>
1736 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBand"/>
1737 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/>
1738 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGain"/>
1739 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow"/>
1740 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainLow"/>
1741 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium"/>
1742 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainMedium"/>
1743 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/>
1744 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/>
1745 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBandUhf"/>
1746 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.28" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork"/>
1747 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.29" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/>
1748 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.30" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/>
1749 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.20" query="//@annotations.20"/>
1750 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.21" query="//@annotations.24"/>
1751 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.22" query="//@annotations.25"/>
1752 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.28"/>
1753 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.30"/>
1754 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.32"/>
1755 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.26" query="//@annotations.34"/>
1756 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.27" query="//@annotations.36"/>
1757 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.28" query="//@annotations.37"/>
1758 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.29" query="//@annotations.40"/>
1759</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
new file mode 100644
index 00000000..e458c179
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel
@@ -0,0 +1,161 @@
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">
3 <problem href="outputs/debug/generation.logicproblem#/"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="outputs/debug/generation.logicproblem#//@elements.6"/>
8 <param2 href="outputs/debug/generation.logicproblem#//@elements.7"/>
9 </relationlinks>
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"/>
12 </partialrelationinterpretation>
13 <partialrelationinterpretation>
14 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.1"/>
15 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.1/@parameters.0"/>
16 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.1/@parameters.1"/>
17 </partialrelationinterpretation>
18 <partialrelationinterpretation>
19 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="outputs/debug/generation.logicproblem#//@elements.7"/>
22 <param2 href="outputs/debug/generation.logicproblem#//@elements.8"/>
23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="outputs/debug/generation.logicproblem#//@elements.7"/>
26 <param2 href="outputs/debug/generation.logicproblem#//@elements.9"/>
27 </relationlinks>
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"/>
30 </partialrelationinterpretation>
31 <partialrelationinterpretation>
32 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.3"/>
33 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.3/@parameters.0"/>
34 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.3/@parameters.1"/>
35 </partialrelationinterpretation>
36 <partialrelationinterpretation>
37 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.4"/>
38 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.4/@parameters.0"/>
39 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.4/@parameters.1"/>
40 </partialrelationinterpretation>
41 <partialrelationinterpretation>
42 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.5"/>
43 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.5/@parameters.0"/>
44 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.5/@parameters.1"/>
45 </partialrelationinterpretation>
46 <partialrelationinterpretation>
47 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.6"/>
48 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.6/@parameters.0"/>
49 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.6/@parameters.1"/>
50 </partialrelationinterpretation>
51 <partialrelationinterpretation>
52 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.7"/>
53 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
54 <param1 href="outputs/debug/generation.logicproblem#//@elements.8"/>
55 <param2 href="outputs/debug/generation.logicproblem#//@elements.1"/>
56 </relationlinks>
57 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
58 <param1 href="outputs/debug/generation.logicproblem#//@elements.9"/>
59 <param2 href="outputs/debug/generation.logicproblem#//@elements.2"/>
60 </relationlinks>
61 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.0"/>
62 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.1"/>
63 </partialrelationinterpretation>
64 <partialrelationinterpretation>
65 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.8"/>
66 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
67 <param1 href="outputs/debug/generation.logicproblem#//@elements.8"/>
68 <param2 href="outputs/debug/generation.logicproblem#//@elements.4"/>
69 </relationlinks>
70 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
71 <param1 href="outputs/debug/generation.logicproblem#//@elements.9"/>
72 <param2 href="outputs/debug/generation.logicproblem#//@elements.5"/>
73 </relationlinks>
74 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.0"/>
75 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.1"/>
76 </partialrelationinterpretation>
77 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
78 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
79 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
80 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
81 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
82 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
84 <elements href="outputs/debug/generation.logicproblem#//@elements.6"/>
85 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.0"/>
86 </partialtypeinterpratation>
87 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
88 <elements href="outputs/debug/generation.logicproblem#//@elements.6"/>
89 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.1"/>
90 </partialtypeinterpratation>
91 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
92 <elements href="outputs/debug/generation.logicproblem#//@elements.7"/>
93 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.2"/>
94 </partialtypeinterpratation>
95 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
96 <elements href="outputs/debug/generation.logicproblem#//@elements.7"/>
97 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.3"/>
98 </partialtypeinterpratation>
99 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.18">
100 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.4"/>
101 </partialtypeinterpratation>
102 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18">
103 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.5"/>
104 </partialtypeinterpratation>
105 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18">
106 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.6"/>
107 </partialtypeinterpratation>
108 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18">
109 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.7"/>
110 </partialtypeinterpratation>
111 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8">
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"/>
115 </partialtypeinterpratation>
116 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9">
117 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.9"/>
118 </partialtypeinterpratation>
119 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10">
120 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.10"/>
121 </partialtypeinterpratation>
122 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.14">
123 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.11"/>
124 </partialtypeinterpratation>
125 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.4">
126 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.15"/>
127 </partialtypeinterpratation>
128 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.16">
129 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.17"/>
130 </partialtypeinterpratation>
131 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.6">
132 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.19"/>
133 </partialtypeinterpratation>
134 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.18">
135 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.21"/>
136 </partialtypeinterpratation>
137 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.12">
138 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.23"/>
139 </partialtypeinterpratation>
140 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
141 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
142 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
143 <openWorldElements name="New Objects"/>
144 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
145 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
146 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
147 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
148 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
149 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
150 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
151 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
152 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
153 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
154 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
155 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
156 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
157 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
158 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
159 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
160 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
161</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
new file mode 100644
index 00000000..67589bd9
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt
@@ -0,0 +1 @@
Model generation finished
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
new file mode 100644
index 00000000..b8da662f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml
@@ -0,0 +1,1517 @@
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 CubeSat6U 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 223.3
486 h 54
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 Payload class
507 InterferometryPayload class
508 "
509 fontSize 14
510 fontName "Consolas"
511 alignment "left"
512 anchor "tl"
513 borderDistance 6
514 ]
515 ]
516
517 node
518 [
519 id 14
520 graphics
521 [
522 w 269.5
523 h 54
524 type "rectangle"
525 fill "#FFFFFF"
526 fill2 "#FFFFFF"
527 outline "#000000"
528 ]
529 LabelGraphics
530 [
531 text "null"
532 outline "#000000"
533 fill "#FFFFFF"
534 fontSize 16
535 fontName "Monospace"
536 autoSizePolicy "node_width"
537 anchor "t"
538 borderDistance 0.0
539 ]
540 LabelGraphics
541 [
542 text "
543 CommSubsystem class
544 CommSubsystem class UndefinedPart
545 "
546 fontSize 14
547 fontName "Consolas"
548 alignment "left"
549 anchor "tl"
550 borderDistance 6
551 ]
552 ]
553
554 node
555 [
556 id 15
557 graphics
558 [
559 w 323.40000000000003
560 h 82
561 type "rectangle"
562 fill "#FFFFFF"
563 fill2 "#FFFFFF"
564 outline "#000000"
565 ]
566 LabelGraphics
567 [
568 text "null"
569 outline "#000000"
570 fill "#FFFFFF"
571 fontSize 16
572 fontName "Monospace"
573 autoSizePolicy "node_width"
574 anchor "t"
575 borderDistance 0.0
576 ]
577 LabelGraphics
578 [
579 text "
580 CommunicatingElement class
581 Spacecraft class
582 SmallSat class
583 CommunicatingElement class UndefinedPart
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 223.3
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 Payload class
620 InterferometryPayload class
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 269.5
636 h 54
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 CommSubsystem class
657 CommSubsystem class UndefinedPart
658 "
659 fontSize 14
660 fontName "Consolas"
661 alignment "left"
662 anchor "tl"
663 borderDistance 6
664 ]
665 ]
666
667 node
668 [
669 id 18
670 graphics
671 [
672 w 269.5
673 h 54
674 type "rectangle"
675 fill "#FFFFFF"
676 fill2 "#FFFFFF"
677 outline "#000000"
678 ]
679 LabelGraphics
680 [
681 text "null"
682 outline "#000000"
683 fill "#FFFFFF"
684 fontSize 16
685 fontName "Monospace"
686 autoSizePolicy "node_width"
687 anchor "t"
688 borderDistance 0.0
689 ]
690 LabelGraphics
691 [
692 text "
693 CommSubsystem class
694 CommSubsystem class UndefinedPart
695 "
696 fontSize 14
697 fontName "Consolas"
698 alignment "left"
699 anchor "tl"
700 borderDistance 6
701 ]
702 ]
703
704 node
705 [
706 id 19
707 graphics
708 [
709 w 254.10000000000002
710 h 40
711 type "rectangle"
712 fill "#FFFFFF"
713 fill2 "#FFFFFF"
714 outline "#000000"
715 ]
716 LabelGraphics
717 [
718 text "null"
719 outline "#000000"
720 fill "#FFFFFF"
721 fontSize 16
722 fontName "Monospace"
723 autoSizePolicy "node_width"
724 anchor "t"
725 borderDistance 0.0
726 ]
727 LabelGraphics
728 [
729 text "
730 DirectedCommunicationLink class
731 "
732 fontSize 14
733 fontName "Consolas"
734 alignment "left"
735 anchor "tl"
736 borderDistance 6
737 ]
738 ]
739
740 node
741 [
742 id 20
743 graphics
744 [
745 w 269.5
746 h 54
747 type "rectangle"
748 fill "#FFFFFF"
749 fill2 "#FFFFFF"
750 outline "#000000"
751 ]
752 LabelGraphics
753 [
754 text "null"
755 outline "#000000"
756 fill "#FFFFFF"
757 fontSize 16
758 fontName "Monospace"
759 autoSizePolicy "node_width"
760 anchor "t"
761 borderDistance 0.0
762 ]
763 LabelGraphics
764 [
765 text "
766 CommSubsystem class
767 CommSubsystem class UndefinedPart
768 "
769 fontSize 14
770 fontName "Consolas"
771 alignment "left"
772 anchor "tl"
773 borderDistance 6
774 ]
775 ]
776
777 node
778 [
779 id 21
780 graphics
781 [
782 w 254.10000000000002
783 h 40
784 type "rectangle"
785 fill "#FFFFFF"
786 fill2 "#FFFFFF"
787 outline "#000000"
788 ]
789 LabelGraphics
790 [
791 text "null"
792 outline "#000000"
793 fill "#FFFFFF"
794 fontSize 16
795 fontName "Monospace"
796 autoSizePolicy "node_width"
797 anchor "t"
798 borderDistance 0.0
799 ]
800 LabelGraphics
801 [
802 text "
803 DirectedCommunicationLink class
804 "
805 fontSize 14
806 fontName "Consolas"
807 alignment "left"
808 anchor "tl"
809 borderDistance 6
810 ]
811 ]
812
813 node
814 [
815 id 22
816 graphics
817 [
818 w 112.2
819 h 26
820 type "rectangle"
821 fill "#FFFFFF"
822 fill2 "#FFFFFF"
823 outline "#000000"
824 ]
825 LabelGraphics
826 [
827 text "New Integers"
828 outline "#000000"
829 fill "#FFFFFF"
830 fontSize 16
831 fontName "Monospace"
832 autoSizePolicy "node_width"
833 anchor "t"
834 borderDistance 0.0
835 ]
836 LabelGraphics
837 [
838 text "
839 "
840 fontSize 14
841 fontName "Consolas"
842 alignment "left"
843 anchor "tl"
844 borderDistance 6
845 ]
846 ]
847
848 node
849 [
850 id 23
851 graphics
852 [
853 w 85.80000000000001
854 h 26
855 type "rectangle"
856 fill "#FFFFFF"
857 fill2 "#FFFFFF"
858 outline "#000000"
859 ]
860 LabelGraphics
861 [
862 text "New Reals"
863 outline "#000000"
864 fill "#FFFFFF"
865 fontSize 16
866 fontName "Monospace"
867 autoSizePolicy "node_width"
868 anchor "t"
869 borderDistance 0.0
870 ]
871 LabelGraphics
872 [
873 text "
874 "
875 fontSize 14
876 fontName "Consolas"
877 alignment "left"
878 anchor "tl"
879 borderDistance 6
880 ]
881 ]
882
883 node
884 [
885 id 24
886 graphics
887 [
888 w 103.4
889 h 26
890 type "rectangle"
891 fill "#FFFFFF"
892 fill2 "#FFFFFF"
893 outline "#000000"
894 ]
895 LabelGraphics
896 [
897 text "New Strings"
898 outline "#000000"
899 fill "#FFFFFF"
900 fontSize 16
901 fontName "Monospace"
902 autoSizePolicy "node_width"
903 anchor "t"
904 borderDistance 0.0
905 ]
906 LabelGraphics
907 [
908 text "
909 "
910 fontSize 14
911 fontName "Consolas"
912 alignment "left"
913 anchor "tl"
914 borderDistance 6
915 ]
916 ]
917
918 node
919 [
920 id 25
921 graphics
922 [
923 w 103.4
924 h 26
925 type "rectangle"
926 fill "#FFFFFF"
927 fill2 "#FFFFFF"
928 outline "#000000"
929 ]
930 LabelGraphics
931 [
932 text "New Objects"
933 outline "#000000"
934 fill "#FFFFFF"
935 fontSize 16
936 fontName "Monospace"
937 autoSizePolicy "node_width"
938 anchor "t"
939 borderDistance 0.0
940 ]
941 LabelGraphics
942 [
943 text "
944 "
945 fontSize 14
946 fontName "Consolas"
947 alignment "left"
948 anchor "tl"
949 borderDistance 6
950 ]
951 ]
952 edge
953 [
954 source 6
955 target 7
956 graphics
957 [
958 fill "#000000"
959 width 3
960 targetArrow "standard"
961 ]
962 LabelGraphics
963 [
964 text "groundStationNetwork reference ConstellationMission"
965 fontSize 14
966 fontName "Consolas"
967 configuration "AutoFlippingLabel"
968 model "six_pos"
969 position "thead"
970 ]
971 ]
972 edge
973 [
974 source 6
975 target 12
976 graphics
977 [
978 fill "#000000"
979 width 3
980 targetArrow "standard"
981 ]
982 LabelGraphics
983 [
984 text "spacecraft reference ConstellationMission"
985 fontSize 14
986 fontName "Consolas"
987 configuration "AutoFlippingLabel"
988 model "six_pos"
989 position "thead"
990 ]
991 ]
992 edge
993 [
994 source 6
995 target 15
996 graphics
997 [
998 fill "#000000"
999 width 3
1000 targetArrow "standard"
1001 ]
1002 LabelGraphics
1003 [
1004 text "spacecraft reference ConstellationMission"
1005 fontSize 14
1006 fontName "Consolas"
1007 configuration "AutoFlippingLabel"
1008 model "six_pos"
1009 position "thead"
1010 ]
1011 ]
1012 edge
1013 [
1014 source 7
1015 target 8
1016 graphics
1017 [
1018 fill "#000000"
1019 width 3
1020 targetArrow "standard"
1021 ]
1022 LabelGraphics
1023 [
1024 text "commSubsystem reference CommunicatingElement"
1025 fontSize 14
1026 fontName "Consolas"
1027 configuration "AutoFlippingLabel"
1028 model "six_pos"
1029 position "thead"
1030 ]
1031 ]
1032 edge
1033 [
1034 source 7
1035 target 9
1036 graphics
1037 [
1038 fill "#000000"
1039 width 3
1040 targetArrow "standard"
1041 ]
1042 LabelGraphics
1043 [
1044 text "commSubsystem reference CommunicatingElement"
1045 fontSize 14
1046 fontName "Consolas"
1047 configuration "AutoFlippingLabel"
1048 model "six_pos"
1049 position "thead"
1050 ]
1051 ]
1052 edge
1053 [
1054 source 12
1055 target 14
1056 graphics
1057 [
1058 fill "#000000"
1059 width 3
1060 targetArrow "standard"
1061 ]
1062 LabelGraphics
1063 [
1064 text "commSubsystem reference CommunicatingElement"
1065 fontSize 14
1066 fontName "Consolas"
1067 configuration "AutoFlippingLabel"
1068 model "six_pos"
1069 position "thead"
1070 ]
1071 ]
1072 edge
1073 [
1074 source 15
1075 target 17
1076 graphics
1077 [
1078 fill "#000000"
1079 width 3
1080 targetArrow "standard"
1081 ]
1082 LabelGraphics
1083 [
1084 text "commSubsystem reference CommunicatingElement"
1085 fontSize 14
1086 fontName "Consolas"
1087 configuration "AutoFlippingLabel"
1088 model "six_pos"
1089 position "thead"
1090 ]
1091 ]
1092 edge
1093 [
1094 source 15
1095 target 18
1096 graphics
1097 [
1098 fill "#000000"
1099 width 3
1100 targetArrow "standard"
1101 ]
1102 LabelGraphics
1103 [
1104 text "commSubsystem reference CommunicatingElement"
1105 fontSize 14
1106 fontName "Consolas"
1107 configuration "AutoFlippingLabel"
1108 model "six_pos"
1109 position "thead"
1110 ]
1111 ]
1112 edge
1113 [
1114 source 12
1115 target 20
1116 graphics
1117 [
1118 fill "#000000"
1119 width 3
1120 targetArrow "standard"
1121 ]
1122 LabelGraphics
1123 [
1124 text "commSubsystem reference CommunicatingElement"
1125 fontSize 14
1126 fontName "Consolas"
1127 configuration "AutoFlippingLabel"
1128 model "six_pos"
1129 position "thead"
1130 ]
1131 ]
1132 edge
1133 [
1134 source 15
1135 target 19
1136 graphics
1137 [
1138 fill "#000000"
1139 width 3
1140 targetArrow "standard"
1141 ]
1142 LabelGraphics
1143 [
1144 text "communicationLink reference CommunicatingElement"
1145 fontSize 14
1146 fontName "Consolas"
1147 configuration "AutoFlippingLabel"
1148 model "six_pos"
1149 position "thead"
1150 ]
1151 ]
1152 edge
1153 [
1154 source 12
1155 target 21
1156 graphics
1157 [
1158 fill "#000000"
1159 width 3
1160 targetArrow "standard"
1161 ]
1162 LabelGraphics
1163 [
1164 text "communicationLink reference CommunicatingElement"
1165 fontSize 14
1166 fontName "Consolas"
1167 configuration "AutoFlippingLabel"
1168 model "six_pos"
1169 position "thead"
1170 ]
1171 ]
1172 edge
1173 [
1174 source 12
1175 target 13
1176 graphics
1177 [
1178 fill "#000000"
1179 width 3
1180 targetArrow "standard"
1181 ]
1182 LabelGraphics
1183 [
1184 text "payload reference Spacecraft"
1185 fontSize 14
1186 fontName "Consolas"
1187 configuration "AutoFlippingLabel"
1188 model "six_pos"
1189 position "thead"
1190 ]
1191 ]
1192 edge
1193 [
1194 source 15
1195 target 16
1196 graphics
1197 [
1198 fill "#000000"
1199 width 3
1200 targetArrow "standard"
1201 ]
1202 LabelGraphics
1203 [
1204 text "payload reference Spacecraft"
1205 fontSize 14
1206 fontName "Consolas"
1207 configuration "AutoFlippingLabel"
1208 model "six_pos"
1209 position "thead"
1210 ]
1211 ]
1212 edge
1213 [
1214 source 19
1215 target 18
1216 graphics
1217 [
1218 fill "#000000"
1219 targetArrow "standard"
1220 ]
1221 LabelGraphics
1222 [
1223 text "source reference DirectedCommunicationLink"
1224 fontSize 14
1225 fontName "Consolas"
1226 configuration "AutoFlippingLabel"
1227 model "six_pos"
1228 position "thead"
1229 ]
1230 ]
1231 edge
1232 [
1233 source 21
1234 target 20
1235 graphics
1236 [
1237 fill "#000000"
1238 targetArrow "standard"
1239 ]
1240 LabelGraphics
1241 [
1242 text "source reference DirectedCommunicationLink"
1243 fontSize 14
1244 fontName "Consolas"
1245 configuration "AutoFlippingLabel"
1246 model "six_pos"
1247 position "thead"
1248 ]
1249 ]
1250 edge
1251 [
1252 source 19
1253 target 8
1254 graphics
1255 [
1256 fill "#000000"
1257 targetArrow "standard"
1258 ]
1259 LabelGraphics
1260 [
1261 text "target reference DirectedCommunicationLink"
1262 fontSize 14
1263 fontName "Consolas"
1264 configuration "AutoFlippingLabel"
1265 model "six_pos"
1266 position "thead"
1267 ]
1268 ]
1269 edge
1270 [
1271 source 21
1272 target 8
1273 graphics
1274 [
1275 fill "#000000"
1276 targetArrow "standard"
1277 ]
1278 LabelGraphics
1279 [
1280 text "target reference DirectedCommunicationLink"
1281 fontSize 14
1282 fontName "Consolas"
1283 configuration "AutoFlippingLabel"
1284 model "six_pos"
1285 position "thead"
1286 ]
1287 ]
1288 edge
1289 [
1290 source 8
1291 target 1
1292 graphics
1293 [
1294 fill "#000000"
1295 targetArrow "standard"
1296 ]
1297 LabelGraphics
1298 [
1299 text "band attribute CommSubsystem"
1300 fontSize 14
1301 fontName "Consolas"
1302 configuration "AutoFlippingLabel"
1303 model "six_pos"
1304 position "thead"
1305 ]
1306 ]
1307 edge
1308 [
1309 source 9
1310 target 2
1311 graphics
1312 [
1313 fill "#000000"
1314 targetArrow "standard"
1315 ]
1316 LabelGraphics
1317 [
1318 text "band attribute CommSubsystem"
1319 fontSize 14
1320 fontName "Consolas"
1321 configuration "AutoFlippingLabel"
1322 model "six_pos"
1323 position "thead"
1324 ]
1325 ]
1326 edge
1327 [
1328 source 14
1329 target 0
1330 graphics
1331 [
1332 fill "#000000"
1333 targetArrow "standard"
1334 ]
1335 LabelGraphics
1336 [
1337 text "band attribute CommSubsystem"
1338 fontSize 14
1339 fontName "Consolas"
1340 configuration "AutoFlippingLabel"
1341 model "six_pos"
1342 position "thead"
1343 ]
1344 ]
1345 edge
1346 [
1347 source 17
1348 target 1
1349 graphics
1350 [
1351 fill "#000000"
1352 targetArrow "standard"
1353 ]
1354 LabelGraphics
1355 [
1356 text "band attribute CommSubsystem"
1357 fontSize 14
1358 fontName "Consolas"
1359 configuration "AutoFlippingLabel"
1360 model "six_pos"
1361 position "thead"
1362 ]
1363 ]
1364 edge
1365 [
1366 source 18
1367 target 1
1368 graphics
1369 [
1370 fill "#000000"
1371 targetArrow "standard"
1372 ]
1373 LabelGraphics
1374 [
1375 text "band attribute CommSubsystem"
1376 fontSize 14
1377 fontName "Consolas"
1378 configuration "AutoFlippingLabel"
1379 model "six_pos"
1380 position "thead"
1381 ]
1382 ]
1383 edge
1384 [
1385 source 20
1386 target 1
1387 graphics
1388 [
1389 fill "#000000"
1390 targetArrow "standard"
1391 ]
1392 LabelGraphics
1393 [
1394 text "band attribute CommSubsystem"
1395 fontSize 14
1396 fontName "Consolas"
1397 configuration "AutoFlippingLabel"
1398 model "six_pos"
1399 position "thead"
1400 ]
1401 ]
1402 edge
1403 [
1404 source 8
1405 target 4
1406 graphics
1407 [
1408 fill "#000000"
1409 targetArrow "standard"
1410 ]
1411 LabelGraphics
1412 [
1413 text "gain attribute CommSubsystem"
1414 fontSize 14
1415 fontName "Consolas"
1416 configuration "AutoFlippingLabel"
1417 model "six_pos"
1418 position "thead"
1419 ]
1420 ]
1421 edge
1422 [
1423 source 9
1424 target 5
1425 graphics
1426 [
1427 fill "#000000"
1428 targetArrow "standard"
1429 ]
1430 LabelGraphics
1431 [
1432 text "gain attribute CommSubsystem"
1433 fontSize 14
1434 fontName "Consolas"
1435 configuration "AutoFlippingLabel"
1436 model "six_pos"
1437 position "thead"
1438 ]
1439 ]
1440 edge
1441 [
1442 source 14
1443 target 3
1444 graphics
1445 [
1446 fill "#000000"
1447 targetArrow "standard"
1448 ]
1449 LabelGraphics
1450 [
1451 text "gain attribute CommSubsystem"
1452 fontSize 14
1453 fontName "Consolas"
1454 configuration "AutoFlippingLabel"
1455 model "six_pos"
1456 position "thead"
1457 ]
1458 ]
1459 edge
1460 [
1461 source 17
1462 target 3
1463 graphics
1464 [
1465 fill "#000000"
1466 targetArrow "standard"
1467 ]
1468 LabelGraphics
1469 [
1470 text "gain attribute CommSubsystem"
1471 fontSize 14
1472 fontName "Consolas"
1473 configuration "AutoFlippingLabel"
1474 model "six_pos"
1475 position "thead"
1476 ]
1477 ]
1478 edge
1479 [
1480 source 18
1481 target 4
1482 graphics
1483 [
1484 fill "#000000"
1485 targetArrow "standard"
1486 ]
1487 LabelGraphics
1488 [
1489 text "gain attribute CommSubsystem"
1490 fontSize 14
1491 fontName "Consolas"
1492 configuration "AutoFlippingLabel"
1493 model "six_pos"
1494 position "thead"
1495 ]
1496 ]
1497 edge
1498 [
1499 source 20
1500 target 4
1501 graphics
1502 [
1503 fill "#000000"
1504 targetArrow "standard"
1505 ]
1506 LabelGraphics
1507 [
1508 text "gain attribute CommSubsystem"
1509 fontSize 14
1510 fontName "Consolas"
1511 configuration "AutoFlippingLabel"
1512 model "six_pos"
1513 position "thead"
1514 ]
1515 ]
1516]
1517
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
new file mode 100644
index 00000000..46fb5138
--- /dev/null
+++ 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
new file mode 100644
index 00000000..5d49f882
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.xmi
@@ -0,0 +1,19 @@
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:SmallSat">
8 <commSubsystem band="X" gain="MEDIUM"/>
9 <commSubsystem band="X"/>
10 <communicationLink source="//@spacecraft.0/@commSubsystem.0" target="//@groundStationNetwork/@commSubsystem.0"/>
11 <payload xsi:type="satellite:InterferometryPayload"/>
12 </spacecraft>
13 <spacecraft xsi:type="satellite:CubeSat6U">
14 <commSubsystem/>
15 <commSubsystem band="X" gain="MEDIUM"/>
16 <communicationLink source="//@spacecraft.1/@commSubsystem.1" target="//@groundStationNetwork/@commSubsystem.0"/>
17 <payload xsi:type="satellite:InterferometryPayload"/>
18 </spacecraft>
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
new file mode 100644
index 00000000..c5fd2a74
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.gml
@@ -0,0 +1,1983 @@
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
new file mode 100644
index 00000000..791ec34e
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.png
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
new file mode 100644
index 00000000..14a9208d
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/2.xmi
@@ -0,0 +1,31 @@
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
new file mode 100644
index 00000000..caae7300
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.gml
@@ -0,0 +1,1926 @@
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
new file mode 100644
index 00000000..38901d43
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.png
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
new file mode 100644
index 00000000..d0a119b9
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/3.xmi
@@ -0,0 +1,30 @@
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
new file mode 100644
index 00000000..eef67577
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.gml
@@ -0,0 +1,1983 @@
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
new file mode 100644
index 00000000..e378a9fb
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.png
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
new file mode 100644
index 00000000..4dcf0982
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/4.xmi
@@ -0,0 +1,31 @@
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
new file mode 100644
index 00000000..3f21efdc
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.gml
@@ -0,0 +1,1926 @@
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
new file mode 100644
index 00000000..4d65f5ba
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.png
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
new file mode 100644
index 00000000..b0c5bef1
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/5.xmi
@@ -0,0 +1,30 @@
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
new file mode 100644
index 00000000..c6c34dfc
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/statistics.csv
@@ -0,0 +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
21;1;ModelResultImpl;715;4234;39649;4468544142;39591;20421;147;938;0;10
3
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.properties b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.properties
new file mode 100644
index 00000000..7463353c
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.properties
@@ -0,0 +1,4 @@
1#
2
3pluginName = hu.bme.mit.inf.dslreasoner.domains.satellite
4providerName = www.example.org
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
new file mode 100644
index 00000000..3f4b1691
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
@@ -0,0 +1,22 @@
1<?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!--
2--><plugin>
3 <extension point="org.eclipse.emf.ecore.generated_package">
4 <!-- @generated satellite -->
5 <package class="hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage" genModel="model/satellite.genmodel" uri="http://www.example.org/satellite"/>
6 </extension>
7 <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">
9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
12 <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"/>
14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/>
15 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow"/>
16 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium"/>
17 <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"/>
19 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/>
20 </group>
21 </extension>
22</plugin>
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
new file mode 100644
index 00000000..29459700
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore
@@ -0,0 +1,16 @@
1/.SatelliteQueries.java._trace
2/.NoLinkToGroundStation.java._trace
3/.CommunicationLoop.java._trace
4/.SingleInterferometryPayload.java._trace
5/.NoInterferometryPayload.java._trace
6/.NotENoughInterferometryPayloads.java._trace
7/.NotEnoughInterferometryPayloads.java._trace
8/.UhfAntennaGainNotLow.java._trace
9/.XAntennaGainNotMedium.java._trace
10/.KaAntennaGainLow.java._trace
11/.IncompatibleSourceAndTarget.java._trace
12/.IncompatibleSourceAndTargetBand.java._trace
13/.IncompatibleSourceAndTargetGain.java._trace
14/.CubeSatWithKaAntenna.java._trace
15/.ThreeUCubeSatWithNonUhfCrossLink.java._trace
16/.CommunicationLinkDoesNotStartAtContainingElement.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java
new file mode 100644
index 00000000..dde3c20f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java
@@ -0,0 +1,579 @@
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.DirectedCommunicationLink;
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.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
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;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43
44/**
45 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
46 *
47 * <p>Original source:
48 * <code><pre>
49 * {@literal @}Constraint(severity = "error", key = {Link},
50 * message = "Communication links must start from the containing element.")
51 * pattern communicationLinkDoesNotStartAtContainingElement(Link : DirectedCommunicationLink) {
52 * CommunicatingElement.communicationLink(Element, Link);
53 * DirectedCommunicationLink.source(Link, SourceComm);
54 * CommunicatingElement.commSubsystem(SourceElement, SourceComm);
55 * Element != SourceElement;
56 * }
57 * </pre></code>
58 *
59 * @see Matcher
60 * @see Match
61 *
62 */
63@SuppressWarnings("all")
64public final class CommunicationLinkDoesNotStartAtContainingElement extends BaseGeneratedEMFQuerySpecification<CommunicationLinkDoesNotStartAtContainingElement.Matcher> {
65 /**
66 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement pattern,
67 * to be used in conjunction with {@link Matcher}.
68 *
69 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
70 * Each instance is a (possibly partial) substitution of pattern parameters,
71 * usable to represent a match of the pattern in the result of a query,
72 * or to specify the bound (fixed) input parameters when issuing a query.
73 *
74 * @see Matcher
75 *
76 */
77 public static abstract class Match extends BasePatternMatch {
78 private DirectedCommunicationLink fLink;
79
80 private static List<String> parameterNames = makeImmutableList("Link");
81
82 private Match(final DirectedCommunicationLink pLink) {
83 this.fLink = pLink;
84 }
85
86 @Override
87 public Object get(final String parameterName) {
88 if ("Link".equals(parameterName)) return this.fLink;
89 return null;
90 }
91
92 public DirectedCommunicationLink getLink() {
93 return this.fLink;
94 }
95
96 @Override
97 public boolean set(final String parameterName, final Object newValue) {
98 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
99 if ("Link".equals(parameterName) ) {
100 this.fLink = (DirectedCommunicationLink) newValue;
101 return true;
102 }
103 return false;
104 }
105
106 public void setLink(final DirectedCommunicationLink pLink) {
107 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
108 this.fLink = pLink;
109 }
110
111 @Override
112 public String patternName() {
113 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement";
114 }
115
116 @Override
117 public List<String> parameterNames() {
118 return CommunicationLinkDoesNotStartAtContainingElement.Match.parameterNames;
119 }
120
121 @Override
122 public Object[] toArray() {
123 return new Object[]{fLink};
124 }
125
126 @Override
127 public CommunicationLinkDoesNotStartAtContainingElement.Match toImmutable() {
128 return isMutable() ? newMatch(fLink) : this;
129 }
130
131 @Override
132 public String prettyPrint() {
133 StringBuilder result = new StringBuilder();
134 result.append("\"Link\"=" + prettyPrintValue(fLink));
135 return result.toString();
136 }
137
138 @Override
139 public int hashCode() {
140 return Objects.hash(fLink);
141 }
142
143 @Override
144 public boolean equals(final Object obj) {
145 if (this == obj)
146 return true;
147 if (obj == null) {
148 return false;
149 }
150 if ((obj instanceof CommunicationLinkDoesNotStartAtContainingElement.Match)) {
151 CommunicationLinkDoesNotStartAtContainingElement.Match other = (CommunicationLinkDoesNotStartAtContainingElement.Match) obj;
152 return Objects.equals(fLink, other.fLink);
153 } else {
154 // this should be infrequent
155 if (!(obj instanceof IPatternMatch)) {
156 return false;
157 }
158 IPatternMatch otherSig = (IPatternMatch) obj;
159 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
160 }
161 }
162
163 @Override
164 public CommunicationLinkDoesNotStartAtContainingElement specification() {
165 return CommunicationLinkDoesNotStartAtContainingElement.instance();
166 }
167
168 /**
169 * Returns an empty, mutable match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @return the empty match.
173 *
174 */
175 public static CommunicationLinkDoesNotStartAtContainingElement.Match newEmptyMatch() {
176 return new Mutable(null);
177 }
178
179 /**
180 * Returns a mutable (partial) match.
181 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
182 *
183 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
184 * @return the new, mutable (partial) match object.
185 *
186 */
187 public static CommunicationLinkDoesNotStartAtContainingElement.Match newMutableMatch(final DirectedCommunicationLink pLink) {
188 return new Mutable(pLink);
189 }
190
191 /**
192 * Returns a new (partial) match.
193 * This can be used e.g. to call the matcher with a partial match.
194 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
195 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
196 * @return the (partial) match object.
197 *
198 */
199 public static CommunicationLinkDoesNotStartAtContainingElement.Match newMatch(final DirectedCommunicationLink pLink) {
200 return new Immutable(pLink);
201 }
202
203 private static final class Mutable extends CommunicationLinkDoesNotStartAtContainingElement.Match {
204 Mutable(final DirectedCommunicationLink pLink) {
205 super(pLink);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return true;
211 }
212 }
213
214 private static final class Immutable extends CommunicationLinkDoesNotStartAtContainingElement.Match {
215 Immutable(final DirectedCommunicationLink pLink) {
216 super(pLink);
217 }
218
219 @Override
220 public boolean isMutable() {
221 return false;
222 }
223 }
224 }
225
226 /**
227 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement pattern,
228 * providing pattern-specific query methods.
229 *
230 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
231 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
232 *
233 * <p>Matches of the pattern will be represented as {@link Match}.
234 *
235 * <p>Original source:
236 * <code><pre>
237 * {@literal @}Constraint(severity = "error", key = {Link},
238 * message = "Communication links must start from the containing element.")
239 * pattern communicationLinkDoesNotStartAtContainingElement(Link : DirectedCommunicationLink) {
240 * CommunicatingElement.communicationLink(Element, Link);
241 * DirectedCommunicationLink.source(Link, SourceComm);
242 * CommunicatingElement.commSubsystem(SourceElement, SourceComm);
243 * Element != SourceElement;
244 * }
245 * </pre></code>
246 *
247 * @see Match
248 * @see CommunicationLinkDoesNotStartAtContainingElement
249 *
250 */
251 public static class Matcher extends BaseMatcher<CommunicationLinkDoesNotStartAtContainingElement.Match> {
252 /**
253 * Initializes the pattern matcher within an existing VIATRA Query engine.
254 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
255 *
256 * @param engine the existing VIATRA Query engine in which this matcher will be created.
257 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
258 *
259 */
260 public static CommunicationLinkDoesNotStartAtContainingElement.Matcher on(final ViatraQueryEngine engine) {
261 // check if matcher already exists
262 Matcher matcher = engine.getExistingMatcher(querySpecification());
263 if (matcher == null) {
264 matcher = (Matcher)engine.getMatcher(querySpecification());
265 }
266 return matcher;
267 }
268
269 /**
270 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
271 * @return an initialized matcher
272 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
273 *
274 */
275 public static CommunicationLinkDoesNotStartAtContainingElement.Matcher create() {
276 return new Matcher();
277 }
278
279 private static final int POSITION_LINK = 0;
280
281 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CommunicationLinkDoesNotStartAtContainingElement.Matcher.class);
282
283 /**
284 * Initializes the pattern matcher within an existing VIATRA Query engine.
285 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
286 *
287 * @param engine the existing VIATRA Query engine in which this matcher will be created.
288 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
289 *
290 */
291 private Matcher() {
292 super(querySpecification());
293 }
294
295 /**
296 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
297 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
298 * @return matches represented as a Match object.
299 *
300 */
301 public Collection<CommunicationLinkDoesNotStartAtContainingElement.Match> getAllMatches(final DirectedCommunicationLink pLink) {
302 return rawStreamAllMatches(new Object[]{pLink}).collect(Collectors.toSet());
303 }
304
305 /**
306 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
307 * </p>
308 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
309 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
310 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
311 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
312 * @return a stream of matches represented as a Match object.
313 *
314 */
315 public Stream<CommunicationLinkDoesNotStartAtContainingElement.Match> streamAllMatches(final DirectedCommunicationLink pLink) {
316 return rawStreamAllMatches(new Object[]{pLink});
317 }
318
319 /**
320 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
321 * Neither determinism nor randomness of selection is guaranteed.
322 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
323 * @return a match represented as a Match object, or null if no match is found.
324 *
325 */
326 public Optional<CommunicationLinkDoesNotStartAtContainingElement.Match> getOneArbitraryMatch(final DirectedCommunicationLink pLink) {
327 return rawGetOneArbitraryMatch(new Object[]{pLink});
328 }
329
330 /**
331 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
332 * under any possible substitution of the unspecified parameters (if any).
333 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
334 * @return true if the input is a valid (partial) match of the pattern.
335 *
336 */
337 public boolean hasMatch(final DirectedCommunicationLink pLink) {
338 return rawHasMatch(new Object[]{pLink});
339 }
340
341 /**
342 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
343 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
344 * @return the number of pattern matches found.
345 *
346 */
347 public int countMatches(final DirectedCommunicationLink pLink) {
348 return rawCountMatches(new Object[]{pLink});
349 }
350
351 /**
352 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
353 * Neither determinism nor randomness of selection is guaranteed.
354 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
355 * @param processor the action that will process the selected match.
356 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
357 *
358 */
359 public boolean forOneArbitraryMatch(final DirectedCommunicationLink pLink, final Consumer<? super CommunicationLinkDoesNotStartAtContainingElement.Match> processor) {
360 return rawForOneArbitraryMatch(new Object[]{pLink}, processor);
361 }
362
363 /**
364 * Returns a new (partial) match.
365 * This can be used e.g. to call the matcher with a partial match.
366 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
367 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
368 * @return the (partial) match object.
369 *
370 */
371 public CommunicationLinkDoesNotStartAtContainingElement.Match newMatch(final DirectedCommunicationLink pLink) {
372 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch(pLink);
373 }
374
375 /**
376 * Retrieve the set of values that occur in matches for Link.
377 * @return the Set of all values or empty set if there are no matches
378 *
379 */
380 protected Stream<DirectedCommunicationLink> rawStreamAllValuesOfLink(final Object[] parameters) {
381 return rawStreamAllValues(POSITION_LINK, parameters).map(DirectedCommunicationLink.class::cast);
382 }
383
384 /**
385 * Retrieve the set of values that occur in matches for Link.
386 * @return the Set of all values or empty set if there are no matches
387 *
388 */
389 public Set<DirectedCommunicationLink> getAllValuesOfLink() {
390 return rawStreamAllValuesOfLink(emptyArray()).collect(Collectors.toSet());
391 }
392
393 /**
394 * Retrieve the set of values that occur in matches for Link.
395 * @return the Set of all values or empty set if there are no matches
396 *
397 */
398 public Stream<DirectedCommunicationLink> streamAllValuesOfLink() {
399 return rawStreamAllValuesOfLink(emptyArray());
400 }
401
402 @Override
403 protected CommunicationLinkDoesNotStartAtContainingElement.Match tupleToMatch(final Tuple t) {
404 try {
405 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch((DirectedCommunicationLink) t.get(POSITION_LINK));
406 } catch(ClassCastException e) {
407 LOGGER.error("Element(s) in tuple not properly typed!",e);
408 return null;
409 }
410 }
411
412 @Override
413 protected CommunicationLinkDoesNotStartAtContainingElement.Match arrayToMatch(final Object[] match) {
414 try {
415 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch((DirectedCommunicationLink) match[POSITION_LINK]);
416 } catch(ClassCastException e) {
417 LOGGER.error("Element(s) in array not properly typed!",e);
418 return null;
419 }
420 }
421
422 @Override
423 protected CommunicationLinkDoesNotStartAtContainingElement.Match arrayToMatchMutable(final Object[] match) {
424 try {
425 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMutableMatch((DirectedCommunicationLink) match[POSITION_LINK]);
426 } catch(ClassCastException e) {
427 LOGGER.error("Element(s) in array not properly typed!",e);
428 return null;
429 }
430 }
431
432 /**
433 * @return the singleton instance of the query specification of this pattern
434 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
435 *
436 */
437 public static IQuerySpecification<CommunicationLinkDoesNotStartAtContainingElement.Matcher> querySpecification() {
438 return CommunicationLinkDoesNotStartAtContainingElement.instance();
439 }
440 }
441
442 private CommunicationLinkDoesNotStartAtContainingElement() {
443 super(GeneratedPQuery.INSTANCE);
444 }
445
446 /**
447 * @return the singleton instance of the query specification
448 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
449 *
450 */
451 public static CommunicationLinkDoesNotStartAtContainingElement instance() {
452 try{
453 return LazyHolder.INSTANCE;
454 } catch (ExceptionInInitializerError err) {
455 throw processInitializerError(err);
456 }
457 }
458
459 @Override
460 protected CommunicationLinkDoesNotStartAtContainingElement.Matcher instantiate(final ViatraQueryEngine engine) {
461 return CommunicationLinkDoesNotStartAtContainingElement.Matcher.on(engine);
462 }
463
464 @Override
465 public CommunicationLinkDoesNotStartAtContainingElement.Matcher instantiate() {
466 return CommunicationLinkDoesNotStartAtContainingElement.Matcher.create();
467 }
468
469 @Override
470 public CommunicationLinkDoesNotStartAtContainingElement.Match newEmptyMatch() {
471 return CommunicationLinkDoesNotStartAtContainingElement.Match.newEmptyMatch();
472 }
473
474 @Override
475 public CommunicationLinkDoesNotStartAtContainingElement.Match newMatch(final Object... parameters) {
476 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink) parameters[0]);
477 }
478
479 /**
480 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement (visibility: PUBLIC, simpleName: CommunicationLinkDoesNotStartAtContainingElement, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement, 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
481 * <b>not</b> at the class load time of the outer class,
482 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement (visibility: PUBLIC, simpleName: CommunicationLinkDoesNotStartAtContainingElement, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
483 *
484 * <p> This workaround is required e.g. to support recursion.
485 *
486 */
487 private static class LazyHolder {
488 private static final CommunicationLinkDoesNotStartAtContainingElement INSTANCE = new CommunicationLinkDoesNotStartAtContainingElement();
489
490 /**
491 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
492 * This initialization order is required to support indirect recursion.
493 *
494 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
495 *
496 */
497 private static final Object STATIC_INITIALIZER = ensureInitialized();
498
499 public static Object ensureInitialized() {
500 INSTANCE.ensureInitializedInternal();
501 return null;
502 }
503 }
504
505 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
506 private static final CommunicationLinkDoesNotStartAtContainingElement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
507
508 private final PParameter parameter_Link = new PParameter("Link", "hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "DirectedCommunicationLink")), PParameterDirection.INOUT);
509
510 private final List<PParameter> parameters = Arrays.asList(parameter_Link);
511
512 private GeneratedPQuery() {
513 super(PVisibility.PUBLIC);
514 }
515
516 @Override
517 public String getFullyQualifiedName() {
518 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement";
519 }
520
521 @Override
522 public List<String> getParameterNames() {
523 return Arrays.asList("Link");
524 }
525
526 @Override
527 public List<PParameter> getParameters() {
528 return parameters;
529 }
530
531 @Override
532 public Set<PBody> doGetContainedBodies() {
533 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
534 Set<PBody> bodies = new LinkedHashSet<>();
535 {
536 PBody body = new PBody(this);
537 PVariable var_Link = body.getOrCreateVariableByName("Link");
538 PVariable var_Element = body.getOrCreateVariableByName("Element");
539 PVariable var_SourceComm = body.getOrCreateVariableByName("SourceComm");
540 PVariable var_SourceElement = body.getOrCreateVariableByName("SourceElement");
541 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
542 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
543 new ExportedParameter(body, var_Link, parameter_Link)
544 ));
545 // CommunicatingElement.communicationLink(Element, Link)
546 new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
547 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
548 new TypeConstraint(body, Tuples.flatTupleOf(var_Element, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "communicationLink")));
549 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
550 new Equality(body, var__virtual_0_, var_Link);
551 // DirectedCommunicationLink.source(Link, SourceComm)
552 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
553 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
554 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
555 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
556 new Equality(body, var__virtual_1_, var_SourceComm);
557 // CommunicatingElement.commSubsystem(SourceElement, SourceComm)
558 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceElement), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
559 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
560 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceElement, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
561 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
562 new Equality(body, var__virtual_2_, var_SourceComm);
563 // Element != SourceElement
564 new Inequality(body, var_Element, var_SourceElement);
565 bodies.add(body);
566 }
567 {
568 PAnnotation annotation = new PAnnotation("Constraint");
569 annotation.addAttribute("severity", "error");
570 annotation.addAttribute("key", Arrays.asList(new Object[] {
571 new ParameterReference("Link")
572 }));
573 annotation.addAttribute("message", "Communication links must start from the containing element.");
574 addAnnotation(annotation);
575 }
576 return bodies;
577 }
578 }
579}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java
new file mode 100644
index 00000000..f5835baf
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java
@@ -0,0 +1,557 @@
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.CommunicatingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink;
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.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
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;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
39import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
41import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
42
43/**
44 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
45 *
46 * <p>Original source:
47 * <code><pre>
48 * // No communication loops may exist
49 * // No spacecraft may directly communicate with itself
50 *
51 * {@literal @}Constraint(severity = "error", key = {Element},
52 * message = "Communication loop.")
53 * pattern communicationLoop(Element : CommunicatingElement) {
54 * find indirectCommunicationLink(Element, Element);
55 * }
56 * </pre></code>
57 *
58 * @see Matcher
59 * @see Match
60 *
61 */
62@SuppressWarnings("all")
63public final class CommunicationLoop extends BaseGeneratedEMFQuerySpecification<CommunicationLoop.Matcher> {
64 /**
65 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop pattern,
66 * to be used in conjunction with {@link Matcher}.
67 *
68 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
69 * Each instance is a (possibly partial) substitution of pattern parameters,
70 * usable to represent a match of the pattern in the result of a query,
71 * or to specify the bound (fixed) input parameters when issuing a query.
72 *
73 * @see Matcher
74 *
75 */
76 public static abstract class Match extends BasePatternMatch {
77 private CommunicatingElement fElement;
78
79 private static List<String> parameterNames = makeImmutableList("Element");
80
81 private Match(final CommunicatingElement pElement) {
82 this.fElement = pElement;
83 }
84
85 @Override
86 public Object get(final String parameterName) {
87 if ("Element".equals(parameterName)) return this.fElement;
88 return null;
89 }
90
91 public CommunicatingElement getElement() {
92 return this.fElement;
93 }
94
95 @Override
96 public boolean set(final String parameterName, final Object newValue) {
97 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
98 if ("Element".equals(parameterName) ) {
99 this.fElement = (CommunicatingElement) newValue;
100 return true;
101 }
102 return false;
103 }
104
105 public void setElement(final CommunicatingElement pElement) {
106 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
107 this.fElement = pElement;
108 }
109
110 @Override
111 public String patternName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop";
113 }
114
115 @Override
116 public List<String> parameterNames() {
117 return CommunicationLoop.Match.parameterNames;
118 }
119
120 @Override
121 public Object[] toArray() {
122 return new Object[]{fElement};
123 }
124
125 @Override
126 public CommunicationLoop.Match toImmutable() {
127 return isMutable() ? newMatch(fElement) : this;
128 }
129
130 @Override
131 public String prettyPrint() {
132 StringBuilder result = new StringBuilder();
133 result.append("\"Element\"=" + prettyPrintValue(fElement));
134 return result.toString();
135 }
136
137 @Override
138 public int hashCode() {
139 return Objects.hash(fElement);
140 }
141
142 @Override
143 public boolean equals(final Object obj) {
144 if (this == obj)
145 return true;
146 if (obj == null) {
147 return false;
148 }
149 if ((obj instanceof CommunicationLoop.Match)) {
150 CommunicationLoop.Match other = (CommunicationLoop.Match) obj;
151 return Objects.equals(fElement, other.fElement);
152 } else {
153 // this should be infrequent
154 if (!(obj instanceof IPatternMatch)) {
155 return false;
156 }
157 IPatternMatch otherSig = (IPatternMatch) obj;
158 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
159 }
160 }
161
162 @Override
163 public CommunicationLoop specification() {
164 return CommunicationLoop.instance();
165 }
166
167 /**
168 * Returns an empty, mutable match.
169 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
170 *
171 * @return the empty match.
172 *
173 */
174 public static CommunicationLoop.Match newEmptyMatch() {
175 return new Mutable(null);
176 }
177
178 /**
179 * Returns a mutable (partial) match.
180 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
181 *
182 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
183 * @return the new, mutable (partial) match object.
184 *
185 */
186 public static CommunicationLoop.Match newMutableMatch(final CommunicatingElement pElement) {
187 return new Mutable(pElement);
188 }
189
190 /**
191 * Returns a new (partial) match.
192 * This can be used e.g. to call the matcher with a partial match.
193 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
194 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
195 * @return the (partial) match object.
196 *
197 */
198 public static CommunicationLoop.Match newMatch(final CommunicatingElement pElement) {
199 return new Immutable(pElement);
200 }
201
202 private static final class Mutable extends CommunicationLoop.Match {
203 Mutable(final CommunicatingElement pElement) {
204 super(pElement);
205 }
206
207 @Override
208 public boolean isMutable() {
209 return true;
210 }
211 }
212
213 private static final class Immutable extends CommunicationLoop.Match {
214 Immutable(final CommunicatingElement pElement) {
215 super(pElement);
216 }
217
218 @Override
219 public boolean isMutable() {
220 return false;
221 }
222 }
223 }
224
225 /**
226 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop pattern,
227 * providing pattern-specific query methods.
228 *
229 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
230 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
231 *
232 * <p>Matches of the pattern will be represented as {@link Match}.
233 *
234 * <p>Original source:
235 * <code><pre>
236 * // No communication loops may exist
237 * // No spacecraft may directly communicate with itself
238 *
239 * {@literal @}Constraint(severity = "error", key = {Element},
240 * message = "Communication loop.")
241 * pattern communicationLoop(Element : CommunicatingElement) {
242 * find indirectCommunicationLink(Element, Element);
243 * }
244 * </pre></code>
245 *
246 * @see Match
247 * @see CommunicationLoop
248 *
249 */
250 public static class Matcher extends BaseMatcher<CommunicationLoop.Match> {
251 /**
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.
254 *
255 * @param engine the existing VIATRA Query engine in which this matcher will be created.
256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
257 *
258 */
259 public static CommunicationLoop.Matcher on(final ViatraQueryEngine engine) {
260 // check if matcher already exists
261 Matcher matcher = engine.getExistingMatcher(querySpecification());
262 if (matcher == null) {
263 matcher = (Matcher)engine.getMatcher(querySpecification());
264 }
265 return matcher;
266 }
267
268 /**
269 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
270 * @return an initialized matcher
271 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
272 *
273 */
274 public static CommunicationLoop.Matcher create() {
275 return new Matcher();
276 }
277
278 private static final int POSITION_ELEMENT = 0;
279
280 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CommunicationLoop.Matcher.class);
281
282 /**
283 * Initializes the pattern matcher within an existing VIATRA Query engine.
284 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
285 *
286 * @param engine the existing VIATRA Query engine in which this matcher will be created.
287 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
288 *
289 */
290 private Matcher() {
291 super(querySpecification());
292 }
293
294 /**
295 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
296 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
297 * @return matches represented as a Match object.
298 *
299 */
300 public Collection<CommunicationLoop.Match> getAllMatches(final CommunicatingElement pElement) {
301 return rawStreamAllMatches(new Object[]{pElement}).collect(Collectors.toSet());
302 }
303
304 /**
305 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
306 * </p>
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>.
309 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
310 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
311 * @return a stream of matches represented as a Match object.
312 *
313 */
314 public Stream<CommunicationLoop.Match> streamAllMatches(final CommunicatingElement pElement) {
315 return rawStreamAllMatches(new Object[]{pElement});
316 }
317
318 /**
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.
321 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
322 * @return a match represented as a Match object, or null if no match is found.
323 *
324 */
325 public Optional<CommunicationLoop.Match> getOneArbitraryMatch(final CommunicatingElement pElement) {
326 return rawGetOneArbitraryMatch(new Object[]{pElement});
327 }
328
329 /**
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).
332 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
333 * @return true if the input is a valid (partial) match of the pattern.
334 *
335 */
336 public boolean hasMatch(final CommunicatingElement pElement) {
337 return rawHasMatch(new Object[]{pElement});
338 }
339
340 /**
341 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
342 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
343 * @return the number of pattern matches found.
344 *
345 */
346 public int countMatches(final CommunicatingElement pElement) {
347 return rawCountMatches(new Object[]{pElement});
348 }
349
350 /**
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.
353 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
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
356 *
357 */
358 public boolean forOneArbitraryMatch(final CommunicatingElement pElement, final Consumer<? super CommunicationLoop.Match> processor) {
359 return rawForOneArbitraryMatch(new Object[]{pElement}, processor);
360 }
361
362 /**
363 * Returns a new (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.
366 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
367 * @return the (partial) match object.
368 *
369 */
370 public CommunicationLoop.Match newMatch(final CommunicatingElement pElement) {
371 return CommunicationLoop.Match.newMatch(pElement);
372 }
373
374 /**
375 * Retrieve the set of values that occur in matches for Element.
376 * @return the Set of all values or empty set if there are no matches
377 *
378 */
379 protected Stream<CommunicatingElement> rawStreamAllValuesOfElement(final Object[] parameters) {
380 return rawStreamAllValues(POSITION_ELEMENT, parameters).map(CommunicatingElement.class::cast);
381 }
382
383 /**
384 * Retrieve the set of values that occur in matches for Element.
385 * @return the Set of all values or empty set if there are no matches
386 *
387 */
388 public Set<CommunicatingElement> getAllValuesOfElement() {
389 return rawStreamAllValuesOfElement(emptyArray()).collect(Collectors.toSet());
390 }
391
392 /**
393 * Retrieve the set of values that occur in matches for Element.
394 * @return the Set of all values or empty set if there are no matches
395 *
396 */
397 public Stream<CommunicatingElement> streamAllValuesOfElement() {
398 return rawStreamAllValuesOfElement(emptyArray());
399 }
400
401 @Override
402 protected CommunicationLoop.Match tupleToMatch(final Tuple t) {
403 try {
404 return CommunicationLoop.Match.newMatch((CommunicatingElement) t.get(POSITION_ELEMENT));
405 } catch(ClassCastException e) {
406 LOGGER.error("Element(s) in tuple not properly typed!",e);
407 return null;
408 }
409 }
410
411 @Override
412 protected CommunicationLoop.Match arrayToMatch(final Object[] match) {
413 try {
414 return CommunicationLoop.Match.newMatch((CommunicatingElement) match[POSITION_ELEMENT]);
415 } catch(ClassCastException e) {
416 LOGGER.error("Element(s) in array not properly typed!",e);
417 return null;
418 }
419 }
420
421 @Override
422 protected CommunicationLoop.Match arrayToMatchMutable(final Object[] match) {
423 try {
424 return CommunicationLoop.Match.newMutableMatch((CommunicatingElement) match[POSITION_ELEMENT]);
425 } catch(ClassCastException e) {
426 LOGGER.error("Element(s) in array not properly typed!",e);
427 return null;
428 }
429 }
430
431 /**
432 * @return the singleton instance of the query specification of this pattern
433 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
434 *
435 */
436 public static IQuerySpecification<CommunicationLoop.Matcher> querySpecification() {
437 return CommunicationLoop.instance();
438 }
439 }
440
441 private CommunicationLoop() {
442 super(GeneratedPQuery.INSTANCE);
443 }
444
445 /**
446 * @return the singleton instance of the query specification
447 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
448 *
449 */
450 public static CommunicationLoop instance() {
451 try{
452 return LazyHolder.INSTANCE;
453 } catch (ExceptionInInitializerError err) {
454 throw processInitializerError(err);
455 }
456 }
457
458 @Override
459 protected CommunicationLoop.Matcher instantiate(final ViatraQueryEngine engine) {
460 return CommunicationLoop.Matcher.on(engine);
461 }
462
463 @Override
464 public CommunicationLoop.Matcher instantiate() {
465 return CommunicationLoop.Matcher.create();
466 }
467
468 @Override
469 public CommunicationLoop.Match newEmptyMatch() {
470 return CommunicationLoop.Match.newEmptyMatch();
471 }
472
473 @Override
474 public CommunicationLoop.Match newMatch(final Object... parameters) {
475 return CommunicationLoop.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement) parameters[0]);
476 }
477
478 /**
479 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop (visibility: PUBLIC, simpleName: CommunicationLoop, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop, 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,
481 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop (visibility: PUBLIC, simpleName: CommunicationLoop, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop, 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 *
483 * <p> This workaround is required e.g. to support recursion.
484 *
485 */
486 private static class LazyHolder {
487 private static final CommunicationLoop INSTANCE = new CommunicationLoop();
488
489 /**
490 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
491 * This initialization order is required to support indirect recursion.
492 *
493 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
494 *
495 */
496 private static final Object STATIC_INITIALIZER = ensureInitialized();
497
498 public static Object ensureInitialized() {
499 INSTANCE.ensureInitializedInternal();
500 return null;
501 }
502 }
503
504 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
505 private static final CommunicationLoop.GeneratedPQuery INSTANCE = new GeneratedPQuery();
506
507 private final PParameter parameter_Element = new PParameter("Element", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
508
509 private final List<PParameter> parameters = Arrays.asList(parameter_Element);
510
511 private GeneratedPQuery() {
512 super(PVisibility.PUBLIC);
513 }
514
515 @Override
516 public String getFullyQualifiedName() {
517 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop";
518 }
519
520 @Override
521 public List<String> getParameterNames() {
522 return Arrays.asList("Element");
523 }
524
525 @Override
526 public List<PParameter> getParameters() {
527 return parameters;
528 }
529
530 @Override
531 public Set<PBody> doGetContainedBodies() {
532 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
533 Set<PBody> bodies = new LinkedHashSet<>();
534 {
535 PBody body = new PBody(this);
536 PVariable var_Element = body.getOrCreateVariableByName("Element");
537 new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
538 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
539 new ExportedParameter(body, var_Element, parameter_Element)
540 ));
541 // find indirectCommunicationLink(Element, Element)
542 new PositivePatternCall(body, Tuples.flatTupleOf(var_Element, var_Element), IndirectCommunicationLink.instance().getInternalQueryRepresentation());
543 bodies.add(body);
544 }
545 {
546 PAnnotation annotation = new PAnnotation("Constraint");
547 annotation.addAttribute("severity", "error");
548 annotation.addAttribute("key", Arrays.asList(new Object[] {
549 new ParameterReference("Element")
550 }));
551 annotation.addAttribute("message", "Communication loop.");
552 addAnnotation(annotation);
553 }
554 return bodies;
555 }
556 }
557}
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
new file mode 100644
index 00000000..c15563ff
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java
@@ -0,0 +1,573 @@
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.queries.internal.SmallSat;
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.emf.types.EStructuralFeatureInstancesKey;
31import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
33import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
34import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
35import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
40import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
43import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
44import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
45import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
46import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
47
48/**
49 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
50 *
51 * <p>Original source:
52 * <code><pre>
53 * // Only a Small Satellite can be configured with a Ka-band communication system
54 *
55 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
56 * message = "Only a Small Satellite can be configured with a Ka-band communication system.")
57 * pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) {
58 * CommunicatingElement.commSubsystem.band(Spacecraft, TransceiverBand::Ka);
59 * neg find smallSat(Spacecraft);
60 * }
61 * </pre></code>
62 *
63 * @see Matcher
64 * @see Match
65 *
66 */
67@SuppressWarnings("all")
68public final class CubeSatWithKaAntenna extends BaseGeneratedEMFQuerySpecification<CubeSatWithKaAntenna.Matcher> {
69 /**
70 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna 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 static List<String> parameterNames = makeImmutableList("Spacecraft");
85
86 private Match(final Spacecraft pSpacecraft) {
87 this.fSpacecraft = pSpacecraft;
88 }
89
90 @Override
91 public Object get(final String parameterName) {
92 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
93 return null;
94 }
95
96 public Spacecraft getSpacecraft() {
97 return this.fSpacecraft;
98 }
99
100 @Override
101 public boolean set(final String parameterName, final Object newValue) {
102 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
103 if ("Spacecraft".equals(parameterName) ) {
104 this.fSpacecraft = (Spacecraft) newValue;
105 return true;
106 }
107 return false;
108 }
109
110 public void setSpacecraft(final Spacecraft pSpacecraft) {
111 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
112 this.fSpacecraft = pSpacecraft;
113 }
114
115 @Override
116 public String patternName() {
117 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna";
118 }
119
120 @Override
121 public List<String> parameterNames() {
122 return CubeSatWithKaAntenna.Match.parameterNames;
123 }
124
125 @Override
126 public Object[] toArray() {
127 return new Object[]{fSpacecraft};
128 }
129
130 @Override
131 public CubeSatWithKaAntenna.Match toImmutable() {
132 return isMutable() ? newMatch(fSpacecraft) : this;
133 }
134
135 @Override
136 public String prettyPrint() {
137 StringBuilder result = new StringBuilder();
138 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft));
139 return result.toString();
140 }
141
142 @Override
143 public int hashCode() {
144 return Objects.hash(fSpacecraft);
145 }
146
147 @Override
148 public boolean equals(final Object obj) {
149 if (this == obj)
150 return true;
151 if (obj == null) {
152 return false;
153 }
154 if ((obj instanceof CubeSatWithKaAntenna.Match)) {
155 CubeSatWithKaAntenna.Match other = (CubeSatWithKaAntenna.Match) obj;
156 return Objects.equals(fSpacecraft, other.fSpacecraft);
157 } else {
158 // this should be infrequent
159 if (!(obj instanceof IPatternMatch)) {
160 return false;
161 }
162 IPatternMatch otherSig = (IPatternMatch) obj;
163 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
164 }
165 }
166
167 @Override
168 public CubeSatWithKaAntenna specification() {
169 return CubeSatWithKaAntenna.instance();
170 }
171
172 /**
173 * Returns an empty, mutable match.
174 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
175 *
176 * @return the empty match.
177 *
178 */
179 public static CubeSatWithKaAntenna.Match newEmptyMatch() {
180 return new Mutable(null);
181 }
182
183 /**
184 * Returns a mutable (partial) match.
185 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
186 *
187 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
188 * @return the new, mutable (partial) match object.
189 *
190 */
191 public static CubeSatWithKaAntenna.Match newMutableMatch(final Spacecraft pSpacecraft) {
192 return new Mutable(pSpacecraft);
193 }
194
195 /**
196 * Returns a new (partial) match.
197 * This can be used e.g. to call the matcher with a partial match.
198 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
199 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
200 * @return the (partial) match object.
201 *
202 */
203 public static CubeSatWithKaAntenna.Match newMatch(final Spacecraft pSpacecraft) {
204 return new Immutable(pSpacecraft);
205 }
206
207 private static final class Mutable extends CubeSatWithKaAntenna.Match {
208 Mutable(final Spacecraft pSpacecraft) {
209 super(pSpacecraft);
210 }
211
212 @Override
213 public boolean isMutable() {
214 return true;
215 }
216 }
217
218 private static final class Immutable extends CubeSatWithKaAntenna.Match {
219 Immutable(final Spacecraft pSpacecraft) {
220 super(pSpacecraft);
221 }
222
223 @Override
224 public boolean isMutable() {
225 return false;
226 }
227 }
228 }
229
230 /**
231 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna pattern,
232 * providing pattern-specific query methods.
233 *
234 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
235 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
236 *
237 * <p>Matches of the pattern will be represented as {@link Match}.
238 *
239 * <p>Original source:
240 * <code><pre>
241 * // Only a Small Satellite can be configured with a Ka-band communication system
242 *
243 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
244 * message = "Only a Small Satellite can be configured with a Ka-band communication system.")
245 * pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) {
246 * CommunicatingElement.commSubsystem.band(Spacecraft, TransceiverBand::Ka);
247 * neg find smallSat(Spacecraft);
248 * }
249 * </pre></code>
250 *
251 * @see Match
252 * @see CubeSatWithKaAntenna
253 *
254 */
255 public static class Matcher extends BaseMatcher<CubeSatWithKaAntenna.Match> {
256 /**
257 * Initializes the pattern matcher within an existing VIATRA Query engine.
258 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
259 *
260 * @param engine the existing VIATRA Query engine in which this matcher will be created.
261 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
262 *
263 */
264 public static CubeSatWithKaAntenna.Matcher on(final ViatraQueryEngine engine) {
265 // check if matcher already exists
266 Matcher matcher = engine.getExistingMatcher(querySpecification());
267 if (matcher == null) {
268 matcher = (Matcher)engine.getMatcher(querySpecification());
269 }
270 return matcher;
271 }
272
273 /**
274 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
275 * @return an initialized matcher
276 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
277 *
278 */
279 public static CubeSatWithKaAntenna.Matcher create() {
280 return new Matcher();
281 }
282
283 private static final int POSITION_SPACECRAFT = 0;
284
285 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CubeSatWithKaAntenna.Matcher.class);
286
287 /**
288 * Initializes the pattern matcher within an existing VIATRA Query engine.
289 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
290 *
291 * @param engine the existing VIATRA Query engine in which this matcher will be created.
292 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
293 *
294 */
295 private Matcher() {
296 super(querySpecification());
297 }
298
299 /**
300 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
301 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
302 * @return matches represented as a Match object.
303 *
304 */
305 public Collection<CubeSatWithKaAntenna.Match> getAllMatches(final Spacecraft pSpacecraft) {
306 return rawStreamAllMatches(new Object[]{pSpacecraft}).collect(Collectors.toSet());
307 }
308
309 /**
310 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
311 * </p>
312 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
313 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
314 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
315 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
316 * @return a stream of matches represented as a Match object.
317 *
318 */
319 public Stream<CubeSatWithKaAntenna.Match> streamAllMatches(final Spacecraft pSpacecraft) {
320 return rawStreamAllMatches(new Object[]{pSpacecraft});
321 }
322
323 /**
324 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
325 * Neither determinism nor randomness of selection is guaranteed.
326 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
327 * @return a match represented as a Match object, or null if no match is found.
328 *
329 */
330 public Optional<CubeSatWithKaAntenna.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) {
331 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft});
332 }
333
334 /**
335 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
336 * under any possible substitution of the unspecified parameters (if any).
337 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
338 * @return true if the input is a valid (partial) match of the pattern.
339 *
340 */
341 public boolean hasMatch(final Spacecraft pSpacecraft) {
342 return rawHasMatch(new Object[]{pSpacecraft});
343 }
344
345 /**
346 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
347 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
348 * @return the number of pattern matches found.
349 *
350 */
351 public int countMatches(final Spacecraft pSpacecraft) {
352 return rawCountMatches(new Object[]{pSpacecraft});
353 }
354
355 /**
356 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
357 * Neither determinism nor randomness of selection is guaranteed.
358 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
359 * @param processor the action that will process the selected match.
360 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
361 *
362 */
363 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final Consumer<? super CubeSatWithKaAntenna.Match> processor) {
364 return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, processor);
365 }
366
367 /**
368 * Returns a new (partial) match.
369 * This can be used e.g. to call the matcher with a partial match.
370 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
371 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
372 * @return the (partial) match object.
373 *
374 */
375 public CubeSatWithKaAntenna.Match newMatch(final Spacecraft pSpacecraft) {
376 return CubeSatWithKaAntenna.Match.newMatch(pSpacecraft);
377 }
378
379 /**
380 * Retrieve the set of values that occur in matches for Spacecraft.
381 * @return the Set of all values or empty set if there are no matches
382 *
383 */
384 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
385 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
386 }
387
388 /**
389 * Retrieve the set of values that occur in matches for Spacecraft.
390 * @return the Set of all values or empty set if there are no matches
391 *
392 */
393 public Set<Spacecraft> getAllValuesOfSpacecraft() {
394 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
395 }
396
397 /**
398 * Retrieve the set of values that occur in matches for Spacecraft.
399 * @return the Set of all values or empty set if there are no matches
400 *
401 */
402 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
403 return rawStreamAllValuesOfSpacecraft(emptyArray());
404 }
405
406 @Override
407 protected CubeSatWithKaAntenna.Match tupleToMatch(final Tuple t) {
408 try {
409 return CubeSatWithKaAntenna.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT));
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in tuple not properly typed!",e);
412 return null;
413 }
414 }
415
416 @Override
417 protected CubeSatWithKaAntenna.Match arrayToMatch(final Object[] match) {
418 try {
419 return CubeSatWithKaAntenna.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]);
420 } catch(ClassCastException e) {
421 LOGGER.error("Element(s) in array not properly typed!",e);
422 return null;
423 }
424 }
425
426 @Override
427 protected CubeSatWithKaAntenna.Match arrayToMatchMutable(final Object[] match) {
428 try {
429 return CubeSatWithKaAntenna.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]);
430 } catch(ClassCastException e) {
431 LOGGER.error("Element(s) in array not properly typed!",e);
432 return null;
433 }
434 }
435
436 /**
437 * @return the singleton instance of the query specification of this pattern
438 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
439 *
440 */
441 public static IQuerySpecification<CubeSatWithKaAntenna.Matcher> querySpecification() {
442 return CubeSatWithKaAntenna.instance();
443 }
444 }
445
446 private CubeSatWithKaAntenna() {
447 super(GeneratedPQuery.INSTANCE);
448 }
449
450 /**
451 * @return the singleton instance of the query specification
452 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
453 *
454 */
455 public static CubeSatWithKaAntenna instance() {
456 try{
457 return LazyHolder.INSTANCE;
458 } catch (ExceptionInInitializerError err) {
459 throw processInitializerError(err);
460 }
461 }
462
463 @Override
464 protected CubeSatWithKaAntenna.Matcher instantiate(final ViatraQueryEngine engine) {
465 return CubeSatWithKaAntenna.Matcher.on(engine);
466 }
467
468 @Override
469 public CubeSatWithKaAntenna.Matcher instantiate() {
470 return CubeSatWithKaAntenna.Matcher.create();
471 }
472
473 @Override
474 public CubeSatWithKaAntenna.Match newEmptyMatch() {
475 return CubeSatWithKaAntenna.Match.newEmptyMatch();
476 }
477
478 @Override
479 public CubeSatWithKaAntenna.Match newMatch(final Object... parameters) {
480 return CubeSatWithKaAntenna.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft) parameters[0]);
481 }
482
483 /**
484 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna (visibility: PUBLIC, simpleName: CubeSatWithKaAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna, 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
485 * <b>not</b> at the class load time of the outer class,
486 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna (visibility: PUBLIC, simpleName: CubeSatWithKaAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
487 *
488 * <p> This workaround is required e.g. to support recursion.
489 *
490 */
491 private static class LazyHolder {
492 private static final CubeSatWithKaAntenna INSTANCE = new CubeSatWithKaAntenna();
493
494 /**
495 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
496 * This initialization order is required to support indirect recursion.
497 *
498 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
499 *
500 */
501 private static final Object STATIC_INITIALIZER = ensureInitialized();
502
503 public static Object ensureInitialized() {
504 INSTANCE.ensureInitializedInternal();
505 return null;
506 }
507 }
508
509 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
510 private static final CubeSatWithKaAntenna.GeneratedPQuery INSTANCE = new GeneratedPQuery();
511
512 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);
513
514 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
515
516 private GeneratedPQuery() {
517 super(PVisibility.PUBLIC);
518 }
519
520 @Override
521 public String getFullyQualifiedName() {
522 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna";
523 }
524
525 @Override
526 public List<String> getParameterNames() {
527 return Arrays.asList("Spacecraft");
528 }
529
530 @Override
531 public List<PParameter> getParameters() {
532 return parameters;
533 }
534
535 @Override
536 public Set<PBody> doGetContainedBodies() {
537 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
538 Set<PBody> bodies = new LinkedHashSet<>();
539 {
540 PBody body = new PBody(this);
541 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
542 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
543 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
544 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
545 ));
546 // CommunicatingElement.commSubsystem.band(Spacecraft, TransceiverBand::Ka)
547 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
548 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "Ka").getInstance());
549 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
550 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
551 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
552 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
553 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
554 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
555 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
556 new Equality(body, var__virtual_2_, var__virtual_0_);
557 // neg find smallSat(Spacecraft)
558 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft), SmallSat.instance().getInternalQueryRepresentation());
559 bodies.add(body);
560 }
561 {
562 PAnnotation annotation = new PAnnotation("Constraint");
563 annotation.addAttribute("severity", "error");
564 annotation.addAttribute("key", Arrays.asList(new Object[] {
565 new ParameterReference("Spacecraft")
566 }));
567 annotation.addAttribute("message", "Only a Small Satellite can be configured with a Ka-band communication system.");
568 addAnnotation(annotation);
569 }
570 return bodies;
571 }
572 }
573}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java
new file mode 100644
index 00000000..4cacc34b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java
@@ -0,0 +1,586 @@
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.DirectedCommunicationLink;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand;
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.emf.types.EStructuralFeatureInstancesKey;
31import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
33import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
34import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
35import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
43import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
44import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
45import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
46
47/**
48 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
49 *
50 * <p>Original source:
51 * <code><pre>
52 * // Source and target communication systems must be compatible.
53 *
54 * {@literal @}Constraint(severity = "error", key = {Link},
55 * message = "Two ends of a communication link must use the same band.")
56 * pattern incompatibleSourceAndTargetBand(Link : DirectedCommunicationLink) {
57 * DirectedCommunicationLink.source(Link, SourceSubsystem);
58 * DirectedCommunicationLink.target(Link, TargetSubsystem);
59 * CommSubsystem.band(SourceSubsystem, Band);
60 * neg find commSubsystemBand(TargetSubsystem, Band);
61 * }
62 * </pre></code>
63 *
64 * @see Matcher
65 * @see Match
66 *
67 */
68@SuppressWarnings("all")
69public final class IncompatibleSourceAndTargetBand extends BaseGeneratedEMFQuerySpecification<IncompatibleSourceAndTargetBand.Matcher> {
70 /**
71 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand pattern,
72 * to be used in conjunction with {@link Matcher}.
73 *
74 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
75 * Each instance is a (possibly partial) substitution of pattern parameters,
76 * usable to represent a match of the pattern in the result of a query,
77 * or to specify the bound (fixed) input parameters when issuing a query.
78 *
79 * @see Matcher
80 *
81 */
82 public static abstract class Match extends BasePatternMatch {
83 private DirectedCommunicationLink fLink;
84
85 private static List<String> parameterNames = makeImmutableList("Link");
86
87 private Match(final DirectedCommunicationLink pLink) {
88 this.fLink = pLink;
89 }
90
91 @Override
92 public Object get(final String parameterName) {
93 if ("Link".equals(parameterName)) return this.fLink;
94 return null;
95 }
96
97 public DirectedCommunicationLink getLink() {
98 return this.fLink;
99 }
100
101 @Override
102 public boolean set(final String parameterName, final Object newValue) {
103 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
104 if ("Link".equals(parameterName) ) {
105 this.fLink = (DirectedCommunicationLink) newValue;
106 return true;
107 }
108 return false;
109 }
110
111 public void setLink(final DirectedCommunicationLink pLink) {
112 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
113 this.fLink = pLink;
114 }
115
116 @Override
117 public String patternName() {
118 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand";
119 }
120
121 @Override
122 public List<String> parameterNames() {
123 return IncompatibleSourceAndTargetBand.Match.parameterNames;
124 }
125
126 @Override
127 public Object[] toArray() {
128 return new Object[]{fLink};
129 }
130
131 @Override
132 public IncompatibleSourceAndTargetBand.Match toImmutable() {
133 return isMutable() ? newMatch(fLink) : this;
134 }
135
136 @Override
137 public String prettyPrint() {
138 StringBuilder result = new StringBuilder();
139 result.append("\"Link\"=" + prettyPrintValue(fLink));
140 return result.toString();
141 }
142
143 @Override
144 public int hashCode() {
145 return Objects.hash(fLink);
146 }
147
148 @Override
149 public boolean equals(final Object obj) {
150 if (this == obj)
151 return true;
152 if (obj == null) {
153 return false;
154 }
155 if ((obj instanceof IncompatibleSourceAndTargetBand.Match)) {
156 IncompatibleSourceAndTargetBand.Match other = (IncompatibleSourceAndTargetBand.Match) obj;
157 return Objects.equals(fLink, other.fLink);
158 } else {
159 // this should be infrequent
160 if (!(obj instanceof IPatternMatch)) {
161 return false;
162 }
163 IPatternMatch otherSig = (IPatternMatch) obj;
164 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
165 }
166 }
167
168 @Override
169 public IncompatibleSourceAndTargetBand specification() {
170 return IncompatibleSourceAndTargetBand.instance();
171 }
172
173 /**
174 * Returns an empty, mutable match.
175 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
176 *
177 * @return the empty match.
178 *
179 */
180 public static IncompatibleSourceAndTargetBand.Match newEmptyMatch() {
181 return new Mutable(null);
182 }
183
184 /**
185 * Returns a mutable (partial) match.
186 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
187 *
188 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
189 * @return the new, mutable (partial) match object.
190 *
191 */
192 public static IncompatibleSourceAndTargetBand.Match newMutableMatch(final DirectedCommunicationLink pLink) {
193 return new Mutable(pLink);
194 }
195
196 /**
197 * Returns a new (partial) match.
198 * This can be used e.g. to call the matcher with a partial match.
199 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
200 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
201 * @return the (partial) match object.
202 *
203 */
204 public static IncompatibleSourceAndTargetBand.Match newMatch(final DirectedCommunicationLink pLink) {
205 return new Immutable(pLink);
206 }
207
208 private static final class Mutable extends IncompatibleSourceAndTargetBand.Match {
209 Mutable(final DirectedCommunicationLink pLink) {
210 super(pLink);
211 }
212
213 @Override
214 public boolean isMutable() {
215 return true;
216 }
217 }
218
219 private static final class Immutable extends IncompatibleSourceAndTargetBand.Match {
220 Immutable(final DirectedCommunicationLink pLink) {
221 super(pLink);
222 }
223
224 @Override
225 public boolean isMutable() {
226 return false;
227 }
228 }
229 }
230
231 /**
232 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand pattern,
233 * providing pattern-specific query methods.
234 *
235 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
236 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
237 *
238 * <p>Matches of the pattern will be represented as {@link Match}.
239 *
240 * <p>Original source:
241 * <code><pre>
242 * // Source and target communication systems must be compatible.
243 *
244 * {@literal @}Constraint(severity = "error", key = {Link},
245 * message = "Two ends of a communication link must use the same band.")
246 * pattern incompatibleSourceAndTargetBand(Link : DirectedCommunicationLink) {
247 * DirectedCommunicationLink.source(Link, SourceSubsystem);
248 * DirectedCommunicationLink.target(Link, TargetSubsystem);
249 * CommSubsystem.band(SourceSubsystem, Band);
250 * neg find commSubsystemBand(TargetSubsystem, Band);
251 * }
252 * </pre></code>
253 *
254 * @see Match
255 * @see IncompatibleSourceAndTargetBand
256 *
257 */
258 public static class Matcher extends BaseMatcher<IncompatibleSourceAndTargetBand.Match> {
259 /**
260 * Initializes the pattern matcher within an existing VIATRA Query engine.
261 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
262 *
263 * @param engine the existing VIATRA Query engine in which this matcher will be created.
264 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
265 *
266 */
267 public static IncompatibleSourceAndTargetBand.Matcher on(final ViatraQueryEngine engine) {
268 // check if matcher already exists
269 Matcher matcher = engine.getExistingMatcher(querySpecification());
270 if (matcher == null) {
271 matcher = (Matcher)engine.getMatcher(querySpecification());
272 }
273 return matcher;
274 }
275
276 /**
277 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
278 * @return an initialized matcher
279 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
280 *
281 */
282 public static IncompatibleSourceAndTargetBand.Matcher create() {
283 return new Matcher();
284 }
285
286 private static final int POSITION_LINK = 0;
287
288 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(IncompatibleSourceAndTargetBand.Matcher.class);
289
290 /**
291 * Initializes the pattern matcher within an existing VIATRA Query engine.
292 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
293 *
294 * @param engine the existing VIATRA Query engine in which this matcher will be created.
295 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
296 *
297 */
298 private Matcher() {
299 super(querySpecification());
300 }
301
302 /**
303 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
304 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
305 * @return matches represented as a Match object.
306 *
307 */
308 public Collection<IncompatibleSourceAndTargetBand.Match> getAllMatches(final DirectedCommunicationLink pLink) {
309 return rawStreamAllMatches(new Object[]{pLink}).collect(Collectors.toSet());
310 }
311
312 /**
313 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
314 * </p>
315 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
316 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
317 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
318 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
319 * @return a stream of matches represented as a Match object.
320 *
321 */
322 public Stream<IncompatibleSourceAndTargetBand.Match> streamAllMatches(final DirectedCommunicationLink pLink) {
323 return rawStreamAllMatches(new Object[]{pLink});
324 }
325
326 /**
327 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
328 * Neither determinism nor randomness of selection is guaranteed.
329 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
330 * @return a match represented as a Match object, or null if no match is found.
331 *
332 */
333 public Optional<IncompatibleSourceAndTargetBand.Match> getOneArbitraryMatch(final DirectedCommunicationLink pLink) {
334 return rawGetOneArbitraryMatch(new Object[]{pLink});
335 }
336
337 /**
338 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
339 * under any possible substitution of the unspecified parameters (if any).
340 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
341 * @return true if the input is a valid (partial) match of the pattern.
342 *
343 */
344 public boolean hasMatch(final DirectedCommunicationLink pLink) {
345 return rawHasMatch(new Object[]{pLink});
346 }
347
348 /**
349 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
350 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
351 * @return the number of pattern matches found.
352 *
353 */
354 public int countMatches(final DirectedCommunicationLink pLink) {
355 return rawCountMatches(new Object[]{pLink});
356 }
357
358 /**
359 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
360 * Neither determinism nor randomness of selection is guaranteed.
361 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
362 * @param processor the action that will process the selected match.
363 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
364 *
365 */
366 public boolean forOneArbitraryMatch(final DirectedCommunicationLink pLink, final Consumer<? super IncompatibleSourceAndTargetBand.Match> processor) {
367 return rawForOneArbitraryMatch(new Object[]{pLink}, processor);
368 }
369
370 /**
371 * Returns a new (partial) match.
372 * This can be used e.g. to call the matcher with a partial match.
373 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
374 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
375 * @return the (partial) match object.
376 *
377 */
378 public IncompatibleSourceAndTargetBand.Match newMatch(final DirectedCommunicationLink pLink) {
379 return IncompatibleSourceAndTargetBand.Match.newMatch(pLink);
380 }
381
382 /**
383 * Retrieve the set of values that occur in matches for Link.
384 * @return the Set of all values or empty set if there are no matches
385 *
386 */
387 protected Stream<DirectedCommunicationLink> rawStreamAllValuesOfLink(final Object[] parameters) {
388 return rawStreamAllValues(POSITION_LINK, parameters).map(DirectedCommunicationLink.class::cast);
389 }
390
391 /**
392 * Retrieve the set of values that occur in matches for Link.
393 * @return the Set of all values or empty set if there are no matches
394 *
395 */
396 public Set<DirectedCommunicationLink> getAllValuesOfLink() {
397 return rawStreamAllValuesOfLink(emptyArray()).collect(Collectors.toSet());
398 }
399
400 /**
401 * Retrieve the set of values that occur in matches for Link.
402 * @return the Set of all values or empty set if there are no matches
403 *
404 */
405 public Stream<DirectedCommunicationLink> streamAllValuesOfLink() {
406 return rawStreamAllValuesOfLink(emptyArray());
407 }
408
409 @Override
410 protected IncompatibleSourceAndTargetBand.Match tupleToMatch(final Tuple t) {
411 try {
412 return IncompatibleSourceAndTargetBand.Match.newMatch((DirectedCommunicationLink) t.get(POSITION_LINK));
413 } catch(ClassCastException e) {
414 LOGGER.error("Element(s) in tuple not properly typed!",e);
415 return null;
416 }
417 }
418
419 @Override
420 protected IncompatibleSourceAndTargetBand.Match arrayToMatch(final Object[] match) {
421 try {
422 return IncompatibleSourceAndTargetBand.Match.newMatch((DirectedCommunicationLink) match[POSITION_LINK]);
423 } catch(ClassCastException e) {
424 LOGGER.error("Element(s) in array not properly typed!",e);
425 return null;
426 }
427 }
428
429 @Override
430 protected IncompatibleSourceAndTargetBand.Match arrayToMatchMutable(final Object[] match) {
431 try {
432 return IncompatibleSourceAndTargetBand.Match.newMutableMatch((DirectedCommunicationLink) match[POSITION_LINK]);
433 } catch(ClassCastException e) {
434 LOGGER.error("Element(s) in array not properly typed!",e);
435 return null;
436 }
437 }
438
439 /**
440 * @return the singleton instance of the query specification of this pattern
441 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
442 *
443 */
444 public static IQuerySpecification<IncompatibleSourceAndTargetBand.Matcher> querySpecification() {
445 return IncompatibleSourceAndTargetBand.instance();
446 }
447 }
448
449 private IncompatibleSourceAndTargetBand() {
450 super(GeneratedPQuery.INSTANCE);
451 }
452
453 /**
454 * @return the singleton instance of the query specification
455 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
456 *
457 */
458 public static IncompatibleSourceAndTargetBand instance() {
459 try{
460 return LazyHolder.INSTANCE;
461 } catch (ExceptionInInitializerError err) {
462 throw processInitializerError(err);
463 }
464 }
465
466 @Override
467 protected IncompatibleSourceAndTargetBand.Matcher instantiate(final ViatraQueryEngine engine) {
468 return IncompatibleSourceAndTargetBand.Matcher.on(engine);
469 }
470
471 @Override
472 public IncompatibleSourceAndTargetBand.Matcher instantiate() {
473 return IncompatibleSourceAndTargetBand.Matcher.create();
474 }
475
476 @Override
477 public IncompatibleSourceAndTargetBand.Match newEmptyMatch() {
478 return IncompatibleSourceAndTargetBand.Match.newEmptyMatch();
479 }
480
481 @Override
482 public IncompatibleSourceAndTargetBand.Match newMatch(final Object... parameters) {
483 return IncompatibleSourceAndTargetBand.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink) parameters[0]);
484 }
485
486 /**
487 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand (visibility: PUBLIC, simpleName: IncompatibleSourceAndTargetBand, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand, 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
488 * <b>not</b> at the class load time of the outer class,
489 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand (visibility: PUBLIC, simpleName: IncompatibleSourceAndTargetBand, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
490 *
491 * <p> This workaround is required e.g. to support recursion.
492 *
493 */
494 private static class LazyHolder {
495 private static final IncompatibleSourceAndTargetBand INSTANCE = new IncompatibleSourceAndTargetBand();
496
497 /**
498 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
499 * This initialization order is required to support indirect recursion.
500 *
501 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
502 *
503 */
504 private static final Object STATIC_INITIALIZER = ensureInitialized();
505
506 public static Object ensureInitialized() {
507 INSTANCE.ensureInitializedInternal();
508 return null;
509 }
510 }
511
512 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
513 private static final IncompatibleSourceAndTargetBand.GeneratedPQuery INSTANCE = new GeneratedPQuery();
514
515 private final PParameter parameter_Link = new PParameter("Link", "hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "DirectedCommunicationLink")), PParameterDirection.INOUT);
516
517 private final List<PParameter> parameters = Arrays.asList(parameter_Link);
518
519 private GeneratedPQuery() {
520 super(PVisibility.PUBLIC);
521 }
522
523 @Override
524 public String getFullyQualifiedName() {
525 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand";
526 }
527
528 @Override
529 public List<String> getParameterNames() {
530 return Arrays.asList("Link");
531 }
532
533 @Override
534 public List<PParameter> getParameters() {
535 return parameters;
536 }
537
538 @Override
539 public Set<PBody> doGetContainedBodies() {
540 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
541 Set<PBody> bodies = new LinkedHashSet<>();
542 {
543 PBody body = new PBody(this);
544 PVariable var_Link = body.getOrCreateVariableByName("Link");
545 PVariable var_SourceSubsystem = body.getOrCreateVariableByName("SourceSubsystem");
546 PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem");
547 PVariable var_Band = body.getOrCreateVariableByName("Band");
548 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
549 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
550 new ExportedParameter(body, var_Link, parameter_Link)
551 ));
552 // DirectedCommunicationLink.source(Link, SourceSubsystem)
553 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
554 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
555 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
556 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
557 new Equality(body, var__virtual_0_, var_SourceSubsystem);
558 // DirectedCommunicationLink.target(Link, TargetSubsystem)
559 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
560 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
561 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target")));
562 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
563 new Equality(body, var__virtual_1_, var_TargetSubsystem);
564 // CommSubsystem.band(SourceSubsystem, Band)
565 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
566 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
567 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
568 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
569 new Equality(body, var__virtual_2_, var_Band);
570 // neg find commSubsystemBand(TargetSubsystem, Band)
571 new NegativePatternCall(body, Tuples.flatTupleOf(var_TargetSubsystem, var_Band), CommSubsystemBand.instance().getInternalQueryRepresentation());
572 bodies.add(body);
573 }
574 {
575 PAnnotation annotation = new PAnnotation("Constraint");
576 annotation.addAttribute("severity", "error");
577 annotation.addAttribute("key", Arrays.asList(new Object[] {
578 new ParameterReference("Link")
579 }));
580 annotation.addAttribute("message", "Two ends of a communication link must use the same band.");
581 addAnnotation(annotation);
582 }
583 return bodies;
584 }
585 }
586}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetGain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetGain.java
new file mode 100644
index 00000000..3f247613
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetGain.java
@@ -0,0 +1,582 @@
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.DirectedCommunicationLink;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain;
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.emf.types.EStructuralFeatureInstancesKey;
31import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
33import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
34import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
35import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
43import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
44import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
45import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
46
47/**
48 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
49 *
50 * <p>Original source:
51 * <code><pre>
52 * {@literal @}Constraint(severity = "error", key = {Link},
53 * message = "Two ends of a communication link must use the same antenna gain.")
54 * pattern incompatibleSourceAndTargetGain(Link : DirectedCommunicationLink) {
55 * DirectedCommunicationLink.source(Link, SourceSubsystem);
56 * DirectedCommunicationLink.target(Link, TargetSubsystem);
57 * CommSubsystem.gain(SourceSubsystem, Gain);
58 * neg find commSubsystemGain(TargetSubsystem, Gain);
59 * }
60 * </pre></code>
61 *
62 * @see Matcher
63 * @see Match
64 *
65 */
66@SuppressWarnings("all")
67public final class IncompatibleSourceAndTargetGain extends BaseGeneratedEMFQuerySpecification<IncompatibleSourceAndTargetGain.Matcher> {
68 /**
69 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain pattern,
70 * to be used in conjunction with {@link Matcher}.
71 *
72 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
73 * Each instance is a (possibly partial) substitution of pattern parameters,
74 * usable to represent a match of the pattern in the result of a query,
75 * or to specify the bound (fixed) input parameters when issuing a query.
76 *
77 * @see Matcher
78 *
79 */
80 public static abstract class Match extends BasePatternMatch {
81 private DirectedCommunicationLink fLink;
82
83 private static List<String> parameterNames = makeImmutableList("Link");
84
85 private Match(final DirectedCommunicationLink pLink) {
86 this.fLink = pLink;
87 }
88
89 @Override
90 public Object get(final String parameterName) {
91 if ("Link".equals(parameterName)) return this.fLink;
92 return null;
93 }
94
95 public DirectedCommunicationLink getLink() {
96 return this.fLink;
97 }
98
99 @Override
100 public boolean set(final String parameterName, final Object newValue) {
101 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
102 if ("Link".equals(parameterName) ) {
103 this.fLink = (DirectedCommunicationLink) newValue;
104 return true;
105 }
106 return false;
107 }
108
109 public void setLink(final DirectedCommunicationLink pLink) {
110 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
111 this.fLink = pLink;
112 }
113
114 @Override
115 public String patternName() {
116 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain";
117 }
118
119 @Override
120 public List<String> parameterNames() {
121 return IncompatibleSourceAndTargetGain.Match.parameterNames;
122 }
123
124 @Override
125 public Object[] toArray() {
126 return new Object[]{fLink};
127 }
128
129 @Override
130 public IncompatibleSourceAndTargetGain.Match toImmutable() {
131 return isMutable() ? newMatch(fLink) : this;
132 }
133
134 @Override
135 public String prettyPrint() {
136 StringBuilder result = new StringBuilder();
137 result.append("\"Link\"=" + prettyPrintValue(fLink));
138 return result.toString();
139 }
140
141 @Override
142 public int hashCode() {
143 return Objects.hash(fLink);
144 }
145
146 @Override
147 public boolean equals(final Object obj) {
148 if (this == obj)
149 return true;
150 if (obj == null) {
151 return false;
152 }
153 if ((obj instanceof IncompatibleSourceAndTargetGain.Match)) {
154 IncompatibleSourceAndTargetGain.Match other = (IncompatibleSourceAndTargetGain.Match) obj;
155 return Objects.equals(fLink, other.fLink);
156 } else {
157 // this should be infrequent
158 if (!(obj instanceof IPatternMatch)) {
159 return false;
160 }
161 IPatternMatch otherSig = (IPatternMatch) obj;
162 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
163 }
164 }
165
166 @Override
167 public IncompatibleSourceAndTargetGain specification() {
168 return IncompatibleSourceAndTargetGain.instance();
169 }
170
171 /**
172 * Returns an empty, mutable match.
173 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
174 *
175 * @return the empty match.
176 *
177 */
178 public static IncompatibleSourceAndTargetGain.Match newEmptyMatch() {
179 return new Mutable(null);
180 }
181
182 /**
183 * Returns a mutable (partial) match.
184 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
185 *
186 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
187 * @return the new, mutable (partial) match object.
188 *
189 */
190 public static IncompatibleSourceAndTargetGain.Match newMutableMatch(final DirectedCommunicationLink pLink) {
191 return new Mutable(pLink);
192 }
193
194 /**
195 * Returns a new (partial) match.
196 * This can be used e.g. to call the matcher with a partial match.
197 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
198 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
199 * @return the (partial) match object.
200 *
201 */
202 public static IncompatibleSourceAndTargetGain.Match newMatch(final DirectedCommunicationLink pLink) {
203 return new Immutable(pLink);
204 }
205
206 private static final class Mutable extends IncompatibleSourceAndTargetGain.Match {
207 Mutable(final DirectedCommunicationLink pLink) {
208 super(pLink);
209 }
210
211 @Override
212 public boolean isMutable() {
213 return true;
214 }
215 }
216
217 private static final class Immutable extends IncompatibleSourceAndTargetGain.Match {
218 Immutable(final DirectedCommunicationLink pLink) {
219 super(pLink);
220 }
221
222 @Override
223 public boolean isMutable() {
224 return false;
225 }
226 }
227 }
228
229 /**
230 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain pattern,
231 * providing pattern-specific query methods.
232 *
233 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
234 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
235 *
236 * <p>Matches of the pattern will be represented as {@link Match}.
237 *
238 * <p>Original source:
239 * <code><pre>
240 * {@literal @}Constraint(severity = "error", key = {Link},
241 * message = "Two ends of a communication link must use the same antenna gain.")
242 * pattern incompatibleSourceAndTargetGain(Link : DirectedCommunicationLink) {
243 * DirectedCommunicationLink.source(Link, SourceSubsystem);
244 * DirectedCommunicationLink.target(Link, TargetSubsystem);
245 * CommSubsystem.gain(SourceSubsystem, Gain);
246 * neg find commSubsystemGain(TargetSubsystem, Gain);
247 * }
248 * </pre></code>
249 *
250 * @see Match
251 * @see IncompatibleSourceAndTargetGain
252 *
253 */
254 public static class Matcher extends BaseMatcher<IncompatibleSourceAndTargetGain.Match> {
255 /**
256 * Initializes the pattern matcher within an existing VIATRA Query engine.
257 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
258 *
259 * @param engine the existing VIATRA Query engine in which this matcher will be created.
260 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
261 *
262 */
263 public static IncompatibleSourceAndTargetGain.Matcher on(final ViatraQueryEngine engine) {
264 // check if matcher already exists
265 Matcher matcher = engine.getExistingMatcher(querySpecification());
266 if (matcher == null) {
267 matcher = (Matcher)engine.getMatcher(querySpecification());
268 }
269 return matcher;
270 }
271
272 /**
273 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
274 * @return an initialized matcher
275 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
276 *
277 */
278 public static IncompatibleSourceAndTargetGain.Matcher create() {
279 return new Matcher();
280 }
281
282 private static final int POSITION_LINK = 0;
283
284 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(IncompatibleSourceAndTargetGain.Matcher.class);
285
286 /**
287 * Initializes the pattern matcher within an existing VIATRA Query engine.
288 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
289 *
290 * @param engine the existing VIATRA Query engine in which this matcher will be created.
291 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
292 *
293 */
294 private Matcher() {
295 super(querySpecification());
296 }
297
298 /**
299 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
300 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
301 * @return matches represented as a Match object.
302 *
303 */
304 public Collection<IncompatibleSourceAndTargetGain.Match> getAllMatches(final DirectedCommunicationLink pLink) {
305 return rawStreamAllMatches(new Object[]{pLink}).collect(Collectors.toSet());
306 }
307
308 /**
309 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
310 * </p>
311 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
312 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
313 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
314 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
315 * @return a stream of matches represented as a Match object.
316 *
317 */
318 public Stream<IncompatibleSourceAndTargetGain.Match> streamAllMatches(final DirectedCommunicationLink pLink) {
319 return rawStreamAllMatches(new Object[]{pLink});
320 }
321
322 /**
323 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
324 * Neither determinism nor randomness of selection is guaranteed.
325 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
326 * @return a match represented as a Match object, or null if no match is found.
327 *
328 */
329 public Optional<IncompatibleSourceAndTargetGain.Match> getOneArbitraryMatch(final DirectedCommunicationLink pLink) {
330 return rawGetOneArbitraryMatch(new Object[]{pLink});
331 }
332
333 /**
334 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
335 * under any possible substitution of the unspecified parameters (if any).
336 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
337 * @return true if the input is a valid (partial) match of the pattern.
338 *
339 */
340 public boolean hasMatch(final DirectedCommunicationLink pLink) {
341 return rawHasMatch(new Object[]{pLink});
342 }
343
344 /**
345 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
346 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
347 * @return the number of pattern matches found.
348 *
349 */
350 public int countMatches(final DirectedCommunicationLink pLink) {
351 return rawCountMatches(new Object[]{pLink});
352 }
353
354 /**
355 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
356 * Neither determinism nor randomness of selection is guaranteed.
357 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
358 * @param processor the action that will process the selected match.
359 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
360 *
361 */
362 public boolean forOneArbitraryMatch(final DirectedCommunicationLink pLink, final Consumer<? super IncompatibleSourceAndTargetGain.Match> processor) {
363 return rawForOneArbitraryMatch(new Object[]{pLink}, processor);
364 }
365
366 /**
367 * Returns a new (partial) match.
368 * This can be used e.g. to call the matcher with a partial match.
369 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
370 * @param pLink the fixed value of pattern parameter Link, or null if not bound.
371 * @return the (partial) match object.
372 *
373 */
374 public IncompatibleSourceAndTargetGain.Match newMatch(final DirectedCommunicationLink pLink) {
375 return IncompatibleSourceAndTargetGain.Match.newMatch(pLink);
376 }
377
378 /**
379 * Retrieve the set of values that occur in matches for Link.
380 * @return the Set of all values or empty set if there are no matches
381 *
382 */
383 protected Stream<DirectedCommunicationLink> rawStreamAllValuesOfLink(final Object[] parameters) {
384 return rawStreamAllValues(POSITION_LINK, parameters).map(DirectedCommunicationLink.class::cast);
385 }
386
387 /**
388 * Retrieve the set of values that occur in matches for Link.
389 * @return the Set of all values or empty set if there are no matches
390 *
391 */
392 public Set<DirectedCommunicationLink> getAllValuesOfLink() {
393 return rawStreamAllValuesOfLink(emptyArray()).collect(Collectors.toSet());
394 }
395
396 /**
397 * Retrieve the set of values that occur in matches for Link.
398 * @return the Set of all values or empty set if there are no matches
399 *
400 */
401 public Stream<DirectedCommunicationLink> streamAllValuesOfLink() {
402 return rawStreamAllValuesOfLink(emptyArray());
403 }
404
405 @Override
406 protected IncompatibleSourceAndTargetGain.Match tupleToMatch(final Tuple t) {
407 try {
408 return IncompatibleSourceAndTargetGain.Match.newMatch((DirectedCommunicationLink) t.get(POSITION_LINK));
409 } catch(ClassCastException e) {
410 LOGGER.error("Element(s) in tuple not properly typed!",e);
411 return null;
412 }
413 }
414
415 @Override
416 protected IncompatibleSourceAndTargetGain.Match arrayToMatch(final Object[] match) {
417 try {
418 return IncompatibleSourceAndTargetGain.Match.newMatch((DirectedCommunicationLink) match[POSITION_LINK]);
419 } catch(ClassCastException e) {
420 LOGGER.error("Element(s) in array not properly typed!",e);
421 return null;
422 }
423 }
424
425 @Override
426 protected IncompatibleSourceAndTargetGain.Match arrayToMatchMutable(final Object[] match) {
427 try {
428 return IncompatibleSourceAndTargetGain.Match.newMutableMatch((DirectedCommunicationLink) match[POSITION_LINK]);
429 } catch(ClassCastException e) {
430 LOGGER.error("Element(s) in array not properly typed!",e);
431 return null;
432 }
433 }
434
435 /**
436 * @return the singleton instance of the query specification of this pattern
437 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
438 *
439 */
440 public static IQuerySpecification<IncompatibleSourceAndTargetGain.Matcher> querySpecification() {
441 return IncompatibleSourceAndTargetGain.instance();
442 }
443 }
444
445 private IncompatibleSourceAndTargetGain() {
446 super(GeneratedPQuery.INSTANCE);
447 }
448
449 /**
450 * @return the singleton instance of the query specification
451 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
452 *
453 */
454 public static IncompatibleSourceAndTargetGain instance() {
455 try{
456 return LazyHolder.INSTANCE;
457 } catch (ExceptionInInitializerError err) {
458 throw processInitializerError(err);
459 }
460 }
461
462 @Override
463 protected IncompatibleSourceAndTargetGain.Matcher instantiate(final ViatraQueryEngine engine) {
464 return IncompatibleSourceAndTargetGain.Matcher.on(engine);
465 }
466
467 @Override
468 public IncompatibleSourceAndTargetGain.Matcher instantiate() {
469 return IncompatibleSourceAndTargetGain.Matcher.create();
470 }
471
472 @Override
473 public IncompatibleSourceAndTargetGain.Match newEmptyMatch() {
474 return IncompatibleSourceAndTargetGain.Match.newEmptyMatch();
475 }
476
477 @Override
478 public IncompatibleSourceAndTargetGain.Match newMatch(final Object... parameters) {
479 return IncompatibleSourceAndTargetGain.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink) parameters[0]);
480 }
481
482 /**
483 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain (visibility: PUBLIC, simpleName: IncompatibleSourceAndTargetGain, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain, 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
484 * <b>not</b> at the class load time of the outer class,
485 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain (visibility: PUBLIC, simpleName: IncompatibleSourceAndTargetGain, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
486 *
487 * <p> This workaround is required e.g. to support recursion.
488 *
489 */
490 private static class LazyHolder {
491 private static final IncompatibleSourceAndTargetGain INSTANCE = new IncompatibleSourceAndTargetGain();
492
493 /**
494 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
495 * This initialization order is required to support indirect recursion.
496 *
497 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
498 *
499 */
500 private static final Object STATIC_INITIALIZER = ensureInitialized();
501
502 public static Object ensureInitialized() {
503 INSTANCE.ensureInitializedInternal();
504 return null;
505 }
506 }
507
508 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
509 private static final IncompatibleSourceAndTargetGain.GeneratedPQuery INSTANCE = new GeneratedPQuery();
510
511 private final PParameter parameter_Link = new PParameter("Link", "hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "DirectedCommunicationLink")), PParameterDirection.INOUT);
512
513 private final List<PParameter> parameters = Arrays.asList(parameter_Link);
514
515 private GeneratedPQuery() {
516 super(PVisibility.PUBLIC);
517 }
518
519 @Override
520 public String getFullyQualifiedName() {
521 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain";
522 }
523
524 @Override
525 public List<String> getParameterNames() {
526 return Arrays.asList("Link");
527 }
528
529 @Override
530 public List<PParameter> getParameters() {
531 return parameters;
532 }
533
534 @Override
535 public Set<PBody> doGetContainedBodies() {
536 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
537 Set<PBody> bodies = new LinkedHashSet<>();
538 {
539 PBody body = new PBody(this);
540 PVariable var_Link = body.getOrCreateVariableByName("Link");
541 PVariable var_SourceSubsystem = body.getOrCreateVariableByName("SourceSubsystem");
542 PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem");
543 PVariable var_Gain = body.getOrCreateVariableByName("Gain");
544 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
545 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
546 new ExportedParameter(body, var_Link, parameter_Link)
547 ));
548 // DirectedCommunicationLink.source(Link, SourceSubsystem)
549 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
550 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
551 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
552 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
553 new Equality(body, var__virtual_0_, var_SourceSubsystem);
554 // DirectedCommunicationLink.target(Link, TargetSubsystem)
555 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
556 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
557 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target")));
558 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
559 new Equality(body, var__virtual_1_, var_TargetSubsystem);
560 // CommSubsystem.gain(SourceSubsystem, Gain)
561 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
562 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
563 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
564 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
565 new Equality(body, var__virtual_2_, var_Gain);
566 // neg find commSubsystemGain(TargetSubsystem, Gain)
567 new NegativePatternCall(body, Tuples.flatTupleOf(var_TargetSubsystem, var_Gain), CommSubsystemGain.instance().getInternalQueryRepresentation());
568 bodies.add(body);
569 }
570 {
571 PAnnotation annotation = new PAnnotation("Constraint");
572 annotation.addAttribute("severity", "error");
573 annotation.addAttribute("key", Arrays.asList(new Object[] {
574 new ParameterReference("Link")
575 }));
576 annotation.addAttribute("message", "Two ends of a communication link must use the same antenna gain.");
577 addAnnotation(annotation);
578 }
579 return bodies;
580 }
581 }
582}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/KaAntennaGainLow.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/KaAntennaGainLow.java
new file mode 100644
index 00000000..18f6c32f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/KaAntennaGainLow.java
@@ -0,0 +1,574 @@
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.CommSubsystem;
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.emf.ecore.EClass;
19import org.eclipse.emf.ecore.EDataType;
20import org.eclipse.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey;
29import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
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.annotations.ParameterReference;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
42import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
43import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
44import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
45
46/**
47 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
48 *
49 * <p>Original source:
50 * <code><pre>
51 * // Ka-band transmitters may only be combined with a medium or high gain antenna
52 *
53 * {@literal @}Constraint(severity = "error", key = {Comm},
54 * message = "Ka-band transceiver must be combined with a medium or high gain antenna.")
55 * pattern kaAntennaGainLow(Comm : CommSubsystem) {
56 * CommSubsystem.band(Comm, TransceiverBand::Ka);
57 * CommSubsystem.gain(Comm, AntennaGain::LOW);
58 * }
59 * </pre></code>
60 *
61 * @see Matcher
62 * @see Match
63 *
64 */
65@SuppressWarnings("all")
66public final class KaAntennaGainLow extends BaseGeneratedEMFQuerySpecification<KaAntennaGainLow.Matcher> {
67 /**
68 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow pattern,
69 * to be used in conjunction with {@link Matcher}.
70 *
71 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
72 * Each instance is a (possibly partial) substitution of pattern parameters,
73 * usable to represent a match of the pattern in the result of a query,
74 * or to specify the bound (fixed) input parameters when issuing a query.
75 *
76 * @see Matcher
77 *
78 */
79 public static abstract class Match extends BasePatternMatch {
80 private CommSubsystem fComm;
81
82 private static List<String> parameterNames = makeImmutableList("Comm");
83
84 private Match(final CommSubsystem pComm) {
85 this.fComm = pComm;
86 }
87
88 @Override
89 public Object get(final String parameterName) {
90 if ("Comm".equals(parameterName)) return this.fComm;
91 return null;
92 }
93
94 public CommSubsystem getComm() {
95 return this.fComm;
96 }
97
98 @Override
99 public boolean set(final String parameterName, final Object newValue) {
100 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
101 if ("Comm".equals(parameterName) ) {
102 this.fComm = (CommSubsystem) newValue;
103 return true;
104 }
105 return false;
106 }
107
108 public void setComm(final CommSubsystem pComm) {
109 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
110 this.fComm = pComm;
111 }
112
113 @Override
114 public String patternName() {
115 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow";
116 }
117
118 @Override
119 public List<String> parameterNames() {
120 return KaAntennaGainLow.Match.parameterNames;
121 }
122
123 @Override
124 public Object[] toArray() {
125 return new Object[]{fComm};
126 }
127
128 @Override
129 public KaAntennaGainLow.Match toImmutable() {
130 return isMutable() ? newMatch(fComm) : this;
131 }
132
133 @Override
134 public String prettyPrint() {
135 StringBuilder result = new StringBuilder();
136 result.append("\"Comm\"=" + prettyPrintValue(fComm));
137 return result.toString();
138 }
139
140 @Override
141 public int hashCode() {
142 return Objects.hash(fComm);
143 }
144
145 @Override
146 public boolean equals(final Object obj) {
147 if (this == obj)
148 return true;
149 if (obj == null) {
150 return false;
151 }
152 if ((obj instanceof KaAntennaGainLow.Match)) {
153 KaAntennaGainLow.Match other = (KaAntennaGainLow.Match) obj;
154 return Objects.equals(fComm, other.fComm);
155 } else {
156 // this should be infrequent
157 if (!(obj instanceof IPatternMatch)) {
158 return false;
159 }
160 IPatternMatch otherSig = (IPatternMatch) obj;
161 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
162 }
163 }
164
165 @Override
166 public KaAntennaGainLow specification() {
167 return KaAntennaGainLow.instance();
168 }
169
170 /**
171 * Returns an empty, mutable match.
172 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
173 *
174 * @return the empty match.
175 *
176 */
177 public static KaAntennaGainLow.Match newEmptyMatch() {
178 return new Mutable(null);
179 }
180
181 /**
182 * Returns a mutable (partial) match.
183 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
184 *
185 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
186 * @return the new, mutable (partial) match object.
187 *
188 */
189 public static KaAntennaGainLow.Match newMutableMatch(final CommSubsystem pComm) {
190 return new Mutable(pComm);
191 }
192
193 /**
194 * Returns a new (partial) match.
195 * This can be used e.g. to call the matcher with a partial match.
196 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
197 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
198 * @return the (partial) match object.
199 *
200 */
201 public static KaAntennaGainLow.Match newMatch(final CommSubsystem pComm) {
202 return new Immutable(pComm);
203 }
204
205 private static final class Mutable extends KaAntennaGainLow.Match {
206 Mutable(final CommSubsystem pComm) {
207 super(pComm);
208 }
209
210 @Override
211 public boolean isMutable() {
212 return true;
213 }
214 }
215
216 private static final class Immutable extends KaAntennaGainLow.Match {
217 Immutable(final CommSubsystem pComm) {
218 super(pComm);
219 }
220
221 @Override
222 public boolean isMutable() {
223 return false;
224 }
225 }
226 }
227
228 /**
229 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow pattern,
230 * providing pattern-specific query methods.
231 *
232 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
233 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
234 *
235 * <p>Matches of the pattern will be represented as {@link Match}.
236 *
237 * <p>Original source:
238 * <code><pre>
239 * // Ka-band transmitters may only be combined with a medium or high gain antenna
240 *
241 * {@literal @}Constraint(severity = "error", key = {Comm},
242 * message = "Ka-band transceiver must be combined with a medium or high gain antenna.")
243 * pattern kaAntennaGainLow(Comm : CommSubsystem) {
244 * CommSubsystem.band(Comm, TransceiverBand::Ka);
245 * CommSubsystem.gain(Comm, AntennaGain::LOW);
246 * }
247 * </pre></code>
248 *
249 * @see Match
250 * @see KaAntennaGainLow
251 *
252 */
253 public static class Matcher extends BaseMatcher<KaAntennaGainLow.Match> {
254 /**
255 * Initializes the pattern matcher within an existing VIATRA Query engine.
256 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
257 *
258 * @param engine the existing VIATRA Query engine in which this matcher will be created.
259 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
260 *
261 */
262 public static KaAntennaGainLow.Matcher on(final ViatraQueryEngine engine) {
263 // check if matcher already exists
264 Matcher matcher = engine.getExistingMatcher(querySpecification());
265 if (matcher == null) {
266 matcher = (Matcher)engine.getMatcher(querySpecification());
267 }
268 return matcher;
269 }
270
271 /**
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 * @return an initialized matcher
274 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
275 *
276 */
277 public static KaAntennaGainLow.Matcher create() {
278 return new Matcher();
279 }
280
281 private static final int POSITION_COMM = 0;
282
283 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(KaAntennaGainLow.Matcher.class);
284
285 /**
286 * Initializes the pattern matcher within an existing VIATRA Query engine.
287 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
288 *
289 * @param engine the existing VIATRA Query engine in which this matcher will be created.
290 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
291 *
292 */
293 private Matcher() {
294 super(querySpecification());
295 }
296
297 /**
298 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
299 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
300 * @return matches represented as a Match object.
301 *
302 */
303 public Collection<KaAntennaGainLow.Match> getAllMatches(final CommSubsystem pComm) {
304 return rawStreamAllMatches(new Object[]{pComm}).collect(Collectors.toSet());
305 }
306
307 /**
308 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
309 * </p>
310 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
311 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
312 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
313 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
314 * @return a stream of matches represented as a Match object.
315 *
316 */
317 public Stream<KaAntennaGainLow.Match> streamAllMatches(final CommSubsystem pComm) {
318 return rawStreamAllMatches(new Object[]{pComm});
319 }
320
321 /**
322 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
323 * Neither determinism nor randomness of selection is guaranteed.
324 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
325 * @return a match represented as a Match object, or null if no match is found.
326 *
327 */
328 public Optional<KaAntennaGainLow.Match> getOneArbitraryMatch(final CommSubsystem pComm) {
329 return rawGetOneArbitraryMatch(new Object[]{pComm});
330 }
331
332 /**
333 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
334 * under any possible substitution of the unspecified parameters (if any).
335 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
336 * @return true if the input is a valid (partial) match of the pattern.
337 *
338 */
339 public boolean hasMatch(final CommSubsystem pComm) {
340 return rawHasMatch(new Object[]{pComm});
341 }
342
343 /**
344 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
345 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
346 * @return the number of pattern matches found.
347 *
348 */
349 public int countMatches(final CommSubsystem pComm) {
350 return rawCountMatches(new Object[]{pComm});
351 }
352
353 /**
354 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
355 * Neither determinism nor randomness of selection is guaranteed.
356 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
357 * @param processor the action that will process the selected match.
358 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
359 *
360 */
361 public boolean forOneArbitraryMatch(final CommSubsystem pComm, final Consumer<? super KaAntennaGainLow.Match> processor) {
362 return rawForOneArbitraryMatch(new Object[]{pComm}, processor);
363 }
364
365 /**
366 * Returns a new (partial) match.
367 * This can be used e.g. to call the matcher with a partial match.
368 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
369 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
370 * @return the (partial) match object.
371 *
372 */
373 public KaAntennaGainLow.Match newMatch(final CommSubsystem pComm) {
374 return KaAntennaGainLow.Match.newMatch(pComm);
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for Comm.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 protected Stream<CommSubsystem> rawStreamAllValuesOfComm(final Object[] parameters) {
383 return rawStreamAllValues(POSITION_COMM, parameters).map(CommSubsystem.class::cast);
384 }
385
386 /**
387 * Retrieve the set of values that occur in matches for Comm.
388 * @return the Set of all values or empty set if there are no matches
389 *
390 */
391 public Set<CommSubsystem> getAllValuesOfComm() {
392 return rawStreamAllValuesOfComm(emptyArray()).collect(Collectors.toSet());
393 }
394
395 /**
396 * Retrieve the set of values that occur in matches for Comm.
397 * @return the Set of all values or empty set if there are no matches
398 *
399 */
400 public Stream<CommSubsystem> streamAllValuesOfComm() {
401 return rawStreamAllValuesOfComm(emptyArray());
402 }
403
404 @Override
405 protected KaAntennaGainLow.Match tupleToMatch(final Tuple t) {
406 try {
407 return KaAntennaGainLow.Match.newMatch((CommSubsystem) t.get(POSITION_COMM));
408 } catch(ClassCastException e) {
409 LOGGER.error("Element(s) in tuple not properly typed!",e);
410 return null;
411 }
412 }
413
414 @Override
415 protected KaAntennaGainLow.Match arrayToMatch(final Object[] match) {
416 try {
417 return KaAntennaGainLow.Match.newMatch((CommSubsystem) match[POSITION_COMM]);
418 } catch(ClassCastException e) {
419 LOGGER.error("Element(s) in array not properly typed!",e);
420 return null;
421 }
422 }
423
424 @Override
425 protected KaAntennaGainLow.Match arrayToMatchMutable(final Object[] match) {
426 try {
427 return KaAntennaGainLow.Match.newMutableMatch((CommSubsystem) match[POSITION_COMM]);
428 } catch(ClassCastException e) {
429 LOGGER.error("Element(s) in array not properly typed!",e);
430 return null;
431 }
432 }
433
434 /**
435 * @return the singleton instance of the query specification of this pattern
436 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
437 *
438 */
439 public static IQuerySpecification<KaAntennaGainLow.Matcher> querySpecification() {
440 return KaAntennaGainLow.instance();
441 }
442 }
443
444 private KaAntennaGainLow() {
445 super(GeneratedPQuery.INSTANCE);
446 }
447
448 /**
449 * @return the singleton instance of the query specification
450 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
451 *
452 */
453 public static KaAntennaGainLow instance() {
454 try{
455 return LazyHolder.INSTANCE;
456 } catch (ExceptionInInitializerError err) {
457 throw processInitializerError(err);
458 }
459 }
460
461 @Override
462 protected KaAntennaGainLow.Matcher instantiate(final ViatraQueryEngine engine) {
463 return KaAntennaGainLow.Matcher.on(engine);
464 }
465
466 @Override
467 public KaAntennaGainLow.Matcher instantiate() {
468 return KaAntennaGainLow.Matcher.create();
469 }
470
471 @Override
472 public KaAntennaGainLow.Match newEmptyMatch() {
473 return KaAntennaGainLow.Match.newEmptyMatch();
474 }
475
476 @Override
477 public KaAntennaGainLow.Match newMatch(final Object... parameters) {
478 return KaAntennaGainLow.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem) parameters[0]);
479 }
480
481 /**
482 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow (visibility: PUBLIC, simpleName: KaAntennaGainLow, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow, 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
483 * <b>not</b> at the class load time of the outer class,
484 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow (visibility: PUBLIC, simpleName: KaAntennaGainLow, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
485 *
486 * <p> This workaround is required e.g. to support recursion.
487 *
488 */
489 private static class LazyHolder {
490 private static final KaAntennaGainLow INSTANCE = new KaAntennaGainLow();
491
492 /**
493 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
494 * This initialization order is required to support indirect recursion.
495 *
496 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
497 *
498 */
499 private static final Object STATIC_INITIALIZER = ensureInitialized();
500
501 public static Object ensureInitialized() {
502 INSTANCE.ensureInitializedInternal();
503 return null;
504 }
505 }
506
507 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
508 private static final KaAntennaGainLow.GeneratedPQuery INSTANCE = new GeneratedPQuery();
509
510 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
511
512 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
513
514 private GeneratedPQuery() {
515 super(PVisibility.PUBLIC);
516 }
517
518 @Override
519 public String getFullyQualifiedName() {
520 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow";
521 }
522
523 @Override
524 public List<String> getParameterNames() {
525 return Arrays.asList("Comm");
526 }
527
528 @Override
529 public List<PParameter> getParameters() {
530 return parameters;
531 }
532
533 @Override
534 public Set<PBody> doGetContainedBodies() {
535 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
536 Set<PBody> bodies = new LinkedHashSet<>();
537 {
538 PBody body = new PBody(this);
539 PVariable var_Comm = body.getOrCreateVariableByName("Comm");
540 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
541 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
542 new ExportedParameter(body, var_Comm, parameter_Comm)
543 ));
544 // CommSubsystem.band(Comm, TransceiverBand::Ka)
545 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
546 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "Ka").getInstance());
547 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
548 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
549 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
550 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
551 new Equality(body, var__virtual_1_, var__virtual_0_);
552 // CommSubsystem.gain(Comm, AntennaGain::LOW)
553 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
554 new ConstantValue(body, var__virtual_2_, getEnumLiteral("http://www.example.org/satellite", "AntennaGain", "LOW").getInstance());
555 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
556 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
557 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
558 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
559 new Equality(body, var__virtual_3_, var__virtual_2_);
560 bodies.add(body);
561 }
562 {
563 PAnnotation annotation = new PAnnotation("Constraint");
564 annotation.addAttribute("severity", "error");
565 annotation.addAttribute("key", Arrays.asList(new Object[] {
566 new ParameterReference("Comm")
567 }));
568 annotation.addAttribute("message", "Ka-band transceiver must be combined with a medium or high gain antenna.");
569 addAnnotation(annotation);
570 }
571 return bodies;
572 }
573 }
574}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java
new file mode 100644
index 00000000..598f3a6b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java
@@ -0,0 +1,575 @@
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.queries.internal.IndirectCommunicationLink;
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.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
29import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
31import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
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.basicdeferred.NegativePatternCall;
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 * // All spacecraft must have some communication path to the ground station
51 *
52 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
53 * message = "Spacecraft has no communication path to the ground station.")
54 * pattern noLinkToGroundStation(Spacecraft : Spacecraft) {
55 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
56 * ConstellationMission.spacecraft(Mission, Spacecraft);
57 * neg find indirectCommunicationLink(Spacecraft, GroundStation);
58 * }
59 * </pre></code>
60 *
61 * @see Matcher
62 * @see Match
63 *
64 */
65@SuppressWarnings("all")
66public final class NoLinkToGroundStation extends BaseGeneratedEMFQuerySpecification<NoLinkToGroundStation.Matcher> {
67 /**
68 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation pattern,
69 * to be used in conjunction with {@link Matcher}.
70 *
71 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
72 * Each instance is a (possibly partial) substitution of pattern parameters,
73 * usable to represent a match of the pattern in the result of a query,
74 * or to specify the bound (fixed) input parameters when issuing a query.
75 *
76 * @see Matcher
77 *
78 */
79 public static abstract class Match extends BasePatternMatch {
80 private Spacecraft fSpacecraft;
81
82 private static List<String> parameterNames = makeImmutableList("Spacecraft");
83
84 private Match(final Spacecraft pSpacecraft) {
85 this.fSpacecraft = pSpacecraft;
86 }
87
88 @Override
89 public Object get(final String parameterName) {
90 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
91 return null;
92 }
93
94 public Spacecraft getSpacecraft() {
95 return this.fSpacecraft;
96 }
97
98 @Override
99 public boolean set(final String parameterName, final Object newValue) {
100 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
101 if ("Spacecraft".equals(parameterName) ) {
102 this.fSpacecraft = (Spacecraft) newValue;
103 return true;
104 }
105 return false;
106 }
107
108 public void setSpacecraft(final Spacecraft pSpacecraft) {
109 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
110 this.fSpacecraft = pSpacecraft;
111 }
112
113 @Override
114 public String patternName() {
115 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation";
116 }
117
118 @Override
119 public List<String> parameterNames() {
120 return NoLinkToGroundStation.Match.parameterNames;
121 }
122
123 @Override
124 public Object[] toArray() {
125 return new Object[]{fSpacecraft};
126 }
127
128 @Override
129 public NoLinkToGroundStation.Match toImmutable() {
130 return isMutable() ? newMatch(fSpacecraft) : this;
131 }
132
133 @Override
134 public String prettyPrint() {
135 StringBuilder result = new StringBuilder();
136 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft));
137 return result.toString();
138 }
139
140 @Override
141 public int hashCode() {
142 return Objects.hash(fSpacecraft);
143 }
144
145 @Override
146 public boolean equals(final Object obj) {
147 if (this == obj)
148 return true;
149 if (obj == null) {
150 return false;
151 }
152 if ((obj instanceof NoLinkToGroundStation.Match)) {
153 NoLinkToGroundStation.Match other = (NoLinkToGroundStation.Match) obj;
154 return Objects.equals(fSpacecraft, other.fSpacecraft);
155 } else {
156 // this should be infrequent
157 if (!(obj instanceof IPatternMatch)) {
158 return false;
159 }
160 IPatternMatch otherSig = (IPatternMatch) obj;
161 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
162 }
163 }
164
165 @Override
166 public NoLinkToGroundStation specification() {
167 return NoLinkToGroundStation.instance();
168 }
169
170 /**
171 * Returns an empty, mutable match.
172 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
173 *
174 * @return the empty match.
175 *
176 */
177 public static NoLinkToGroundStation.Match newEmptyMatch() {
178 return new Mutable(null);
179 }
180
181 /**
182 * Returns a mutable (partial) match.
183 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
184 *
185 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
186 * @return the new, mutable (partial) match object.
187 *
188 */
189 public static NoLinkToGroundStation.Match newMutableMatch(final Spacecraft pSpacecraft) {
190 return new Mutable(pSpacecraft);
191 }
192
193 /**
194 * Returns a new (partial) match.
195 * This can be used e.g. to call the matcher with a partial match.
196 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
197 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
198 * @return the (partial) match object.
199 *
200 */
201 public static NoLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
202 return new Immutable(pSpacecraft);
203 }
204
205 private static final class Mutable extends NoLinkToGroundStation.Match {
206 Mutable(final Spacecraft pSpacecraft) {
207 super(pSpacecraft);
208 }
209
210 @Override
211 public boolean isMutable() {
212 return true;
213 }
214 }
215
216 private static final class Immutable extends NoLinkToGroundStation.Match {
217 Immutable(final Spacecraft pSpacecraft) {
218 super(pSpacecraft);
219 }
220
221 @Override
222 public boolean isMutable() {
223 return false;
224 }
225 }
226 }
227
228 /**
229 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation pattern,
230 * providing pattern-specific query methods.
231 *
232 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
233 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
234 *
235 * <p>Matches of the pattern will be represented as {@link Match}.
236 *
237 * <p>Original source:
238 * <code><pre>
239 * // All spacecraft must have some communication path to the ground station
240 *
241 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
242 * message = "Spacecraft has no communication path to the ground station.")
243 * pattern noLinkToGroundStation(Spacecraft : Spacecraft) {
244 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
245 * ConstellationMission.spacecraft(Mission, Spacecraft);
246 * neg find indirectCommunicationLink(Spacecraft, GroundStation);
247 * }
248 * </pre></code>
249 *
250 * @see Match
251 * @see NoLinkToGroundStation
252 *
253 */
254 public static class Matcher extends BaseMatcher<NoLinkToGroundStation.Match> {
255 /**
256 * Initializes the pattern matcher within an existing VIATRA Query engine.
257 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
258 *
259 * @param engine the existing VIATRA Query engine in which this matcher will be created.
260 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
261 *
262 */
263 public static NoLinkToGroundStation.Matcher on(final ViatraQueryEngine engine) {
264 // check if matcher already exists
265 Matcher matcher = engine.getExistingMatcher(querySpecification());
266 if (matcher == null) {
267 matcher = (Matcher)engine.getMatcher(querySpecification());
268 }
269 return matcher;
270 }
271
272 /**
273 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
274 * @return an initialized matcher
275 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
276 *
277 */
278 public static NoLinkToGroundStation.Matcher create() {
279 return new Matcher();
280 }
281
282 private static final int POSITION_SPACECRAFT = 0;
283
284 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NoLinkToGroundStation.Matcher.class);
285
286 /**
287 * Initializes the pattern matcher within an existing VIATRA Query engine.
288 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
289 *
290 * @param engine the existing VIATRA Query engine in which this matcher will be created.
291 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
292 *
293 */
294 private Matcher() {
295 super(querySpecification());
296 }
297
298 /**
299 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
300 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
301 * @return matches represented as a Match object.
302 *
303 */
304 public Collection<NoLinkToGroundStation.Match> getAllMatches(final Spacecraft pSpacecraft) {
305 return rawStreamAllMatches(new Object[]{pSpacecraft}).collect(Collectors.toSet());
306 }
307
308 /**
309 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
310 * </p>
311 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
312 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
313 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
314 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
315 * @return a stream of matches represented as a Match object.
316 *
317 */
318 public Stream<NoLinkToGroundStation.Match> streamAllMatches(final Spacecraft pSpacecraft) {
319 return rawStreamAllMatches(new Object[]{pSpacecraft});
320 }
321
322 /**
323 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
324 * Neither determinism nor randomness of selection is guaranteed.
325 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
326 * @return a match represented as a Match object, or null if no match is found.
327 *
328 */
329 public Optional<NoLinkToGroundStation.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) {
330 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft});
331 }
332
333 /**
334 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
335 * under any possible substitution of the unspecified parameters (if any).
336 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
337 * @return true if the input is a valid (partial) match of the pattern.
338 *
339 */
340 public boolean hasMatch(final Spacecraft pSpacecraft) {
341 return rawHasMatch(new Object[]{pSpacecraft});
342 }
343
344 /**
345 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
346 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
347 * @return the number of pattern matches found.
348 *
349 */
350 public int countMatches(final Spacecraft pSpacecraft) {
351 return rawCountMatches(new Object[]{pSpacecraft});
352 }
353
354 /**
355 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
356 * Neither determinism nor randomness of selection is guaranteed.
357 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
358 * @param processor the action that will process the selected match.
359 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
360 *
361 */
362 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final Consumer<? super NoLinkToGroundStation.Match> processor) {
363 return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, processor);
364 }
365
366 /**
367 * Returns a new (partial) match.
368 * This can be used e.g. to call the matcher with a partial match.
369 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
370 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
371 * @return the (partial) match object.
372 *
373 */
374 public NoLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
375 return NoLinkToGroundStation.Match.newMatch(pSpacecraft);
376 }
377
378 /**
379 * Retrieve the set of values that occur in matches for Spacecraft.
380 * @return the Set of all values or empty set if there are no matches
381 *
382 */
383 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
384 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
385 }
386
387 /**
388 * Retrieve the set of values that occur in matches for Spacecraft.
389 * @return the Set of all values or empty set if there are no matches
390 *
391 */
392 public Set<Spacecraft> getAllValuesOfSpacecraft() {
393 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
394 }
395
396 /**
397 * Retrieve the set of values that occur in matches for Spacecraft.
398 * @return the Set of all values or empty set if there are no matches
399 *
400 */
401 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
402 return rawStreamAllValuesOfSpacecraft(emptyArray());
403 }
404
405 @Override
406 protected NoLinkToGroundStation.Match tupleToMatch(final Tuple t) {
407 try {
408 return NoLinkToGroundStation.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT));
409 } catch(ClassCastException e) {
410 LOGGER.error("Element(s) in tuple not properly typed!",e);
411 return null;
412 }
413 }
414
415 @Override
416 protected NoLinkToGroundStation.Match arrayToMatch(final Object[] match) {
417 try {
418 return NoLinkToGroundStation.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]);
419 } catch(ClassCastException e) {
420 LOGGER.error("Element(s) in array not properly typed!",e);
421 return null;
422 }
423 }
424
425 @Override
426 protected NoLinkToGroundStation.Match arrayToMatchMutable(final Object[] match) {
427 try {
428 return NoLinkToGroundStation.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]);
429 } catch(ClassCastException e) {
430 LOGGER.error("Element(s) in array not properly typed!",e);
431 return null;
432 }
433 }
434
435 /**
436 * @return the singleton instance of the query specification of this pattern
437 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
438 *
439 */
440 public static IQuerySpecification<NoLinkToGroundStation.Matcher> querySpecification() {
441 return NoLinkToGroundStation.instance();
442 }
443 }
444
445 private NoLinkToGroundStation() {
446 super(GeneratedPQuery.INSTANCE);
447 }
448
449 /**
450 * @return the singleton instance of the query specification
451 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
452 *
453 */
454 public static NoLinkToGroundStation instance() {
455 try{
456 return LazyHolder.INSTANCE;
457 } catch (ExceptionInInitializerError err) {
458 throw processInitializerError(err);
459 }
460 }
461
462 @Override
463 protected NoLinkToGroundStation.Matcher instantiate(final ViatraQueryEngine engine) {
464 return NoLinkToGroundStation.Matcher.on(engine);
465 }
466
467 @Override
468 public NoLinkToGroundStation.Matcher instantiate() {
469 return NoLinkToGroundStation.Matcher.create();
470 }
471
472 @Override
473 public NoLinkToGroundStation.Match newEmptyMatch() {
474 return NoLinkToGroundStation.Match.newEmptyMatch();
475 }
476
477 @Override
478 public NoLinkToGroundStation.Match newMatch(final Object... parameters) {
479 return NoLinkToGroundStation.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft) parameters[0]);
480 }
481
482 /**
483 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation (visibility: PUBLIC, simpleName: NoLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation, 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
484 * <b>not</b> at the class load time of the outer class,
485 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation (visibility: PUBLIC, simpleName: NoLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
486 *
487 * <p> This workaround is required e.g. to support recursion.
488 *
489 */
490 private static class LazyHolder {
491 private static final NoLinkToGroundStation INSTANCE = new NoLinkToGroundStation();
492
493 /**
494 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
495 * This initialization order is required to support indirect recursion.
496 *
497 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
498 *
499 */
500 private static final Object STATIC_INITIALIZER = ensureInitialized();
501
502 public static Object ensureInitialized() {
503 INSTANCE.ensureInitializedInternal();
504 return null;
505 }
506 }
507
508 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
509 private static final NoLinkToGroundStation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
510
511 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);
512
513 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
514
515 private GeneratedPQuery() {
516 super(PVisibility.PUBLIC);
517 }
518
519 @Override
520 public String getFullyQualifiedName() {
521 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation";
522 }
523
524 @Override
525 public List<String> getParameterNames() {
526 return Arrays.asList("Spacecraft");
527 }
528
529 @Override
530 public List<PParameter> getParameters() {
531 return parameters;
532 }
533
534 @Override
535 public Set<PBody> doGetContainedBodies() {
536 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
537 Set<PBody> bodies = new LinkedHashSet<>();
538 {
539 PBody body = new PBody(this);
540 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
541 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
542 PVariable var_GroundStation = body.getOrCreateVariableByName("GroundStation");
543 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
544 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
545 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
546 ));
547 // ConstellationMission.groundStationNetwork(Mission, GroundStation)
548 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
549 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
550 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "groundStationNetwork")));
551 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
552 new Equality(body, var__virtual_0_, var_GroundStation);
553 // ConstellationMission.spacecraft(Mission, Spacecraft)
554 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
555 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
556 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
557 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
558 new Equality(body, var__virtual_1_, var_Spacecraft);
559 // neg find indirectCommunicationLink(Spacecraft, GroundStation)
560 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_GroundStation), IndirectCommunicationLink.instance().getInternalQueryRepresentation());
561 bodies.add(body);
562 }
563 {
564 PAnnotation annotation = new PAnnotation("Constraint");
565 annotation.addAttribute("severity", "error");
566 annotation.addAttribute("key", Arrays.asList(new Object[] {
567 new ParameterReference("Spacecraft")
568 }));
569 annotation.addAttribute("message", "Spacecraft has no communication path to the ground station.");
570 addAnnotation(annotation);
571 }
572 return bodies;
573 }
574 }
575}
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
new file mode 100644
index 00000000..39af9d5b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java
@@ -0,0 +1,548 @@
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.InterferometryMission;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads;
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.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
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.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 * // At least two spacecraft must have the interferometry payload configured
47 *
48 * //{@literal @}Constraint(severity = "error", key = {Mission},
49 * // message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
50 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
51 * InterferometryMission(Mission);
52 * neg find atLeastTwoInterferometryPayloads(Mission);
53 * }
54 * </pre></code>
55 *
56 * @see Matcher
57 * @see Match
58 *
59 */
60@SuppressWarnings("all")
61public final class NotEnoughInterferometryPayloads extends BaseGeneratedEMFQuerySpecification<NotEnoughInterferometryPayloads.Matcher> {
62 /**
63 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads pattern,
64 * to be used in conjunction with {@link Matcher}.
65 *
66 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
67 * Each instance is a (possibly partial) substitution of pattern parameters,
68 * usable to represent a match of the pattern in the result of a query,
69 * or to specify the bound (fixed) input parameters when issuing a query.
70 *
71 * @see Matcher
72 *
73 */
74 public static abstract class Match extends BasePatternMatch {
75 private InterferometryMission fMission;
76
77 private static List<String> parameterNames = makeImmutableList("Mission");
78
79 private Match(final InterferometryMission pMission) {
80 this.fMission = pMission;
81 }
82
83 @Override
84 public Object get(final String parameterName) {
85 if ("Mission".equals(parameterName)) return this.fMission;
86 return null;
87 }
88
89 public InterferometryMission getMission() {
90 return this.fMission;
91 }
92
93 @Override
94 public boolean set(final String parameterName, final Object newValue) {
95 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
96 if ("Mission".equals(parameterName) ) {
97 this.fMission = (InterferometryMission) newValue;
98 return true;
99 }
100 return false;
101 }
102
103 public void setMission(final InterferometryMission pMission) {
104 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
105 this.fMission = pMission;
106 }
107
108 @Override
109 public String patternName() {
110 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads";
111 }
112
113 @Override
114 public List<String> parameterNames() {
115 return NotEnoughInterferometryPayloads.Match.parameterNames;
116 }
117
118 @Override
119 public Object[] toArray() {
120 return new Object[]{fMission};
121 }
122
123 @Override
124 public NotEnoughInterferometryPayloads.Match toImmutable() {
125 return isMutable() ? newMatch(fMission) : this;
126 }
127
128 @Override
129 public String prettyPrint() {
130 StringBuilder result = new StringBuilder();
131 result.append("\"Mission\"=" + prettyPrintValue(fMission));
132 return result.toString();
133 }
134
135 @Override
136 public int hashCode() {
137 return Objects.hash(fMission);
138 }
139
140 @Override
141 public boolean equals(final Object obj) {
142 if (this == obj)
143 return true;
144 if (obj == null) {
145 return false;
146 }
147 if ((obj instanceof NotEnoughInterferometryPayloads.Match)) {
148 NotEnoughInterferometryPayloads.Match other = (NotEnoughInterferometryPayloads.Match) obj;
149 return Objects.equals(fMission, other.fMission);
150 } else {
151 // this should be infrequent
152 if (!(obj instanceof IPatternMatch)) {
153 return false;
154 }
155 IPatternMatch otherSig = (IPatternMatch) obj;
156 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
157 }
158 }
159
160 @Override
161 public NotEnoughInterferometryPayloads specification() {
162 return NotEnoughInterferometryPayloads.instance();
163 }
164
165 /**
166 * Returns an empty, mutable match.
167 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
168 *
169 * @return the empty match.
170 *
171 */
172 public static NotEnoughInterferometryPayloads.Match newEmptyMatch() {
173 return new Mutable(null);
174 }
175
176 /**
177 * Returns a mutable (partial) match.
178 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
179 *
180 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
181 * @return the new, mutable (partial) match object.
182 *
183 */
184 public static NotEnoughInterferometryPayloads.Match newMutableMatch(final InterferometryMission pMission) {
185 return new Mutable(pMission);
186 }
187
188 /**
189 * Returns a new (partial) match.
190 * This can be used e.g. to call the matcher with a partial match.
191 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
192 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
193 * @return the (partial) match object.
194 *
195 */
196 public static NotEnoughInterferometryPayloads.Match newMatch(final InterferometryMission pMission) {
197 return new Immutable(pMission);
198 }
199
200 private static final class Mutable extends NotEnoughInterferometryPayloads.Match {
201 Mutable(final InterferometryMission pMission) {
202 super(pMission);
203 }
204
205 @Override
206 public boolean isMutable() {
207 return true;
208 }
209 }
210
211 private static final class Immutable extends NotEnoughInterferometryPayloads.Match {
212 Immutable(final InterferometryMission pMission) {
213 super(pMission);
214 }
215
216 @Override
217 public boolean isMutable() {
218 return false;
219 }
220 }
221 }
222
223 /**
224 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads pattern,
225 * providing pattern-specific query methods.
226 *
227 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
228 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
229 *
230 * <p>Matches of the pattern will be represented as {@link Match}.
231 *
232 * <p>Original source:
233 * <code><pre>
234 * // At least two spacecraft must have the interferometry payload configured
235 *
236 * //{@literal @}Constraint(severity = "error", key = {Mission},
237 * // message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
238 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
239 * InterferometryMission(Mission);
240 * neg find atLeastTwoInterferometryPayloads(Mission);
241 * }
242 * </pre></code>
243 *
244 * @see Match
245 * @see NotEnoughInterferometryPayloads
246 *
247 */
248 public static class Matcher extends BaseMatcher<NotEnoughInterferometryPayloads.Match> {
249 /**
250 * Initializes the pattern matcher within an existing VIATRA Query engine.
251 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
252 *
253 * @param engine the existing VIATRA Query engine in which this matcher will be created.
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 *
256 */
257 public static NotEnoughInterferometryPayloads.Matcher on(final ViatraQueryEngine engine) {
258 // check if matcher already exists
259 Matcher matcher = engine.getExistingMatcher(querySpecification());
260 if (matcher == null) {
261 matcher = (Matcher)engine.getMatcher(querySpecification());
262 }
263 return matcher;
264 }
265
266 /**
267 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
268 * @return an initialized matcher
269 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
270 *
271 */
272 public static NotEnoughInterferometryPayloads.Matcher create() {
273 return new Matcher();
274 }
275
276 private static final int POSITION_MISSION = 0;
277
278 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NotEnoughInterferometryPayloads.Matcher.class);
279
280 /**
281 * Initializes the pattern matcher within an existing VIATRA Query engine.
282 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
283 *
284 * @param engine the existing VIATRA Query engine in which this matcher will be created.
285 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
286 *
287 */
288 private Matcher() {
289 super(querySpecification());
290 }
291
292 /**
293 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
294 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
295 * @return matches represented as a Match object.
296 *
297 */
298 public Collection<NotEnoughInterferometryPayloads.Match> getAllMatches(final InterferometryMission pMission) {
299 return rawStreamAllMatches(new Object[]{pMission}).collect(Collectors.toSet());
300 }
301
302 /**
303 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
304 * </p>
305 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
306 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
307 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
308 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
309 * @return a stream of matches represented as a Match object.
310 *
311 */
312 public Stream<NotEnoughInterferometryPayloads.Match> streamAllMatches(final InterferometryMission pMission) {
313 return rawStreamAllMatches(new Object[]{pMission});
314 }
315
316 /**
317 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
318 * Neither determinism nor randomness of selection is guaranteed.
319 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
320 * @return a match represented as a Match object, or null if no match is found.
321 *
322 */
323 public Optional<NotEnoughInterferometryPayloads.Match> getOneArbitraryMatch(final InterferometryMission pMission) {
324 return rawGetOneArbitraryMatch(new Object[]{pMission});
325 }
326
327 /**
328 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
329 * under any possible substitution of the unspecified parameters (if any).
330 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
331 * @return true if the input is a valid (partial) match of the pattern.
332 *
333 */
334 public boolean hasMatch(final InterferometryMission pMission) {
335 return rawHasMatch(new Object[]{pMission});
336 }
337
338 /**
339 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
340 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
341 * @return the number of pattern matches found.
342 *
343 */
344 public int countMatches(final InterferometryMission pMission) {
345 return rawCountMatches(new Object[]{pMission});
346 }
347
348 /**
349 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
350 * Neither determinism nor randomness of selection is guaranteed.
351 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
352 * @param processor the action that will process the selected match.
353 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
354 *
355 */
356 public boolean forOneArbitraryMatch(final InterferometryMission pMission, final Consumer<? super NotEnoughInterferometryPayloads.Match> processor) {
357 return rawForOneArbitraryMatch(new Object[]{pMission}, processor);
358 }
359
360 /**
361 * Returns a new (partial) match.
362 * This can be used e.g. to call the matcher with a partial match.
363 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
364 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
365 * @return the (partial) match object.
366 *
367 */
368 public NotEnoughInterferometryPayloads.Match newMatch(final InterferometryMission pMission) {
369 return NotEnoughInterferometryPayloads.Match.newMatch(pMission);
370 }
371
372 /**
373 * Retrieve the set of values that occur in matches for Mission.
374 * @return the Set of all values or empty set if there are no matches
375 *
376 */
377 protected Stream<InterferometryMission> rawStreamAllValuesOfMission(final Object[] parameters) {
378 return rawStreamAllValues(POSITION_MISSION, parameters).map(InterferometryMission.class::cast);
379 }
380
381 /**
382 * Retrieve the set of values that occur in matches for Mission.
383 * @return the Set of all values or empty set if there are no matches
384 *
385 */
386 public Set<InterferometryMission> getAllValuesOfMission() {
387 return rawStreamAllValuesOfMission(emptyArray()).collect(Collectors.toSet());
388 }
389
390 /**
391 * Retrieve the set of values that occur in matches for Mission.
392 * @return the Set of all values or empty set if there are no matches
393 *
394 */
395 public Stream<InterferometryMission> streamAllValuesOfMission() {
396 return rawStreamAllValuesOfMission(emptyArray());
397 }
398
399 @Override
400 protected NotEnoughInterferometryPayloads.Match tupleToMatch(final Tuple t) {
401 try {
402 return NotEnoughInterferometryPayloads.Match.newMatch((InterferometryMission) t.get(POSITION_MISSION));
403 } catch(ClassCastException e) {
404 LOGGER.error("Element(s) in tuple not properly typed!",e);
405 return null;
406 }
407 }
408
409 @Override
410 protected NotEnoughInterferometryPayloads.Match arrayToMatch(final Object[] match) {
411 try {
412 return NotEnoughInterferometryPayloads.Match.newMatch((InterferometryMission) match[POSITION_MISSION]);
413 } catch(ClassCastException e) {
414 LOGGER.error("Element(s) in array not properly typed!",e);
415 return null;
416 }
417 }
418
419 @Override
420 protected NotEnoughInterferometryPayloads.Match arrayToMatchMutable(final Object[] match) {
421 try {
422 return NotEnoughInterferometryPayloads.Match.newMutableMatch((InterferometryMission) match[POSITION_MISSION]);
423 } catch(ClassCastException e) {
424 LOGGER.error("Element(s) in array not properly typed!",e);
425 return null;
426 }
427 }
428
429 /**
430 * @return the singleton instance of the query specification of this pattern
431 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
432 *
433 */
434 public static IQuerySpecification<NotEnoughInterferometryPayloads.Matcher> querySpecification() {
435 return NotEnoughInterferometryPayloads.instance();
436 }
437 }
438
439 private NotEnoughInterferometryPayloads() {
440 super(GeneratedPQuery.INSTANCE);
441 }
442
443 /**
444 * @return the singleton instance of the query specification
445 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
446 *
447 */
448 public static NotEnoughInterferometryPayloads instance() {
449 try{
450 return LazyHolder.INSTANCE;
451 } catch (ExceptionInInitializerError err) {
452 throw processInitializerError(err);
453 }
454 }
455
456 @Override
457 protected NotEnoughInterferometryPayloads.Matcher instantiate(final ViatraQueryEngine engine) {
458 return NotEnoughInterferometryPayloads.Matcher.on(engine);
459 }
460
461 @Override
462 public NotEnoughInterferometryPayloads.Matcher instantiate() {
463 return NotEnoughInterferometryPayloads.Matcher.create();
464 }
465
466 @Override
467 public NotEnoughInterferometryPayloads.Match newEmptyMatch() {
468 return NotEnoughInterferometryPayloads.Match.newEmptyMatch();
469 }
470
471 @Override
472 public NotEnoughInterferometryPayloads.Match newMatch(final Object... parameters) {
473 return NotEnoughInterferometryPayloads.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission) parameters[0]);
474 }
475
476 /**
477 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads (visibility: PUBLIC, simpleName: NotEnoughInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads, 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
478 * <b>not</b> at the class load time of the outer class,
479 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads (visibility: PUBLIC, simpleName: NotEnoughInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
480 *
481 * <p> This workaround is required e.g. to support recursion.
482 *
483 */
484 private static class LazyHolder {
485 private static final NotEnoughInterferometryPayloads INSTANCE = new NotEnoughInterferometryPayloads();
486
487 /**
488 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
489 * This initialization order is required to support indirect recursion.
490 *
491 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
492 *
493 */
494 private static final Object STATIC_INITIALIZER = ensureInitialized();
495
496 public static Object ensureInitialized() {
497 INSTANCE.ensureInitializedInternal();
498 return null;
499 }
500 }
501
502 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
503 private static final NotEnoughInterferometryPayloads.GeneratedPQuery INSTANCE = new GeneratedPQuery();
504
505 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);
506
507 private final List<PParameter> parameters = Arrays.asList(parameter_Mission);
508
509 private GeneratedPQuery() {
510 super(PVisibility.PUBLIC);
511 }
512
513 @Override
514 public String getFullyQualifiedName() {
515 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads";
516 }
517
518 @Override
519 public List<String> getParameterNames() {
520 return Arrays.asList("Mission");
521 }
522
523 @Override
524 public List<PParameter> getParameters() {
525 return parameters;
526 }
527
528 @Override
529 public Set<PBody> doGetContainedBodies() {
530 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
531 Set<PBody> bodies = new LinkedHashSet<>();
532 {
533 PBody body = new PBody(this);
534 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
535 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
536 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
537 new ExportedParameter(body, var_Mission, parameter_Mission)
538 ));
539 // InterferometryMission(Mission)
540 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
541 // neg find atLeastTwoInterferometryPayloads(Mission)
542 new NegativePatternCall(body, Tuples.flatTupleOf(var_Mission), AtLeastTwoInterferometryPayloads.instance().getInternalQueryRepresentation());
543 bodies.add(body);
544 }
545 return bodies;
546 }
547 }
548}
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
new file mode 100644
index 00000000..d4d72391
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java
@@ -0,0 +1,163 @@
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.CommunicationLinkDoesNotStartAtContainingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium;
17import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
18import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
19
20/**
21 * A pattern group formed of all public patterns defined in SatelliteQueries.vql.
22 *
23 * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare
24 * a VIATRA Query engine for matching all patterns originally defined in file SatelliteQueries.vql,
25 * in order to achieve better performance than one-by-one on-demand matcher initialization.
26 *
27 * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul>
28 * <li>communicationLinkDoesNotStartAtContainingElement</li>
29 * <li>notEnoughInterferometryPayloads</li>
30 * <li>noLinkToGroundStation</li>
31 * <li>communicationLoop</li>
32 * <li>incompatibleSourceAndTargetBand</li>
33 * <li>incompatibleSourceAndTargetGain</li>
34 * <li>uhfAntennaGainNotLow</li>
35 * <li>xAntennaGainNotMedium</li>
36 * <li>kaAntennaGainLow</li>
37 * <li>threeUCubeSatWithNonUhfCrossLink</li>
38 * <li>cubeSatWithKaAntenna</li>
39 * </ul>
40 *
41 * @see IQueryGroup
42 *
43 */
44@SuppressWarnings("all")
45public final class SatelliteQueries extends BaseGeneratedPatternGroup {
46 /**
47 * Access the pattern group.
48 *
49 * @return the singleton instance of the group
50 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
51 *
52 */
53 public static SatelliteQueries instance() {
54 if (INSTANCE == null) {
55 INSTANCE = new SatelliteQueries();
56 }
57 return INSTANCE;
58 }
59
60 private static SatelliteQueries INSTANCE;
61
62 private SatelliteQueries() {
63 querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance());
64 querySpecifications.add(NotEnoughInterferometryPayloads.instance());
65 querySpecifications.add(NoLinkToGroundStation.instance());
66 querySpecifications.add(CommunicationLoop.instance());
67 querySpecifications.add(IncompatibleSourceAndTargetBand.instance());
68 querySpecifications.add(IncompatibleSourceAndTargetGain.instance());
69 querySpecifications.add(UhfAntennaGainNotLow.instance());
70 querySpecifications.add(XAntennaGainNotMedium.instance());
71 querySpecifications.add(KaAntennaGainLow.instance());
72 querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance());
73 querySpecifications.add(CubeSatWithKaAntenna.instance());
74 }
75
76 public CommunicationLinkDoesNotStartAtContainingElement getCommunicationLinkDoesNotStartAtContainingElement() {
77 return CommunicationLinkDoesNotStartAtContainingElement.instance();
78 }
79
80 public CommunicationLinkDoesNotStartAtContainingElement.Matcher getCommunicationLinkDoesNotStartAtContainingElement(final ViatraQueryEngine engine) {
81 return CommunicationLinkDoesNotStartAtContainingElement.Matcher.on(engine);
82 }
83
84 public NotEnoughInterferometryPayloads getNotEnoughInterferometryPayloads() {
85 return NotEnoughInterferometryPayloads.instance();
86 }
87
88 public NotEnoughInterferometryPayloads.Matcher getNotEnoughInterferometryPayloads(final ViatraQueryEngine engine) {
89 return NotEnoughInterferometryPayloads.Matcher.on(engine);
90 }
91
92 public NoLinkToGroundStation getNoLinkToGroundStation() {
93 return NoLinkToGroundStation.instance();
94 }
95
96 public NoLinkToGroundStation.Matcher getNoLinkToGroundStation(final ViatraQueryEngine engine) {
97 return NoLinkToGroundStation.Matcher.on(engine);
98 }
99
100 public CommunicationLoop getCommunicationLoop() {
101 return CommunicationLoop.instance();
102 }
103
104 public CommunicationLoop.Matcher getCommunicationLoop(final ViatraQueryEngine engine) {
105 return CommunicationLoop.Matcher.on(engine);
106 }
107
108 public IncompatibleSourceAndTargetBand getIncompatibleSourceAndTargetBand() {
109 return IncompatibleSourceAndTargetBand.instance();
110 }
111
112 public IncompatibleSourceAndTargetBand.Matcher getIncompatibleSourceAndTargetBand(final ViatraQueryEngine engine) {
113 return IncompatibleSourceAndTargetBand.Matcher.on(engine);
114 }
115
116 public IncompatibleSourceAndTargetGain getIncompatibleSourceAndTargetGain() {
117 return IncompatibleSourceAndTargetGain.instance();
118 }
119
120 public IncompatibleSourceAndTargetGain.Matcher getIncompatibleSourceAndTargetGain(final ViatraQueryEngine engine) {
121 return IncompatibleSourceAndTargetGain.Matcher.on(engine);
122 }
123
124 public UhfAntennaGainNotLow getUhfAntennaGainNotLow() {
125 return UhfAntennaGainNotLow.instance();
126 }
127
128 public UhfAntennaGainNotLow.Matcher getUhfAntennaGainNotLow(final ViatraQueryEngine engine) {
129 return UhfAntennaGainNotLow.Matcher.on(engine);
130 }
131
132 public XAntennaGainNotMedium getXAntennaGainNotMedium() {
133 return XAntennaGainNotMedium.instance();
134 }
135
136 public XAntennaGainNotMedium.Matcher getXAntennaGainNotMedium(final ViatraQueryEngine engine) {
137 return XAntennaGainNotMedium.Matcher.on(engine);
138 }
139
140 public KaAntennaGainLow getKaAntennaGainLow() {
141 return KaAntennaGainLow.instance();
142 }
143
144 public KaAntennaGainLow.Matcher getKaAntennaGainLow(final ViatraQueryEngine engine) {
145 return KaAntennaGainLow.Matcher.on(engine);
146 }
147
148 public ThreeUCubeSatWithNonUhfCrossLink getThreeUCubeSatWithNonUhfCrossLink() {
149 return ThreeUCubeSatWithNonUhfCrossLink.instance();
150 }
151
152 public ThreeUCubeSatWithNonUhfCrossLink.Matcher getThreeUCubeSatWithNonUhfCrossLink(final ViatraQueryEngine engine) {
153 return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine);
154 }
155
156 public CubeSatWithKaAntenna getCubeSatWithKaAntenna() {
157 return CubeSatWithKaAntenna.instance();
158 }
159
160 public CubeSatWithKaAntenna.Matcher getCubeSatWithKaAntenna(final ViatraQueryEngine engine) {
161 return CubeSatWithKaAntenna.Matcher.on(engine);
162 }
163}
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
new file mode 100644
index 00000000..6408033b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java
@@ -0,0 +1,600 @@
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.CubeSat3U;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork;
9import java.util.Arrays;
10import java.util.Collection;
11import java.util.LinkedHashSet;
12import java.util.List;
13import java.util.Objects;
14import java.util.Optional;
15import java.util.Set;
16import java.util.function.Consumer;
17import java.util.stream.Collectors;
18import java.util.stream.Stream;
19import org.apache.log4j.Logger;
20import org.eclipse.emf.ecore.EClass;
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.EStructuralFeatureInstancesKey;
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.annotations.ParameterReference;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
42import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
43import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
44import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
45
46/**
47 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
48 *
49 * <p>Original source:
50 * <code><pre>
51 * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter,
52 * // but cross-link using UHF
53 *
54 * {@literal @}Constraint(severity = "error", key = {Sat},
55 * message = "3U CubeSats can only cross-link using UHF.")
56 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
57 * CommunicatingElement.commSubsystem(Sat, SourceComm);
58 * neg find commSubsystemBandUhf(SourceComm);
59 * DirectedCommunicationLink.source(Link, SourceComm);
60 * DirectedCommunicationLink.target(Link, TargetComm);
61 * CommunicatingElement.commSubsystem(Target, TargetComm);
62 * neg find groundStationNetwork(Target);
63 * }
64 * </pre></code>
65 *
66 * @see Matcher
67 * @see Match
68 *
69 */
70@SuppressWarnings("all")
71public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> {
72 /**
73 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern,
74 * to be used in conjunction with {@link Matcher}.
75 *
76 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
77 * Each instance is a (possibly partial) substitution of pattern parameters,
78 * usable to represent a match of the pattern in the result of a query,
79 * or to specify the bound (fixed) input parameters when issuing a query.
80 *
81 * @see Matcher
82 *
83 */
84 public static abstract class Match extends BasePatternMatch {
85 private CubeSat3U fSat;
86
87 private static List<String> parameterNames = makeImmutableList("Sat");
88
89 private Match(final CubeSat3U pSat) {
90 this.fSat = pSat;
91 }
92
93 @Override
94 public Object get(final String parameterName) {
95 if ("Sat".equals(parameterName)) return this.fSat;
96 return null;
97 }
98
99 public CubeSat3U getSat() {
100 return this.fSat;
101 }
102
103 @Override
104 public boolean set(final String parameterName, final Object newValue) {
105 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
106 if ("Sat".equals(parameterName) ) {
107 this.fSat = (CubeSat3U) newValue;
108 return true;
109 }
110 return false;
111 }
112
113 public void setSat(final CubeSat3U pSat) {
114 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
115 this.fSat = pSat;
116 }
117
118 @Override
119 public String patternName() {
120 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink";
121 }
122
123 @Override
124 public List<String> parameterNames() {
125 return ThreeUCubeSatWithNonUhfCrossLink.Match.parameterNames;
126 }
127
128 @Override
129 public Object[] toArray() {
130 return new Object[]{fSat};
131 }
132
133 @Override
134 public ThreeUCubeSatWithNonUhfCrossLink.Match toImmutable() {
135 return isMutable() ? newMatch(fSat) : this;
136 }
137
138 @Override
139 public String prettyPrint() {
140 StringBuilder result = new StringBuilder();
141 result.append("\"Sat\"=" + prettyPrintValue(fSat));
142 return result.toString();
143 }
144
145 @Override
146 public int hashCode() {
147 return Objects.hash(fSat);
148 }
149
150 @Override
151 public boolean equals(final Object obj) {
152 if (this == obj)
153 return true;
154 if (obj == null) {
155 return false;
156 }
157 if ((obj instanceof ThreeUCubeSatWithNonUhfCrossLink.Match)) {
158 ThreeUCubeSatWithNonUhfCrossLink.Match other = (ThreeUCubeSatWithNonUhfCrossLink.Match) obj;
159 return Objects.equals(fSat, other.fSat);
160 } else {
161 // this should be infrequent
162 if (!(obj instanceof IPatternMatch)) {
163 return false;
164 }
165 IPatternMatch otherSig = (IPatternMatch) obj;
166 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
167 }
168 }
169
170 @Override
171 public ThreeUCubeSatWithNonUhfCrossLink specification() {
172 return ThreeUCubeSatWithNonUhfCrossLink.instance();
173 }
174
175 /**
176 * Returns an empty, mutable match.
177 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
178 *
179 * @return the empty match.
180 *
181 */
182 public static ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() {
183 return new Mutable(null);
184 }
185
186 /**
187 * Returns a mutable (partial) match.
188 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
189 *
190 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
191 * @return the new, mutable (partial) match object.
192 *
193 */
194 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMutableMatch(final CubeSat3U pSat) {
195 return new Mutable(pSat);
196 }
197
198 /**
199 * Returns a new (partial) match.
200 * This can be used e.g. to call the matcher with a partial match.
201 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
202 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
203 * @return the (partial) match object.
204 *
205 */
206 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) {
207 return new Immutable(pSat);
208 }
209
210 private static final class Mutable extends ThreeUCubeSatWithNonUhfCrossLink.Match {
211 Mutable(final CubeSat3U pSat) {
212 super(pSat);
213 }
214
215 @Override
216 public boolean isMutable() {
217 return true;
218 }
219 }
220
221 private static final class Immutable extends ThreeUCubeSatWithNonUhfCrossLink.Match {
222 Immutable(final CubeSat3U pSat) {
223 super(pSat);
224 }
225
226 @Override
227 public boolean isMutable() {
228 return false;
229 }
230 }
231 }
232
233 /**
234 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern,
235 * providing pattern-specific query methods.
236 *
237 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
238 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
239 *
240 * <p>Matches of the pattern will be represented as {@link Match}.
241 *
242 * <p>Original source:
243 * <code><pre>
244 * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter,
245 * // but cross-link using UHF
246 *
247 * {@literal @}Constraint(severity = "error", key = {Sat},
248 * message = "3U CubeSats can only cross-link using UHF.")
249 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
250 * CommunicatingElement.commSubsystem(Sat, SourceComm);
251 * neg find commSubsystemBandUhf(SourceComm);
252 * DirectedCommunicationLink.source(Link, SourceComm);
253 * DirectedCommunicationLink.target(Link, TargetComm);
254 * CommunicatingElement.commSubsystem(Target, TargetComm);
255 * neg find groundStationNetwork(Target);
256 * }
257 * </pre></code>
258 *
259 * @see Match
260 * @see ThreeUCubeSatWithNonUhfCrossLink
261 *
262 */
263 public static class Matcher extends BaseMatcher<ThreeUCubeSatWithNonUhfCrossLink.Match> {
264 /**
265 * Initializes the pattern matcher within an existing VIATRA Query engine.
266 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
267 *
268 * @param engine the existing VIATRA Query engine in which this matcher will be created.
269 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
270 *
271 */
272 public static ThreeUCubeSatWithNonUhfCrossLink.Matcher on(final ViatraQueryEngine engine) {
273 // check if matcher already exists
274 Matcher matcher = engine.getExistingMatcher(querySpecification());
275 if (matcher == null) {
276 matcher = (Matcher)engine.getMatcher(querySpecification());
277 }
278 return matcher;
279 }
280
281 /**
282 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
283 * @return an initialized matcher
284 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
285 *
286 */
287 public static ThreeUCubeSatWithNonUhfCrossLink.Matcher create() {
288 return new Matcher();
289 }
290
291 private static final int POSITION_SAT = 0;
292
293 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(ThreeUCubeSatWithNonUhfCrossLink.Matcher.class);
294
295 /**
296 * Initializes the pattern matcher within an existing VIATRA Query engine.
297 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
298 *
299 * @param engine the existing VIATRA Query engine in which this matcher will be created.
300 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
301 *
302 */
303 private Matcher() {
304 super(querySpecification());
305 }
306
307 /**
308 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
309 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
310 * @return matches represented as a Match object.
311 *
312 */
313 public Collection<ThreeUCubeSatWithNonUhfCrossLink.Match> getAllMatches(final CubeSat3U pSat) {
314 return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet());
315 }
316
317 /**
318 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
319 * </p>
320 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
321 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
322 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
323 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
324 * @return a stream of matches represented as a Match object.
325 *
326 */
327 public Stream<ThreeUCubeSatWithNonUhfCrossLink.Match> streamAllMatches(final CubeSat3U pSat) {
328 return rawStreamAllMatches(new Object[]{pSat});
329 }
330
331 /**
332 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
333 * Neither determinism nor randomness of selection is guaranteed.
334 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
335 * @return a match represented as a Match object, or null if no match is found.
336 *
337 */
338 public Optional<ThreeUCubeSatWithNonUhfCrossLink.Match> getOneArbitraryMatch(final CubeSat3U pSat) {
339 return rawGetOneArbitraryMatch(new Object[]{pSat});
340 }
341
342 /**
343 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
344 * under any possible substitution of the unspecified parameters (if any).
345 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
346 * @return true if the input is a valid (partial) match of the pattern.
347 *
348 */
349 public boolean hasMatch(final CubeSat3U pSat) {
350 return rawHasMatch(new Object[]{pSat});
351 }
352
353 /**
354 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
355 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
356 * @return the number of pattern matches found.
357 *
358 */
359 public int countMatches(final CubeSat3U pSat) {
360 return rawCountMatches(new Object[]{pSat});
361 }
362
363 /**
364 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
365 * Neither determinism nor randomness of selection is guaranteed.
366 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
367 * @param processor the action that will process the selected match.
368 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
369 *
370 */
371 public boolean forOneArbitraryMatch(final CubeSat3U pSat, final Consumer<? super ThreeUCubeSatWithNonUhfCrossLink.Match> processor) {
372 return rawForOneArbitraryMatch(new Object[]{pSat}, processor);
373 }
374
375 /**
376 * Returns a new (partial) match.
377 * This can be used e.g. to call the matcher with a partial match.
378 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
379 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
380 * @return the (partial) match object.
381 *
382 */
383 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) {
384 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch(pSat);
385 }
386
387 /**
388 * Retrieve the set of values that occur in matches for Sat.
389 * @return the Set of all values or empty set if there are no matches
390 *
391 */
392 protected Stream<CubeSat3U> rawStreamAllValuesOfSat(final Object[] parameters) {
393 return rawStreamAllValues(POSITION_SAT, parameters).map(CubeSat3U.class::cast);
394 }
395
396 /**
397 * Retrieve the set of values that occur in matches for Sat.
398 * @return the Set of all values or empty set if there are no matches
399 *
400 */
401 public Set<CubeSat3U> getAllValuesOfSat() {
402 return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet());
403 }
404
405 /**
406 * Retrieve the set of values that occur in matches for Sat.
407 * @return the Set of all values or empty set if there are no matches
408 *
409 */
410 public Stream<CubeSat3U> streamAllValuesOfSat() {
411 return rawStreamAllValuesOfSat(emptyArray());
412 }
413
414 @Override
415 protected ThreeUCubeSatWithNonUhfCrossLink.Match tupleToMatch(final Tuple t) {
416 try {
417 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) t.get(POSITION_SAT));
418 } catch(ClassCastException e) {
419 LOGGER.error("Element(s) in tuple not properly typed!",e);
420 return null;
421 }
422 }
423
424 @Override
425 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatch(final Object[] match) {
426 try {
427 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) match[POSITION_SAT]);
428 } catch(ClassCastException e) {
429 LOGGER.error("Element(s) in array not properly typed!",e);
430 return null;
431 }
432 }
433
434 @Override
435 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatchMutable(final Object[] match) {
436 try {
437 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMutableMatch((CubeSat3U) match[POSITION_SAT]);
438 } catch(ClassCastException e) {
439 LOGGER.error("Element(s) in array not properly typed!",e);
440 return null;
441 }
442 }
443
444 /**
445 * @return the singleton instance of the query specification of this pattern
446 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
447 *
448 */
449 public static IQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> querySpecification() {
450 return ThreeUCubeSatWithNonUhfCrossLink.instance();
451 }
452 }
453
454 private ThreeUCubeSatWithNonUhfCrossLink() {
455 super(GeneratedPQuery.INSTANCE);
456 }
457
458 /**
459 * @return the singleton instance of the query specification
460 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
461 *
462 */
463 public static ThreeUCubeSatWithNonUhfCrossLink instance() {
464 try{
465 return LazyHolder.INSTANCE;
466 } catch (ExceptionInInitializerError err) {
467 throw processInitializerError(err);
468 }
469 }
470
471 @Override
472 protected ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate(final ViatraQueryEngine engine) {
473 return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine);
474 }
475
476 @Override
477 public ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate() {
478 return ThreeUCubeSatWithNonUhfCrossLink.Matcher.create();
479 }
480
481 @Override
482 public ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() {
483 return ThreeUCubeSatWithNonUhfCrossLink.Match.newEmptyMatch();
484 }
485
486 @Override
487 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Object... parameters) {
488 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U) parameters[0]);
489 }
490
491 /**
492 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink (visibility: PUBLIC, simpleName: ThreeUCubeSatWithNonUhfCrossLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink, 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
493 * <b>not</b> at the class load time of the outer class,
494 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink (visibility: PUBLIC, simpleName: ThreeUCubeSatWithNonUhfCrossLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
495 *
496 * <p> This workaround is required e.g. to support recursion.
497 *
498 */
499 private static class LazyHolder {
500 private static final ThreeUCubeSatWithNonUhfCrossLink INSTANCE = new ThreeUCubeSatWithNonUhfCrossLink();
501
502 /**
503 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
504 * This initialization order is required to support indirect recursion.
505 *
506 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
507 *
508 */
509 private static final Object STATIC_INITIALIZER = ensureInitialized();
510
511 public static Object ensureInitialized() {
512 INSTANCE.ensureInitializedInternal();
513 return null;
514 }
515 }
516
517 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
518 private static final ThreeUCubeSatWithNonUhfCrossLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
519
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);
521
522 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
523
524 private GeneratedPQuery() {
525 super(PVisibility.PUBLIC);
526 }
527
528 @Override
529 public String getFullyQualifiedName() {
530 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink";
531 }
532
533 @Override
534 public List<String> getParameterNames() {
535 return Arrays.asList("Sat");
536 }
537
538 @Override
539 public List<PParameter> getParameters() {
540 return parameters;
541 }
542
543 @Override
544 public Set<PBody> doGetContainedBodies() {
545 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
546 Set<PBody> bodies = new LinkedHashSet<>();
547 {
548 PBody body = new PBody(this);
549 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
550 PVariable var_SourceComm = body.getOrCreateVariableByName("SourceComm");
551 PVariable var_Link = body.getOrCreateVariableByName("Link");
552 PVariable var_TargetComm = body.getOrCreateVariableByName("TargetComm");
553 PVariable var_Target = body.getOrCreateVariableByName("Target");
554 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
555 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
556 new ExportedParameter(body, var_Sat, parameter_Sat)
557 ));
558 // CommunicatingElement.commSubsystem(Sat, SourceComm)
559 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
560 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
561 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
562 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
563 new Equality(body, var__virtual_0_, var_SourceComm);
564 // neg find commSubsystemBandUhf(SourceComm)
565 new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceComm), CommSubsystemBandUhf.instance().getInternalQueryRepresentation());
566 // DirectedCommunicationLink.source(Link, SourceComm)
567 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
568 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
569 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
570 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
571 new Equality(body, var__virtual_1_, var_SourceComm);
572 // DirectedCommunicationLink.target(Link, TargetComm)
573 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
574 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
575 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target")));
576 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
577 new Equality(body, var__virtual_2_, var_TargetComm);
578 // CommunicatingElement.commSubsystem(Target, TargetComm)
579 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
580 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
581 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
582 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
583 new Equality(body, var__virtual_3_, var_TargetComm);
584 // neg find groundStationNetwork(Target)
585 new NegativePatternCall(body, Tuples.flatTupleOf(var_Target), GroundStationNetwork.instance().getInternalQueryRepresentation());
586 bodies.add(body);
587 }
588 {
589 PAnnotation annotation = new PAnnotation("Constraint");
590 annotation.addAttribute("severity", "error");
591 annotation.addAttribute("key", Arrays.asList(new Object[] {
592 new ParameterReference("Sat")
593 }));
594 annotation.addAttribute("message", "3U CubeSats can only cross-link using UHF.");
595 addAnnotation(annotation);
596 }
597 return bodies;
598 }
599 }
600}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/UhfAntennaGainNotLow.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/UhfAntennaGainNotLow.java
new file mode 100644
index 00000000..62222ded
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/UhfAntennaGainNotLow.java
@@ -0,0 +1,576 @@
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.CommSubsystem;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow;
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.emf.types.EStructuralFeatureInstancesKey;
31import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
33import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
34import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
35import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
40import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
43import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
44import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
45import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
46import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
47
48/**
49 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
50 *
51 * <p>Original source:
52 * <code><pre>
53 * // UHF-band transmitters may only be combined with a low gain antenna
54 *
55 * {@literal @}Constraint(severity = "error", key = {Comm},
56 * message = "UHF transceiver must be combined with a low gain antenna.")
57 * pattern uhfAntennaGainNotLow(Comm : CommSubsystem) {
58 * CommSubsystem.band(Comm, TransceiverBand::UHF);
59 * // VIATRA will fail to infer a type constraint for the virtual variable introduced
60 * // when an enum literal appears in a negative pattern call, so we use a helper pattern
61 * // instead of neg find commSubsystemGain(Comm, AntennaGain::LOW);
62 * neg find commSubsystemGainLow(Comm);
63 * }
64 * </pre></code>
65 *
66 * @see Matcher
67 * @see Match
68 *
69 */
70@SuppressWarnings("all")
71public final class UhfAntennaGainNotLow extends BaseGeneratedEMFQuerySpecification<UhfAntennaGainNotLow.Matcher> {
72 /**
73 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow pattern,
74 * to be used in conjunction with {@link Matcher}.
75 *
76 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
77 * Each instance is a (possibly partial) substitution of pattern parameters,
78 * usable to represent a match of the pattern in the result of a query,
79 * or to specify the bound (fixed) input parameters when issuing a query.
80 *
81 * @see Matcher
82 *
83 */
84 public static abstract class Match extends BasePatternMatch {
85 private CommSubsystem fComm;
86
87 private static List<String> parameterNames = makeImmutableList("Comm");
88
89 private Match(final CommSubsystem pComm) {
90 this.fComm = pComm;
91 }
92
93 @Override
94 public Object get(final String parameterName) {
95 if ("Comm".equals(parameterName)) return this.fComm;
96 return null;
97 }
98
99 public CommSubsystem getComm() {
100 return this.fComm;
101 }
102
103 @Override
104 public boolean set(final String parameterName, final Object newValue) {
105 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
106 if ("Comm".equals(parameterName) ) {
107 this.fComm = (CommSubsystem) newValue;
108 return true;
109 }
110 return false;
111 }
112
113 public void setComm(final CommSubsystem pComm) {
114 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
115 this.fComm = pComm;
116 }
117
118 @Override
119 public String patternName() {
120 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow";
121 }
122
123 @Override
124 public List<String> parameterNames() {
125 return UhfAntennaGainNotLow.Match.parameterNames;
126 }
127
128 @Override
129 public Object[] toArray() {
130 return new Object[]{fComm};
131 }
132
133 @Override
134 public UhfAntennaGainNotLow.Match toImmutable() {
135 return isMutable() ? newMatch(fComm) : this;
136 }
137
138 @Override
139 public String prettyPrint() {
140 StringBuilder result = new StringBuilder();
141 result.append("\"Comm\"=" + prettyPrintValue(fComm));
142 return result.toString();
143 }
144
145 @Override
146 public int hashCode() {
147 return Objects.hash(fComm);
148 }
149
150 @Override
151 public boolean equals(final Object obj) {
152 if (this == obj)
153 return true;
154 if (obj == null) {
155 return false;
156 }
157 if ((obj instanceof UhfAntennaGainNotLow.Match)) {
158 UhfAntennaGainNotLow.Match other = (UhfAntennaGainNotLow.Match) obj;
159 return Objects.equals(fComm, other.fComm);
160 } else {
161 // this should be infrequent
162 if (!(obj instanceof IPatternMatch)) {
163 return false;
164 }
165 IPatternMatch otherSig = (IPatternMatch) obj;
166 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
167 }
168 }
169
170 @Override
171 public UhfAntennaGainNotLow specification() {
172 return UhfAntennaGainNotLow.instance();
173 }
174
175 /**
176 * Returns an empty, mutable match.
177 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
178 *
179 * @return the empty match.
180 *
181 */
182 public static UhfAntennaGainNotLow.Match newEmptyMatch() {
183 return new Mutable(null);
184 }
185
186 /**
187 * Returns a mutable (partial) match.
188 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
189 *
190 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
191 * @return the new, mutable (partial) match object.
192 *
193 */
194 public static UhfAntennaGainNotLow.Match newMutableMatch(final CommSubsystem pComm) {
195 return new Mutable(pComm);
196 }
197
198 /**
199 * Returns a new (partial) match.
200 * This can be used e.g. to call the matcher with a partial match.
201 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
202 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
203 * @return the (partial) match object.
204 *
205 */
206 public static UhfAntennaGainNotLow.Match newMatch(final CommSubsystem pComm) {
207 return new Immutable(pComm);
208 }
209
210 private static final class Mutable extends UhfAntennaGainNotLow.Match {
211 Mutable(final CommSubsystem pComm) {
212 super(pComm);
213 }
214
215 @Override
216 public boolean isMutable() {
217 return true;
218 }
219 }
220
221 private static final class Immutable extends UhfAntennaGainNotLow.Match {
222 Immutable(final CommSubsystem pComm) {
223 super(pComm);
224 }
225
226 @Override
227 public boolean isMutable() {
228 return false;
229 }
230 }
231 }
232
233 /**
234 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow pattern,
235 * providing pattern-specific query methods.
236 *
237 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
238 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
239 *
240 * <p>Matches of the pattern will be represented as {@link Match}.
241 *
242 * <p>Original source:
243 * <code><pre>
244 * // UHF-band transmitters may only be combined with a low gain antenna
245 *
246 * {@literal @}Constraint(severity = "error", key = {Comm},
247 * message = "UHF transceiver must be combined with a low gain antenna.")
248 * pattern uhfAntennaGainNotLow(Comm : CommSubsystem) {
249 * CommSubsystem.band(Comm, TransceiverBand::UHF);
250 * // VIATRA will fail to infer a type constraint for the virtual variable introduced
251 * // when an enum literal appears in a negative pattern call, so we use a helper pattern
252 * // instead of neg find commSubsystemGain(Comm, AntennaGain::LOW);
253 * neg find commSubsystemGainLow(Comm);
254 * }
255 * </pre></code>
256 *
257 * @see Match
258 * @see UhfAntennaGainNotLow
259 *
260 */
261 public static class Matcher extends BaseMatcher<UhfAntennaGainNotLow.Match> {
262 /**
263 * Initializes the pattern matcher within an existing VIATRA Query engine.
264 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
265 *
266 * @param engine the existing VIATRA Query engine in which this matcher will be created.
267 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
268 *
269 */
270 public static UhfAntennaGainNotLow.Matcher on(final ViatraQueryEngine engine) {
271 // check if matcher already exists
272 Matcher matcher = engine.getExistingMatcher(querySpecification());
273 if (matcher == null) {
274 matcher = (Matcher)engine.getMatcher(querySpecification());
275 }
276 return matcher;
277 }
278
279 /**
280 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
281 * @return an initialized matcher
282 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
283 *
284 */
285 public static UhfAntennaGainNotLow.Matcher create() {
286 return new Matcher();
287 }
288
289 private static final int POSITION_COMM = 0;
290
291 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(UhfAntennaGainNotLow.Matcher.class);
292
293 /**
294 * Initializes the pattern matcher within an existing VIATRA Query engine.
295 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
296 *
297 * @param engine the existing VIATRA Query engine in which this matcher will be created.
298 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
299 *
300 */
301 private Matcher() {
302 super(querySpecification());
303 }
304
305 /**
306 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
307 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
308 * @return matches represented as a Match object.
309 *
310 */
311 public Collection<UhfAntennaGainNotLow.Match> getAllMatches(final CommSubsystem pComm) {
312 return rawStreamAllMatches(new Object[]{pComm}).collect(Collectors.toSet());
313 }
314
315 /**
316 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
317 * </p>
318 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
319 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
320 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
321 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
322 * @return a stream of matches represented as a Match object.
323 *
324 */
325 public Stream<UhfAntennaGainNotLow.Match> streamAllMatches(final CommSubsystem pComm) {
326 return rawStreamAllMatches(new Object[]{pComm});
327 }
328
329 /**
330 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
331 * Neither determinism nor randomness of selection is guaranteed.
332 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
333 * @return a match represented as a Match object, or null if no match is found.
334 *
335 */
336 public Optional<UhfAntennaGainNotLow.Match> getOneArbitraryMatch(final CommSubsystem pComm) {
337 return rawGetOneArbitraryMatch(new Object[]{pComm});
338 }
339
340 /**
341 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
342 * under any possible substitution of the unspecified parameters (if any).
343 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
344 * @return true if the input is a valid (partial) match of the pattern.
345 *
346 */
347 public boolean hasMatch(final CommSubsystem pComm) {
348 return rawHasMatch(new Object[]{pComm});
349 }
350
351 /**
352 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
353 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
354 * @return the number of pattern matches found.
355 *
356 */
357 public int countMatches(final CommSubsystem pComm) {
358 return rawCountMatches(new Object[]{pComm});
359 }
360
361 /**
362 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
363 * Neither determinism nor randomness of selection is guaranteed.
364 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
365 * @param processor the action that will process the selected match.
366 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
367 *
368 */
369 public boolean forOneArbitraryMatch(final CommSubsystem pComm, final Consumer<? super UhfAntennaGainNotLow.Match> processor) {
370 return rawForOneArbitraryMatch(new Object[]{pComm}, processor);
371 }
372
373 /**
374 * Returns a new (partial) match.
375 * This can be used e.g. to call the matcher with a partial match.
376 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
377 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
378 * @return the (partial) match object.
379 *
380 */
381 public UhfAntennaGainNotLow.Match newMatch(final CommSubsystem pComm) {
382 return UhfAntennaGainNotLow.Match.newMatch(pComm);
383 }
384
385 /**
386 * Retrieve the set of values that occur in matches for Comm.
387 * @return the Set of all values or empty set if there are no matches
388 *
389 */
390 protected Stream<CommSubsystem> rawStreamAllValuesOfComm(final Object[] parameters) {
391 return rawStreamAllValues(POSITION_COMM, parameters).map(CommSubsystem.class::cast);
392 }
393
394 /**
395 * Retrieve the set of values that occur in matches for Comm.
396 * @return the Set of all values or empty set if there are no matches
397 *
398 */
399 public Set<CommSubsystem> getAllValuesOfComm() {
400 return rawStreamAllValuesOfComm(emptyArray()).collect(Collectors.toSet());
401 }
402
403 /**
404 * Retrieve the set of values that occur in matches for Comm.
405 * @return the Set of all values or empty set if there are no matches
406 *
407 */
408 public Stream<CommSubsystem> streamAllValuesOfComm() {
409 return rawStreamAllValuesOfComm(emptyArray());
410 }
411
412 @Override
413 protected UhfAntennaGainNotLow.Match tupleToMatch(final Tuple t) {
414 try {
415 return UhfAntennaGainNotLow.Match.newMatch((CommSubsystem) t.get(POSITION_COMM));
416 } catch(ClassCastException e) {
417 LOGGER.error("Element(s) in tuple not properly typed!",e);
418 return null;
419 }
420 }
421
422 @Override
423 protected UhfAntennaGainNotLow.Match arrayToMatch(final Object[] match) {
424 try {
425 return UhfAntennaGainNotLow.Match.newMatch((CommSubsystem) match[POSITION_COMM]);
426 } catch(ClassCastException e) {
427 LOGGER.error("Element(s) in array not properly typed!",e);
428 return null;
429 }
430 }
431
432 @Override
433 protected UhfAntennaGainNotLow.Match arrayToMatchMutable(final Object[] match) {
434 try {
435 return UhfAntennaGainNotLow.Match.newMutableMatch((CommSubsystem) match[POSITION_COMM]);
436 } catch(ClassCastException e) {
437 LOGGER.error("Element(s) in array not properly typed!",e);
438 return null;
439 }
440 }
441
442 /**
443 * @return the singleton instance of the query specification of this pattern
444 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
445 *
446 */
447 public static IQuerySpecification<UhfAntennaGainNotLow.Matcher> querySpecification() {
448 return UhfAntennaGainNotLow.instance();
449 }
450 }
451
452 private UhfAntennaGainNotLow() {
453 super(GeneratedPQuery.INSTANCE);
454 }
455
456 /**
457 * @return the singleton instance of the query specification
458 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
459 *
460 */
461 public static UhfAntennaGainNotLow instance() {
462 try{
463 return LazyHolder.INSTANCE;
464 } catch (ExceptionInInitializerError err) {
465 throw processInitializerError(err);
466 }
467 }
468
469 @Override
470 protected UhfAntennaGainNotLow.Matcher instantiate(final ViatraQueryEngine engine) {
471 return UhfAntennaGainNotLow.Matcher.on(engine);
472 }
473
474 @Override
475 public UhfAntennaGainNotLow.Matcher instantiate() {
476 return UhfAntennaGainNotLow.Matcher.create();
477 }
478
479 @Override
480 public UhfAntennaGainNotLow.Match newEmptyMatch() {
481 return UhfAntennaGainNotLow.Match.newEmptyMatch();
482 }
483
484 @Override
485 public UhfAntennaGainNotLow.Match newMatch(final Object... parameters) {
486 return UhfAntennaGainNotLow.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem) parameters[0]);
487 }
488
489 /**
490 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow (visibility: PUBLIC, simpleName: UhfAntennaGainNotLow, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow, 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
491 * <b>not</b> at the class load time of the outer class,
492 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow (visibility: PUBLIC, simpleName: UhfAntennaGainNotLow, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
493 *
494 * <p> This workaround is required e.g. to support recursion.
495 *
496 */
497 private static class LazyHolder {
498 private static final UhfAntennaGainNotLow INSTANCE = new UhfAntennaGainNotLow();
499
500 /**
501 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
502 * This initialization order is required to support indirect recursion.
503 *
504 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
505 *
506 */
507 private static final Object STATIC_INITIALIZER = ensureInitialized();
508
509 public static Object ensureInitialized() {
510 INSTANCE.ensureInitializedInternal();
511 return null;
512 }
513 }
514
515 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
516 private static final UhfAntennaGainNotLow.GeneratedPQuery INSTANCE = new GeneratedPQuery();
517
518 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
519
520 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
521
522 private GeneratedPQuery() {
523 super(PVisibility.PUBLIC);
524 }
525
526 @Override
527 public String getFullyQualifiedName() {
528 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow";
529 }
530
531 @Override
532 public List<String> getParameterNames() {
533 return Arrays.asList("Comm");
534 }
535
536 @Override
537 public List<PParameter> getParameters() {
538 return parameters;
539 }
540
541 @Override
542 public Set<PBody> doGetContainedBodies() {
543 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
544 Set<PBody> bodies = new LinkedHashSet<>();
545 {
546 PBody body = new PBody(this);
547 PVariable var_Comm = body.getOrCreateVariableByName("Comm");
548 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
549 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
550 new ExportedParameter(body, var_Comm, parameter_Comm)
551 ));
552 // CommSubsystem.band(Comm, TransceiverBand::UHF)
553 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
554 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "UHF").getInstance());
555 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
556 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
557 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
558 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
559 new Equality(body, var__virtual_1_, var__virtual_0_);
560 // // VIATRA will fail to infer a type constraint for the virtual variable introduced // when an enum literal appears in a negative pattern call, so we use a helper pattern // instead of neg find commSubsystemGain(Comm, AntennaGain::LOW); neg find commSubsystemGainLow(Comm)
561 new NegativePatternCall(body, Tuples.flatTupleOf(var_Comm), CommSubsystemGainLow.instance().getInternalQueryRepresentation());
562 bodies.add(body);
563 }
564 {
565 PAnnotation annotation = new PAnnotation("Constraint");
566 annotation.addAttribute("severity", "error");
567 annotation.addAttribute("key", Arrays.asList(new Object[] {
568 new ParameterReference("Comm")
569 }));
570 annotation.addAttribute("message", "UHF transceiver must be combined with a low gain antenna.");
571 addAnnotation(annotation);
572 }
573 return bodies;
574 }
575 }
576}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/XAntennaGainNotMedium.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/XAntennaGainNotMedium.java
new file mode 100644
index 00000000..dbe6d26e
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/XAntennaGainNotMedium.java
@@ -0,0 +1,570 @@
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.CommSubsystem;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium;
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.emf.types.EStructuralFeatureInstancesKey;
31import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
33import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
34import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
35import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue;
40import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
43import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
44import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
45import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
46import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
47
48/**
49 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
50 *
51 * <p>Original source:
52 * <code><pre>
53 * // X-band transmitters may only be combined with a medium gain antenna
54 *
55 * {@literal @}Constraint(severity = "error", key = {Comm},
56 * message = "X-band transceiver must be combined with a medium gain antenna.")
57 * pattern xAntennaGainNotMedium(Comm : CommSubsystem) {
58 * CommSubsystem.band(Comm, TransceiverBand::X);
59 * neg find commSubsystemGainMedium(Comm);
60 * }
61 * </pre></code>
62 *
63 * @see Matcher
64 * @see Match
65 *
66 */
67@SuppressWarnings("all")
68public final class XAntennaGainNotMedium extends BaseGeneratedEMFQuerySpecification<XAntennaGainNotMedium.Matcher> {
69 /**
70 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium 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 CommSubsystem fComm;
83
84 private static List<String> parameterNames = makeImmutableList("Comm");
85
86 private Match(final CommSubsystem pComm) {
87 this.fComm = pComm;
88 }
89
90 @Override
91 public Object get(final String parameterName) {
92 if ("Comm".equals(parameterName)) return this.fComm;
93 return null;
94 }
95
96 public CommSubsystem getComm() {
97 return this.fComm;
98 }
99
100 @Override
101 public boolean set(final String parameterName, final Object newValue) {
102 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
103 if ("Comm".equals(parameterName) ) {
104 this.fComm = (CommSubsystem) newValue;
105 return true;
106 }
107 return false;
108 }
109
110 public void setComm(final CommSubsystem pComm) {
111 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
112 this.fComm = pComm;
113 }
114
115 @Override
116 public String patternName() {
117 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium";
118 }
119
120 @Override
121 public List<String> parameterNames() {
122 return XAntennaGainNotMedium.Match.parameterNames;
123 }
124
125 @Override
126 public Object[] toArray() {
127 return new Object[]{fComm};
128 }
129
130 @Override
131 public XAntennaGainNotMedium.Match toImmutable() {
132 return isMutable() ? newMatch(fComm) : this;
133 }
134
135 @Override
136 public String prettyPrint() {
137 StringBuilder result = new StringBuilder();
138 result.append("\"Comm\"=" + prettyPrintValue(fComm));
139 return result.toString();
140 }
141
142 @Override
143 public int hashCode() {
144 return Objects.hash(fComm);
145 }
146
147 @Override
148 public boolean equals(final Object obj) {
149 if (this == obj)
150 return true;
151 if (obj == null) {
152 return false;
153 }
154 if ((obj instanceof XAntennaGainNotMedium.Match)) {
155 XAntennaGainNotMedium.Match other = (XAntennaGainNotMedium.Match) obj;
156 return Objects.equals(fComm, other.fComm);
157 } else {
158 // this should be infrequent
159 if (!(obj instanceof IPatternMatch)) {
160 return false;
161 }
162 IPatternMatch otherSig = (IPatternMatch) obj;
163 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
164 }
165 }
166
167 @Override
168 public XAntennaGainNotMedium specification() {
169 return XAntennaGainNotMedium.instance();
170 }
171
172 /**
173 * Returns an empty, mutable match.
174 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
175 *
176 * @return the empty match.
177 *
178 */
179 public static XAntennaGainNotMedium.Match newEmptyMatch() {
180 return new Mutable(null);
181 }
182
183 /**
184 * Returns a mutable (partial) match.
185 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
186 *
187 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
188 * @return the new, mutable (partial) match object.
189 *
190 */
191 public static XAntennaGainNotMedium.Match newMutableMatch(final CommSubsystem pComm) {
192 return new Mutable(pComm);
193 }
194
195 /**
196 * Returns a new (partial) match.
197 * This can be used e.g. to call the matcher with a partial match.
198 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
199 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
200 * @return the (partial) match object.
201 *
202 */
203 public static XAntennaGainNotMedium.Match newMatch(final CommSubsystem pComm) {
204 return new Immutable(pComm);
205 }
206
207 private static final class Mutable extends XAntennaGainNotMedium.Match {
208 Mutable(final CommSubsystem pComm) {
209 super(pComm);
210 }
211
212 @Override
213 public boolean isMutable() {
214 return true;
215 }
216 }
217
218 private static final class Immutable extends XAntennaGainNotMedium.Match {
219 Immutable(final CommSubsystem pComm) {
220 super(pComm);
221 }
222
223 @Override
224 public boolean isMutable() {
225 return false;
226 }
227 }
228 }
229
230 /**
231 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium pattern,
232 * providing pattern-specific query methods.
233 *
234 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
235 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
236 *
237 * <p>Matches of the pattern will be represented as {@link Match}.
238 *
239 * <p>Original source:
240 * <code><pre>
241 * // X-band transmitters may only be combined with a medium gain antenna
242 *
243 * {@literal @}Constraint(severity = "error", key = {Comm},
244 * message = "X-band transceiver must be combined with a medium gain antenna.")
245 * pattern xAntennaGainNotMedium(Comm : CommSubsystem) {
246 * CommSubsystem.band(Comm, TransceiverBand::X);
247 * neg find commSubsystemGainMedium(Comm);
248 * }
249 * </pre></code>
250 *
251 * @see Match
252 * @see XAntennaGainNotMedium
253 *
254 */
255 public static class Matcher extends BaseMatcher<XAntennaGainNotMedium.Match> {
256 /**
257 * Initializes the pattern matcher within an existing VIATRA Query engine.
258 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
259 *
260 * @param engine the existing VIATRA Query engine in which this matcher will be created.
261 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
262 *
263 */
264 public static XAntennaGainNotMedium.Matcher on(final ViatraQueryEngine engine) {
265 // check if matcher already exists
266 Matcher matcher = engine.getExistingMatcher(querySpecification());
267 if (matcher == null) {
268 matcher = (Matcher)engine.getMatcher(querySpecification());
269 }
270 return matcher;
271 }
272
273 /**
274 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
275 * @return an initialized matcher
276 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
277 *
278 */
279 public static XAntennaGainNotMedium.Matcher create() {
280 return new Matcher();
281 }
282
283 private static final int POSITION_COMM = 0;
284
285 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(XAntennaGainNotMedium.Matcher.class);
286
287 /**
288 * Initializes the pattern matcher within an existing VIATRA Query engine.
289 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
290 *
291 * @param engine the existing VIATRA Query engine in which this matcher will be created.
292 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
293 *
294 */
295 private Matcher() {
296 super(querySpecification());
297 }
298
299 /**
300 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
301 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
302 * @return matches represented as a Match object.
303 *
304 */
305 public Collection<XAntennaGainNotMedium.Match> getAllMatches(final CommSubsystem pComm) {
306 return rawStreamAllMatches(new Object[]{pComm}).collect(Collectors.toSet());
307 }
308
309 /**
310 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
311 * </p>
312 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
313 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
314 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
315 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
316 * @return a stream of matches represented as a Match object.
317 *
318 */
319 public Stream<XAntennaGainNotMedium.Match> streamAllMatches(final CommSubsystem pComm) {
320 return rawStreamAllMatches(new Object[]{pComm});
321 }
322
323 /**
324 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
325 * Neither determinism nor randomness of selection is guaranteed.
326 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
327 * @return a match represented as a Match object, or null if no match is found.
328 *
329 */
330 public Optional<XAntennaGainNotMedium.Match> getOneArbitraryMatch(final CommSubsystem pComm) {
331 return rawGetOneArbitraryMatch(new Object[]{pComm});
332 }
333
334 /**
335 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
336 * under any possible substitution of the unspecified parameters (if any).
337 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
338 * @return true if the input is a valid (partial) match of the pattern.
339 *
340 */
341 public boolean hasMatch(final CommSubsystem pComm) {
342 return rawHasMatch(new Object[]{pComm});
343 }
344
345 /**
346 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
347 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
348 * @return the number of pattern matches found.
349 *
350 */
351 public int countMatches(final CommSubsystem pComm) {
352 return rawCountMatches(new Object[]{pComm});
353 }
354
355 /**
356 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
357 * Neither determinism nor randomness of selection is guaranteed.
358 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
359 * @param processor the action that will process the selected match.
360 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
361 *
362 */
363 public boolean forOneArbitraryMatch(final CommSubsystem pComm, final Consumer<? super XAntennaGainNotMedium.Match> processor) {
364 return rawForOneArbitraryMatch(new Object[]{pComm}, processor);
365 }
366
367 /**
368 * Returns a new (partial) match.
369 * This can be used e.g. to call the matcher with a partial match.
370 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
371 * @param pComm the fixed value of pattern parameter Comm, or null if not bound.
372 * @return the (partial) match object.
373 *
374 */
375 public XAntennaGainNotMedium.Match newMatch(final CommSubsystem pComm) {
376 return XAntennaGainNotMedium.Match.newMatch(pComm);
377 }
378
379 /**
380 * Retrieve the set of values that occur in matches for Comm.
381 * @return the Set of all values or empty set if there are no matches
382 *
383 */
384 protected Stream<CommSubsystem> rawStreamAllValuesOfComm(final Object[] parameters) {
385 return rawStreamAllValues(POSITION_COMM, parameters).map(CommSubsystem.class::cast);
386 }
387
388 /**
389 * Retrieve the set of values that occur in matches for Comm.
390 * @return the Set of all values or empty set if there are no matches
391 *
392 */
393 public Set<CommSubsystem> getAllValuesOfComm() {
394 return rawStreamAllValuesOfComm(emptyArray()).collect(Collectors.toSet());
395 }
396
397 /**
398 * Retrieve the set of values that occur in matches for Comm.
399 * @return the Set of all values or empty set if there are no matches
400 *
401 */
402 public Stream<CommSubsystem> streamAllValuesOfComm() {
403 return rawStreamAllValuesOfComm(emptyArray());
404 }
405
406 @Override
407 protected XAntennaGainNotMedium.Match tupleToMatch(final Tuple t) {
408 try {
409 return XAntennaGainNotMedium.Match.newMatch((CommSubsystem) t.get(POSITION_COMM));
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in tuple not properly typed!",e);
412 return null;
413 }
414 }
415
416 @Override
417 protected XAntennaGainNotMedium.Match arrayToMatch(final Object[] match) {
418 try {
419 return XAntennaGainNotMedium.Match.newMatch((CommSubsystem) match[POSITION_COMM]);
420 } catch(ClassCastException e) {
421 LOGGER.error("Element(s) in array not properly typed!",e);
422 return null;
423 }
424 }
425
426 @Override
427 protected XAntennaGainNotMedium.Match arrayToMatchMutable(final Object[] match) {
428 try {
429 return XAntennaGainNotMedium.Match.newMutableMatch((CommSubsystem) match[POSITION_COMM]);
430 } catch(ClassCastException e) {
431 LOGGER.error("Element(s) in array not properly typed!",e);
432 return null;
433 }
434 }
435
436 /**
437 * @return the singleton instance of the query specification of this pattern
438 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
439 *
440 */
441 public static IQuerySpecification<XAntennaGainNotMedium.Matcher> querySpecification() {
442 return XAntennaGainNotMedium.instance();
443 }
444 }
445
446 private XAntennaGainNotMedium() {
447 super(GeneratedPQuery.INSTANCE);
448 }
449
450 /**
451 * @return the singleton instance of the query specification
452 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
453 *
454 */
455 public static XAntennaGainNotMedium instance() {
456 try{
457 return LazyHolder.INSTANCE;
458 } catch (ExceptionInInitializerError err) {
459 throw processInitializerError(err);
460 }
461 }
462
463 @Override
464 protected XAntennaGainNotMedium.Matcher instantiate(final ViatraQueryEngine engine) {
465 return XAntennaGainNotMedium.Matcher.on(engine);
466 }
467
468 @Override
469 public XAntennaGainNotMedium.Matcher instantiate() {
470 return XAntennaGainNotMedium.Matcher.create();
471 }
472
473 @Override
474 public XAntennaGainNotMedium.Match newEmptyMatch() {
475 return XAntennaGainNotMedium.Match.newEmptyMatch();
476 }
477
478 @Override
479 public XAntennaGainNotMedium.Match newMatch(final Object... parameters) {
480 return XAntennaGainNotMedium.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem) parameters[0]);
481 }
482
483 /**
484 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium (visibility: PUBLIC, simpleName: XAntennaGainNotMedium, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium, 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
485 * <b>not</b> at the class load time of the outer class,
486 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium (visibility: PUBLIC, simpleName: XAntennaGainNotMedium, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
487 *
488 * <p> This workaround is required e.g. to support recursion.
489 *
490 */
491 private static class LazyHolder {
492 private static final XAntennaGainNotMedium INSTANCE = new XAntennaGainNotMedium();
493
494 /**
495 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
496 * This initialization order is required to support indirect recursion.
497 *
498 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
499 *
500 */
501 private static final Object STATIC_INITIALIZER = ensureInitialized();
502
503 public static Object ensureInitialized() {
504 INSTANCE.ensureInitializedInternal();
505 return null;
506 }
507 }
508
509 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
510 private static final XAntennaGainNotMedium.GeneratedPQuery INSTANCE = new GeneratedPQuery();
511
512 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
513
514 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
515
516 private GeneratedPQuery() {
517 super(PVisibility.PUBLIC);
518 }
519
520 @Override
521 public String getFullyQualifiedName() {
522 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium";
523 }
524
525 @Override
526 public List<String> getParameterNames() {
527 return Arrays.asList("Comm");
528 }
529
530 @Override
531 public List<PParameter> getParameters() {
532 return parameters;
533 }
534
535 @Override
536 public Set<PBody> doGetContainedBodies() {
537 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
538 Set<PBody> bodies = new LinkedHashSet<>();
539 {
540 PBody body = new PBody(this);
541 PVariable var_Comm = body.getOrCreateVariableByName("Comm");
542 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
543 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
544 new ExportedParameter(body, var_Comm, parameter_Comm)
545 ));
546 // CommSubsystem.band(Comm, TransceiverBand::X)
547 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
548 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "X").getInstance());
549 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
550 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
551 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
552 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
553 new Equality(body, var__virtual_1_, var__virtual_0_);
554 // neg find commSubsystemGainMedium(Comm)
555 new NegativePatternCall(body, Tuples.flatTupleOf(var_Comm), CommSubsystemGainMedium.instance().getInternalQueryRepresentation());
556 bodies.add(body);
557 }
558 {
559 PAnnotation annotation = new PAnnotation("Constraint");
560 annotation.addAttribute("severity", "error");
561 annotation.addAttribute("key", Arrays.asList(new Object[] {
562 new ParameterReference("Comm")
563 }));
564 annotation.addAttribute("message", "X-band transceiver must be combined with a medium gain antenna.");
565 addAnnotation(annotation);
566 }
567 return bodies;
568 }
569 }
570}
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
new file mode 100644
index 00000000..b3aca298
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore
@@ -0,0 +1,15 @@
1/.CommunicationLink.java._trace
2/.SatelliteQueriesAll.java._trace
3/.IndirectCommunicationLink.java._trace
4/.DirectCommunicationLink.java._trace
5/.SpacecraftWithInterferometryPayload.java._trace
6/.SingleInterferometryPayload.java._trace
7/.AtLeastTwoInterferometryPayloads.java._trace
8/.DirectCommunicationLink2.java._trace
9/.CommSubsystemBand.java._trace
10/.CommSubsystemGain.java._trace
11/.GroundStationNetwork.java._trace
12/.SmallSat.java._trace
13/.CommSubsystemGainLow.java._trace
14/.CommSubsystemGainMedium.java._trace
15/.CommSubsystemBandUhf.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java
new file mode 100644
index 00000000..d560ac93
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java
@@ -0,0 +1,138 @@
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.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
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 atLeastTwoInterferometryPayloads(Mission : InterferometryMission) {
33 * find spacecraftWithInterferometryPayload(Mission, Spacecraft1);
34 * find spacecraftWithInterferometryPayload(Mission, Spacecraft2);
35 * Spacecraft1 != Spacecraft2;
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class AtLeastTwoInterferometryPayloads extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private AtLeastTwoInterferometryPayloads() {
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 AtLeastTwoInterferometryPayloads 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.AtLeastTwoInterferometryPayloads (visibility: PUBLIC, simpleName: AtLeastTwoInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads, 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.AtLeastTwoInterferometryPayloads (visibility: PUBLIC, simpleName: AtLeastTwoInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads, 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 AtLeastTwoInterferometryPayloads INSTANCE = new AtLeastTwoInterferometryPayloads();
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 AtLeastTwoInterferometryPayloads.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 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);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Mission);
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.atLeastTwoInterferometryPayloads";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Mission");
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_Mission = body.getOrCreateVariableByName("Mission");
121 PVariable var_Spacecraft1 = body.getOrCreateVariableByName("Spacecraft1");
122 PVariable var_Spacecraft2 = body.getOrCreateVariableByName("Spacecraft2");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
124 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
125 new ExportedParameter(body, var_Mission, parameter_Mission)
126 ));
127 // find spacecraftWithInterferometryPayload(Mission, Spacecraft1)
128 new PositivePatternCall(body, Tuples.flatTupleOf(var_Mission, var_Spacecraft1), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation());
129 // find spacecraftWithInterferometryPayload(Mission, Spacecraft2)
130 new PositivePatternCall(body, Tuples.flatTupleOf(var_Mission, var_Spacecraft2), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation());
131 // Spacecraft1 != Spacecraft2
132 new Inequality(body, var_Spacecraft1, var_Spacecraft2);
133 bodies.add(body);
134 }
135 return bodies;
136 }
137 }
138}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBand.java
new file mode 100644
index 00000000..a0009587
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBand.java
@@ -0,0 +1,140 @@
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 commSubsystemBand(Comm : CommSubsystem, Band : TransceiverBand) {
34 * CommSubsystem.band(Comm, Band);
35 * }
36 * </pre></code>
37 *
38 * @see GenericPatternMatcher
39 * @see GenericPatternMatch
40 *
41 */
42@SuppressWarnings("all")
43public final class CommSubsystemBand extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
44 private CommSubsystemBand() {
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 CommSubsystemBand 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.CommSubsystemBand (visibility: PUBLIC, simpleName: CommSubsystemBand, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand, 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.CommSubsystemBand (visibility: PUBLIC, simpleName: CommSubsystemBand, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand, 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 CommSubsystemBand INSTANCE = new CommSubsystemBand();
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 CommSubsystemBand.GeneratedPQuery INSTANCE = new GeneratedPQuery();
89
90 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
91
92 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);
93
94 private final List<PParameter> parameters = Arrays.asList(parameter_Comm, parameter_Band);
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.commSubsystemBand";
103 }
104
105 @Override
106 public List<String> getParameterNames() {
107 return Arrays.asList("Comm","Band");
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_Comm = body.getOrCreateVariableByName("Comm");
122 PVariable var_Band = body.getOrCreateVariableByName("Band");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
124 new TypeConstraint(body, Tuples.flatTupleOf(var_Band), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
125 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
126 new ExportedParameter(body, var_Comm, parameter_Comm),
127 new ExportedParameter(body, var_Band, parameter_Band)
128 ));
129 // CommSubsystem.band(Comm, Band)
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
131 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
133 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
134 new Equality(body, var__virtual_0_, var_Band);
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/CommSubsystemBandUhf.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java
new file mode 100644
index 00000000..51175ce3
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java
@@ -0,0 +1,138 @@
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.ConstantValue;
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 commSubsystemBandUhf(Comm : CommSubsystem) {
35 * CommSubsystem.band(Comm, TransceiverBand::UHF);
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class CommSubsystemBandUhf extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private CommSubsystemBandUhf() {
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 CommSubsystemBandUhf 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.CommSubsystemBandUhf (visibility: PUBLIC, simpleName: CommSubsystemBandUhf, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf, 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.CommSubsystemBandUhf (visibility: PUBLIC, simpleName: CommSubsystemBandUhf, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf, 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 CommSubsystemBandUhf INSTANCE = new CommSubsystemBandUhf();
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 CommSubsystemBandUhf.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
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.commSubsystemBandUhf";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Comm");
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_Comm = body.getOrCreateVariableByName("Comm");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
122 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
123 new ExportedParameter(body, var_Comm, parameter_Comm)
124 ));
125 // CommSubsystem.band(Comm, TransceiverBand::UHF)
126 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
127 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "UHF").getInstance());
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
129 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band")));
131 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand")));
132 new Equality(body, var__virtual_1_, var__virtual_0_);
133 bodies.add(body);
134 }
135 return bodies;
136 }
137 }
138}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGain.java
new file mode 100644
index 00000000..e2e0e2a1
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGain.java
@@ -0,0 +1,140 @@
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 commSubsystemGain(Comm : CommSubsystem, Gain : AntennaGain) {
34 * CommSubsystem.gain(Comm, Gain);
35 * }
36 * </pre></code>
37 *
38 * @see GenericPatternMatcher
39 * @see GenericPatternMatch
40 *
41 */
42@SuppressWarnings("all")
43public final class CommSubsystemGain extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
44 private CommSubsystemGain() {
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 CommSubsystemGain 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.CommSubsystemGain (visibility: PUBLIC, simpleName: CommSubsystemGain, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain, 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.CommSubsystemGain (visibility: PUBLIC, simpleName: CommSubsystemGain, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain, 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 CommSubsystemGain INSTANCE = new CommSubsystemGain();
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 CommSubsystemGain.GeneratedPQuery INSTANCE = new GeneratedPQuery();
89
90 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
91
92 private final PParameter parameter_Gain = new PParameter("Gain", "hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "AntennaGain")), PParameterDirection.INOUT);
93
94 private final List<PParameter> parameters = Arrays.asList(parameter_Comm, parameter_Gain);
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.commSubsystemGain";
103 }
104
105 @Override
106 public List<String> getParameterNames() {
107 return Arrays.asList("Comm","Gain");
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_Comm = body.getOrCreateVariableByName("Comm");
122 PVariable var_Gain = body.getOrCreateVariableByName("Gain");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
124 new TypeConstraint(body, Tuples.flatTupleOf(var_Gain), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
125 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
126 new ExportedParameter(body, var_Comm, parameter_Comm),
127 new ExportedParameter(body, var_Gain, parameter_Gain)
128 ));
129 // CommSubsystem.gain(Comm, Gain)
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
131 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
133 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
134 new Equality(body, var__virtual_0_, var_Gain);
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/CommSubsystemGainLow.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainLow.java
new file mode 100644
index 00000000..04ee67da
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainLow.java
@@ -0,0 +1,138 @@
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.ConstantValue;
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 commSubsystemGainLow(Comm : CommSubsystem) {
35 * CommSubsystem.gain(Comm, AntennaGain::LOW);
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class CommSubsystemGainLow extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private CommSubsystemGainLow() {
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 CommSubsystemGainLow 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.CommSubsystemGainLow (visibility: PUBLIC, simpleName: CommSubsystemGainLow, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow, 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.CommSubsystemGainLow (visibility: PUBLIC, simpleName: CommSubsystemGainLow, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow, 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 CommSubsystemGainLow INSTANCE = new CommSubsystemGainLow();
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 CommSubsystemGainLow.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
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.commSubsystemGainLow";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Comm");
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_Comm = body.getOrCreateVariableByName("Comm");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
122 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
123 new ExportedParameter(body, var_Comm, parameter_Comm)
124 ));
125 // CommSubsystem.gain(Comm, AntennaGain::LOW)
126 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
127 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "AntennaGain", "LOW").getInstance());
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
129 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
131 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
132 new Equality(body, var__virtual_1_, var__virtual_0_);
133 bodies.add(body);
134 }
135 return bodies;
136 }
137 }
138}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainMedium.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainMedium.java
new file mode 100644
index 00000000..4b3bc03b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemGainMedium.java
@@ -0,0 +1,138 @@
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.ConstantValue;
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 commSubsystemGainMedium(Comm : CommSubsystem) {
35 * CommSubsystem.gain(Comm, AntennaGain::MEDIUM);
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class CommSubsystemGainMedium extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private CommSubsystemGainMedium() {
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 CommSubsystemGainMedium 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.CommSubsystemGainMedium (visibility: PUBLIC, simpleName: CommSubsystemGainMedium, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium, 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.CommSubsystemGainMedium (visibility: PUBLIC, simpleName: CommSubsystemGainMedium, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium, 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 CommSubsystemGainMedium INSTANCE = new CommSubsystemGainMedium();
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 CommSubsystemGainMedium.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 private final PParameter parameter_Comm = new PParameter("Comm", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
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.commSubsystemGainMedium";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Comm");
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_Comm = body.getOrCreateVariableByName("Comm");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
122 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
123 new ExportedParameter(body, var_Comm, parameter_Comm)
124 ));
125 // CommSubsystem.gain(Comm, AntennaGain::MEDIUM)
126 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
127 new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "AntennaGain", "MEDIUM").getInstance());
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
129 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain")));
131 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain")));
132 new Equality(body, var__virtual_1_, var__virtual_0_);
133 bodies.add(body);
134 }
135 return bodies;
136 }
137 }
138}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java
new file mode 100644
index 00000000..d6f5c53b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java
@@ -0,0 +1,162 @@
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.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern directCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
32 * DirectedCommunicationLink.source(Link, SourceSubsystem);
33 * DirectedCommunicationLink.target(Link, TargetSubsystem);
34 * CommunicatingElement.commSubsystem(Source, SourceSubsystem);
35 * CommunicatingElement.commSubsystem(Target, TargetSubsystem);
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class DirectCommunicationLink extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private DirectCommunicationLink() {
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 DirectCommunicationLink 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.DirectCommunicationLink (visibility: PUBLIC, simpleName: DirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink, 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.DirectCommunicationLink (visibility: PUBLIC, simpleName: DirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink, 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 DirectCommunicationLink INSTANCE = new DirectCommunicationLink();
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 DirectCommunicationLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 private final PParameter parameter_Source = new PParameter("Source", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
92
93 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);
94
95 private final List<PParameter> parameters = Arrays.asList(parameter_Source, parameter_Target);
96
97 private GeneratedPQuery() {
98 super(PVisibility.PRIVATE);
99 }
100
101 @Override
102 public String getFullyQualifiedName() {
103 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink";
104 }
105
106 @Override
107 public List<String> getParameterNames() {
108 return Arrays.asList("Source","Target");
109 }
110
111 @Override
112 public List<PParameter> getParameters() {
113 return parameters;
114 }
115
116 @Override
117 public Set<PBody> doGetContainedBodies() {
118 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
119 Set<PBody> bodies = new LinkedHashSet<>();
120 {
121 PBody body = new PBody(this);
122 PVariable var_Source = body.getOrCreateVariableByName("Source");
123 PVariable var_Target = body.getOrCreateVariableByName("Target");
124 PVariable var_Link = body.getOrCreateVariableByName("Link");
125 PVariable var_SourceSubsystem = body.getOrCreateVariableByName("SourceSubsystem");
126 PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem");
127 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
128 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
129 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
130 new ExportedParameter(body, var_Source, parameter_Source),
131 new ExportedParameter(body, var_Target, parameter_Target)
132 ));
133 // DirectedCommunicationLink.source(Link, SourceSubsystem)
134 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
135 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
136 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source")));
137 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
138 new Equality(body, var__virtual_0_, var_SourceSubsystem);
139 // DirectedCommunicationLink.target(Link, TargetSubsystem)
140 new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink")));
141 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
142 new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target")));
143 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
144 new Equality(body, var__virtual_1_, var_TargetSubsystem);
145 // CommunicatingElement.commSubsystem(Source, SourceSubsystem)
146 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
147 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
148 new TypeConstraint(body, Tuples.flatTupleOf(var_Source, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
149 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
150 new Equality(body, var__virtual_2_, var_SourceSubsystem);
151 // CommunicatingElement.commSubsystem(Target, TargetSubsystem)
152 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
153 PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}");
154 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
155 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
156 new Equality(body, var__virtual_3_, var_TargetSubsystem);
157 bodies.add(body);
158 }
159 return bodies;
160 }
161 }
162}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java
new file mode 100644
index 00000000..93b1a01b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java
@@ -0,0 +1,127 @@
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.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern groundStationNetwork(Network : GroundStationNetwork) {
30 * GroundStationNetwork(Network);
31 * }
32 * </pre></code>
33 *
34 * @see GenericPatternMatcher
35 * @see GenericPatternMatch
36 *
37 */
38@SuppressWarnings("all")
39public final class GroundStationNetwork extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
40 private GroundStationNetwork() {
41 super(GeneratedPQuery.INSTANCE);
42 }
43
44 /**
45 * @return the singleton instance of the query specification
46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
47 *
48 */
49 public static GroundStationNetwork instance() {
50 try{
51 return LazyHolder.INSTANCE;
52 } catch (ExceptionInInitializerError err) {
53 throw processInitializerError(err);
54 }
55 }
56
57 /**
58 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork (visibility: PUBLIC, simpleName: GroundStationNetwork, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork, 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
59 * <b>not</b> at the class load time of the outer class,
60 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork (visibility: PUBLIC, simpleName: GroundStationNetwork, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork, 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()}.
61 *
62 * <p> This workaround is required e.g. to support recursion.
63 *
64 */
65 private static class LazyHolder {
66 private static final GroundStationNetwork INSTANCE = new GroundStationNetwork();
67
68 /**
69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
70 * This initialization order is required to support indirect recursion.
71 *
72 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
73 *
74 */
75 private static final Object STATIC_INITIALIZER = ensureInitialized();
76
77 public static Object ensureInitialized() {
78 INSTANCE.ensureInitializedInternal();
79 return null;
80 }
81 }
82
83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
84 private static final GroundStationNetwork.GeneratedPQuery INSTANCE = new GeneratedPQuery();
85
86 private final PParameter parameter_Network = new PParameter("Network", "hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "GroundStationNetwork")), PParameterDirection.INOUT);
87
88 private final List<PParameter> parameters = Arrays.asList(parameter_Network);
89
90 private GeneratedPQuery() {
91 super(PVisibility.PRIVATE);
92 }
93
94 @Override
95 public String getFullyQualifiedName() {
96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork";
97 }
98
99 @Override
100 public List<String> getParameterNames() {
101 return Arrays.asList("Network");
102 }
103
104 @Override
105 public List<PParameter> getParameters() {
106 return parameters;
107 }
108
109 @Override
110 public Set<PBody> doGetContainedBodies() {
111 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
112 Set<PBody> bodies = new LinkedHashSet<>();
113 {
114 PBody body = new PBody(this);
115 PVariable var_Network = body.getOrCreateVariableByName("Network");
116 new TypeConstraint(body, Tuples.flatTupleOf(var_Network), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
118 new ExportedParameter(body, var_Network, parameter_Network)
119 ));
120 // GroundStationNetwork(Network)
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Network), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
122 bodies.add(body);
123 }
124 return bodies;
125 }
126 }
127}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java
new file mode 100644
index 00000000..6d5e475c
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java
@@ -0,0 +1,134 @@
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.DirectCommunicationLink;
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.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern indirectCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
32 * find directCommunicationLink+(Source, Target);
33 * }
34 * </pre></code>
35 *
36 * @see GenericPatternMatcher
37 * @see GenericPatternMatch
38 *
39 */
40@SuppressWarnings("all")
41public final class IndirectCommunicationLink extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
42 private IndirectCommunicationLink() {
43 super(GeneratedPQuery.INSTANCE);
44 }
45
46 /**
47 * @return the singleton instance of the query specification
48 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
49 *
50 */
51 public static IndirectCommunicationLink instance() {
52 try{
53 return LazyHolder.INSTANCE;
54 } catch (ExceptionInInitializerError err) {
55 throw processInitializerError(err);
56 }
57 }
58
59 /**
60 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink (visibility: PUBLIC, simpleName: IndirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink, 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
61 * <b>not</b> at the class load time of the outer class,
62 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink (visibility: PUBLIC, simpleName: IndirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink, 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()}.
63 *
64 * <p> This workaround is required e.g. to support recursion.
65 *
66 */
67 private static class LazyHolder {
68 private static final IndirectCommunicationLink INSTANCE = new IndirectCommunicationLink();
69
70 /**
71 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
72 * This initialization order is required to support indirect recursion.
73 *
74 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
75 *
76 */
77 private static final Object STATIC_INITIALIZER = ensureInitialized();
78
79 public static Object ensureInitialized() {
80 INSTANCE.ensureInitializedInternal();
81 return null;
82 }
83 }
84
85 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
86 private static final IndirectCommunicationLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
87
88 private final PParameter parameter_Source = new PParameter("Source", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
89
90 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);
91
92 private final List<PParameter> parameters = Arrays.asList(parameter_Source, parameter_Target);
93
94 private GeneratedPQuery() {
95 super(PVisibility.PRIVATE);
96 }
97
98 @Override
99 public String getFullyQualifiedName() {
100 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink";
101 }
102
103 @Override
104 public List<String> getParameterNames() {
105 return Arrays.asList("Source","Target");
106 }
107
108 @Override
109 public List<PParameter> getParameters() {
110 return parameters;
111 }
112
113 @Override
114 public Set<PBody> doGetContainedBodies() {
115 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
116 Set<PBody> bodies = new LinkedHashSet<>();
117 {
118 PBody body = new PBody(this);
119 PVariable var_Source = body.getOrCreateVariableByName("Source");
120 PVariable var_Target = body.getOrCreateVariableByName("Target");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
122 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
123 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
124 new ExportedParameter(body, var_Source, parameter_Source),
125 new ExportedParameter(body, var_Target, parameter_Target)
126 ));
127 // find directCommunicationLink+(Source, Target)
128 new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_Source, var_Target), DirectCommunicationLink.instance().getInternalQueryRepresentation());
129 bodies.add(body);
130 }
131 return bodies;
132 }
133 }
134}
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
new file mode 100644
index 00000000..7f1be700
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java
@@ -0,0 +1,105 @@
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.CommunicationLinkDoesNotStartAtContainingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium;
17import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads;
18import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand;
19import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf;
20import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain;
21import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow;
22import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium;
23import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink;
24import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork;
25import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink;
26import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat;
27import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload;
28import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
29
30/**
31 * A pattern group formed of all patterns defined in SatelliteQueries.vql.
32 *
33 * <p>A private group that includes private patterns as well. Only intended use case is for pattern testing.
34 *
35 * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul>
36 * <li>communicationLinkDoesNotStartAtContainingElement</li>
37 * <li>notEnoughInterferometryPayloads</li>
38 * <li>atLeastTwoInterferometryPayloads</li>
39 * <li>spacecraftWithInterferometryPayload</li>
40 * <li>noLinkToGroundStation</li>
41 * <li>communicationLoop</li>
42 * <li>indirectCommunicationLink</li>
43 * <li>directCommunicationLink</li>
44 * <li>incompatibleSourceAndTargetBand</li>
45 * <li>commSubsystemBand</li>
46 * <li>incompatibleSourceAndTargetGain</li>
47 * <li>commSubsystemGain</li>
48 * <li>uhfAntennaGainNotLow</li>
49 * <li>commSubsystemGainLow</li>
50 * <li>xAntennaGainNotMedium</li>
51 * <li>commSubsystemGainMedium</li>
52 * <li>kaAntennaGainLow</li>
53 * <li>threeUCubeSatWithNonUhfCrossLink</li>
54 * <li>commSubsystemBandUhf</li>
55 * <li>groundStationNetwork</li>
56 * <li>cubeSatWithKaAntenna</li>
57 * <li>smallSat</li>
58 * </ul>
59 *
60 * @see IQueryGroup
61 *
62 */
63@SuppressWarnings("all")
64public final class SatelliteQueriesAll extends BaseGeneratedPatternGroup {
65 /**
66 * Access the pattern group.
67 *
68 * @return the singleton instance of the group
69 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
70 *
71 */
72 public static SatelliteQueriesAll instance() {
73 if (INSTANCE == null) {
74 INSTANCE = new SatelliteQueriesAll();
75 }
76 return INSTANCE;
77 }
78
79 private static SatelliteQueriesAll INSTANCE;
80
81 private SatelliteQueriesAll() {
82 querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance());
83 querySpecifications.add(NotEnoughInterferometryPayloads.instance());
84 querySpecifications.add(AtLeastTwoInterferometryPayloads.instance());
85 querySpecifications.add(SpacecraftWithInterferometryPayload.instance());
86 querySpecifications.add(NoLinkToGroundStation.instance());
87 querySpecifications.add(CommunicationLoop.instance());
88 querySpecifications.add(IndirectCommunicationLink.instance());
89 querySpecifications.add(DirectCommunicationLink.instance());
90 querySpecifications.add(IncompatibleSourceAndTargetBand.instance());
91 querySpecifications.add(CommSubsystemBand.instance());
92 querySpecifications.add(IncompatibleSourceAndTargetGain.instance());
93 querySpecifications.add(CommSubsystemGain.instance());
94 querySpecifications.add(UhfAntennaGainNotLow.instance());
95 querySpecifications.add(CommSubsystemGainLow.instance());
96 querySpecifications.add(XAntennaGainNotMedium.instance());
97 querySpecifications.add(CommSubsystemGainMedium.instance());
98 querySpecifications.add(KaAntennaGainLow.instance());
99 querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance());
100 querySpecifications.add(CommSubsystemBandUhf.instance());
101 querySpecifications.add(GroundStationNetwork.instance());
102 querySpecifications.add(CubeSatWithKaAntenna.instance());
103 querySpecifications.add(SmallSat.instance());
104 }
105}
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/SmallSat.java
new file mode 100644
index 00000000..252db290
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SmallSat.java
@@ -0,0 +1,127 @@
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.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern smallSat(Sat : SmallSat) {
30 * SmallSat(Sat);
31 * }
32 * </pre></code>
33 *
34 * @see GenericPatternMatcher
35 * @see GenericPatternMatch
36 *
37 */
38@SuppressWarnings("all")
39public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
40 private SmallSat() {
41 super(GeneratedPQuery.INSTANCE);
42 }
43
44 /**
45 * @return the singleton instance of the query specification
46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
47 *
48 */
49 public static SmallSat instance() {
50 try{
51 return LazyHolder.INSTANCE;
52 } catch (ExceptionInInitializerError err) {
53 throw processInitializerError(err);
54 }
55 }
56
57 /**
58 * 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
59 * <b>not</b> at the class load time of the outer class,
60 * 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()}.
61 *
62 * <p> This workaround is required e.g. to support recursion.
63 *
64 */
65 private static class LazyHolder {
66 private static final SmallSat INSTANCE = new SmallSat();
67
68 /**
69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
70 * This initialization order is required to support indirect recursion.
71 *
72 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
73 *
74 */
75 private static final Object STATIC_INITIALIZER = ensureInitialized();
76
77 public static Object ensureInitialized() {
78 INSTANCE.ensureInitializedInternal();
79 return null;
80 }
81 }
82
83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
84 private static final SmallSat.GeneratedPQuery INSTANCE = new GeneratedPQuery();
85
86 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);
87
88 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
89
90 private GeneratedPQuery() {
91 super(PVisibility.PRIVATE);
92 }
93
94 @Override
95 public String getFullyQualifiedName() {
96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat";
97 }
98
99 @Override
100 public List<String> getParameterNames() {
101 return Arrays.asList("Sat");
102 }
103
104 @Override
105 public List<PParameter> getParameters() {
106 return parameters;
107 }
108
109 @Override
110 public Set<PBody> doGetContainedBodies() {
111 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
112 Set<PBody> bodies = new LinkedHashSet<>();
113 {
114 PBody body = new PBody(this);
115 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
116 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
118 new ExportedParameter(body, var_Sat, parameter_Sat)
119 ));
120 // SmallSat(Sat)
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
122 bodies.add(body);
123 }
124 return bodies;
125 }
126 }
127}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java
new file mode 100644
index 00000000..f8e6ca4f
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java
@@ -0,0 +1,149 @@
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.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern spacecraftWithInterferometryPayload(Mission : ConstellationMission, Spacecraft : Spacecraft) {
32 * ConstellationMission.spacecraft(Mission, Spacecraft);
33 * Spacecraft.payload(Spacecraft, Payload);
34 * InterferometryPayload(Payload);
35 * }
36 * </pre></code>
37 *
38 * @see GenericPatternMatcher
39 * @see GenericPatternMatch
40 *
41 */
42@SuppressWarnings("all")
43public final class SpacecraftWithInterferometryPayload extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
44 private SpacecraftWithInterferometryPayload() {
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 SpacecraftWithInterferometryPayload 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.SpacecraftWithInterferometryPayload (visibility: PUBLIC, simpleName: SpacecraftWithInterferometryPayload, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload, 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.SpacecraftWithInterferometryPayload (visibility: PUBLIC, simpleName: SpacecraftWithInterferometryPayload, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload, 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 SpacecraftWithInterferometryPayload INSTANCE = new SpacecraftWithInterferometryPayload();
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 SpacecraftWithInterferometryPayload.GeneratedPQuery INSTANCE = new GeneratedPQuery();
89
90 private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "ConstellationMission")), PParameterDirection.INOUT);
91
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);
93
94 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft);
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.spacecraftWithInterferometryPayload";
103 }
104
105 @Override
106 public List<String> getParameterNames() {
107 return Arrays.asList("Mission","Spacecraft");
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_Mission = body.getOrCreateVariableByName("Mission");
122 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
123 PVariable var_Payload = body.getOrCreateVariableByName("Payload");
124 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
125 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
126 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
127 new ExportedParameter(body, var_Mission, parameter_Mission),
128 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
129 ));
130 // ConstellationMission.spacecraft(Mission, Spacecraft)
131 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
132 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
133 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
134 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
135 new Equality(body, var__virtual_0_, var_Spacecraft);
136 // Spacecraft.payload(Spacecraft, Payload)
137 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
138 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
139 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "payload")));
140 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Payload")));
141 new Equality(body, var__virtual_1_, var_Payload);
142 // InterferometryPayload(Payload)
143 new TypeConstraint(body, Tuples.flatTupleOf(var_Payload), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryPayload")));
144 bodies.add(body);
145 }
146 return bodies;
147 }
148 }
149}
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
new file mode 100644
index 00000000..d0542b4a
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
@@ -0,0 +1,164 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.queries
2
3import "http://www.example.org/satellite"
4
5@Constraint(severity = "error", key = {Link},
6 message = "Communication links must start from the containing element.")
7pattern communicationLinkDoesNotStartAtContainingElement(Link : DirectedCommunicationLink) {
8 CommunicatingElement.communicationLink(Element, Link);
9 DirectedCommunicationLink.source(Link, SourceComm);
10 CommunicatingElement.commSubsystem(SourceElement, SourceComm);
11 Element != SourceElement;
12}
13
14// At least two spacecraft must have the interferometry payload configured
15
16//@Constraint(severity = "error", key = {Mission},
17// message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
18pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
19 InterferometryMission(Mission);
20 neg find atLeastTwoInterferometryPayloads(Mission);
21}
22
23private pattern atLeastTwoInterferometryPayloads(Mission : InterferometryMission) {
24 find spacecraftWithInterferometryPayload(Mission, Spacecraft1);
25 find spacecraftWithInterferometryPayload(Mission, Spacecraft2);
26 Spacecraft1 != Spacecraft2;
27}
28
29private pattern spacecraftWithInterferometryPayload(Mission : ConstellationMission, Spacecraft : Spacecraft) {
30 ConstellationMission.spacecraft(Mission, Spacecraft);
31 Spacecraft.payload(Spacecraft, Payload);
32 InterferometryPayload(Payload);
33}
34
35// All spacecraft must have some communication path to the ground station
36
37@Constraint(severity = "error", key = {Spacecraft},
38 message = "Spacecraft has no communication path to the ground station.")
39pattern noLinkToGroundStation(Spacecraft : Spacecraft) {
40 ConstellationMission.groundStationNetwork(Mission, GroundStation);
41 ConstellationMission.spacecraft(Mission, Spacecraft);
42 neg find indirectCommunicationLink(Spacecraft, GroundStation);
43}
44
45// No communication loops may exist
46// No spacecraft may directly communicate with itself
47
48@Constraint(severity = "error", key = {Element},
49 message = "Communication loop.")
50pattern communicationLoop(Element : CommunicatingElement) {
51 find indirectCommunicationLink(Element, Element);
52}
53
54private pattern indirectCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
55 find directCommunicationLink+(Source, Target);
56}
57
58private pattern directCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
59 DirectedCommunicationLink.source(Link, SourceSubsystem);
60 DirectedCommunicationLink.target(Link, TargetSubsystem);
61 CommunicatingElement.commSubsystem(Source, SourceSubsystem);
62 CommunicatingElement.commSubsystem(Target, TargetSubsystem);
63}
64
65// Source and target communication systems must be compatible.
66
67@Constraint(severity = "error", key = {Link},
68 message = "Two ends of a communication link must use the same band.")
69pattern incompatibleSourceAndTargetBand(Link : DirectedCommunicationLink) {
70 DirectedCommunicationLink.source(Link, SourceSubsystem);
71 DirectedCommunicationLink.target(Link, TargetSubsystem);
72 CommSubsystem.band(SourceSubsystem, Band);
73 neg find commSubsystemBand(TargetSubsystem, Band);
74}
75
76private pattern commSubsystemBand(Comm : CommSubsystem, Band : TransceiverBand) {
77 CommSubsystem.band(Comm, Band);
78}
79
80@Constraint(severity = "error", key = {Link},
81 message = "Two ends of a communication link must use the same antenna gain.")
82pattern incompatibleSourceAndTargetGain(Link : DirectedCommunicationLink) {
83 DirectedCommunicationLink.source(Link, SourceSubsystem);
84 DirectedCommunicationLink.target(Link, TargetSubsystem);
85 CommSubsystem.gain(SourceSubsystem, Gain);
86 neg find commSubsystemGain(TargetSubsystem, Gain);
87}
88
89private pattern commSubsystemGain(Comm : CommSubsystem, Gain : AntennaGain) {
90 CommSubsystem.gain(Comm, Gain);
91}
92
93// UHF-band transmitters may only be combined with a low gain antenna
94
95@Constraint(severity = "error", key = {Comm},
96 message = "UHF transceiver must be combined with a low gain antenna.")
97pattern uhfAntennaGainNotLow(Comm : CommSubsystem) {
98 CommSubsystem.band(Comm, TransceiverBand::UHF);
99 // VIATRA will fail to infer a type constraint for the virtual variable introduced
100 // when an enum literal appears in a negative pattern call, so we use a helper pattern
101 // instead of neg find commSubsystemGain(Comm, AntennaGain::LOW);
102 neg find commSubsystemGainLow(Comm);
103}
104
105private pattern commSubsystemGainLow(Comm : CommSubsystem) {
106 CommSubsystem.gain(Comm, AntennaGain::LOW);
107}
108
109// X-band transmitters may only be combined with a medium gain antenna
110
111@Constraint(severity = "error", key = {Comm},
112 message = "X-band transceiver must be combined with a medium gain antenna.")
113pattern xAntennaGainNotMedium(Comm : CommSubsystem) {
114 CommSubsystem.band(Comm, TransceiverBand::X);
115 neg find commSubsystemGainMedium(Comm);
116}
117
118private pattern commSubsystemGainMedium(Comm : CommSubsystem) {
119 CommSubsystem.gain(Comm, AntennaGain::MEDIUM);
120}
121
122// Ka-band transmitters may only be combined with a medium or high gain antenna
123
124@Constraint(severity = "error", key = {Comm},
125 message = "Ka-band transceiver must be combined with a medium or high gain antenna.")
126pattern kaAntennaGainLow(Comm : CommSubsystem) {
127 CommSubsystem.band(Comm, TransceiverBand::Ka);
128 CommSubsystem.gain(Comm, AntennaGain::LOW);
129}
130
131// 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter,
132// but cross-link using UHF
133
134@Constraint(severity = "error", key = {Sat},
135 message = "3U CubeSats can only cross-link using UHF.")
136pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
137 CommunicatingElement.commSubsystem(Sat, SourceComm);
138 neg find commSubsystemBandUhf(SourceComm);
139 DirectedCommunicationLink.source(Link, SourceComm);
140 DirectedCommunicationLink.target(Link, TargetComm);
141 CommunicatingElement.commSubsystem(Target, TargetComm);
142 neg find groundStationNetwork(Target);
143}
144
145private pattern commSubsystemBandUhf(Comm : CommSubsystem) {
146 CommSubsystem.band(Comm, TransceiverBand::UHF);
147}
148
149private pattern groundStationNetwork(Network : GroundStationNetwork) {
150 GroundStationNetwork(Network);
151}
152
153// Only a Small Satellite can be configured with a Ka-band communication system
154
155@Constraint(severity = "error", key = {Spacecraft},
156 message = "Only a Small Satellite can be configured with a Ka-band communication system.")
157pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) {
158 CommunicatingElement.commSubsystem.band(Spacecraft, TransceiverBand::Ka);
159 neg find smallSat(Spacecraft);
160}
161
162private pattern smallSat(Sat : SmallSat) {
163 SmallSat(Sat);
164}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend
new file mode 100644
index 00000000..592348e8
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend
@@ -0,0 +1,13 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.runner
2
3import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor
4
5final class SatelliteGeneratorMain {
6 private new() {
7 throw new IllegalStateException("This is a static utility class and should not be instantiated directly.")
8 }
9
10 static def void main(String[] args) {
11 println(StandaloneScriptExecutor.executeScript("configs/generation.vsconfig"))
12 }
13}
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..d2d60846
--- /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/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore
new file mode 100644
index 00000000..928d3658
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore
@@ -0,0 +1 @@
/.SatelliteGeneratorMain.java._trace
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}