diff options
Diffstat (limited to 'Domains')
134 files changed, 41450 insertions, 283 deletions
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF b/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF index f1f5d18c..077e646b 100644 --- a/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF +++ b/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF | |||
@@ -7,16 +7,16 @@ Bundle-ClassPath: . | |||
7 | Bundle-Vendor: %providerName | 7 | Bundle-Vendor: %providerName |
8 | Bundle-Localization: plugin | 8 | Bundle-Localization: plugin |
9 | Export-Package: functionalarchitecture, | 9 | Export-Package: functionalarchitecture, |
10 | functionalarchitecture.impl, | 10 | functionalarchitecture.impl, |
11 | functionalarchitecture.util, | 11 | functionalarchitecture.util, |
12 | hu.bme.mit.inf.dslreasoner.domains.transima.fam | 12 | hu.bme.mit.inf.dslreasoner.domains.transima.fam |
13 | Require-Bundle: ModelGenExampleFAM_plugin, | 13 | Require-Bundle: ModelGenExampleFAM_plugin, |
14 | org.eclipse.viatra.addon.querybasedfeatures.runtime, | 14 | org.eclipse.viatra.addon.querybasedfeatures.runtime, |
15 | org.eclipse.viatra.query.runtime, | 15 | org.eclipse.viatra.query.runtime, |
16 | org.apache.log4j;bundle-version="1.2.15", | 16 | org.apache.log4j;bundle-version="1.2.15", |
17 | com.google.guava;bundle-version="15.0.0", | 17 | com.google.guava;bundle-version="15.0.0", |
18 | org.eclipse.core.runtime, | 18 | org.eclipse.core.runtime, |
19 | org.eclipse.emf.ecore;visibility:=reexport | 19 | org.eclipse.emf.ecore;visibility:=reexport |
20 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | 20 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 |
21 | Bundle-ActivationPolicy: lazy | 21 | Bundle-ActivationPolicy: lazy |
22 | Automatic-Module-Name: ModelGenExampleFAM_plugin | 22 | Automatic-Module-Name: ModelGenExampleFAM_plugin |
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore index d8331ba8..9654ba41 100644 --- a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore +++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore | |||
@@ -1,69 +1,69 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functionalarchitecture" nsURI="http://www.inf.mit.bme.hu/viatrasolver/example/fam" | 3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functionalarchitecture" nsURI="http://www.inf.mit.bme.hu/viatrasolver/example/fam" |
4 | nsPrefix="functionalarchitecture"> | 4 | nsPrefix="functionalarchitecture"> |
5 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | 5 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> |
6 | <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/> | 6 | <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/> |
7 | </eAnnotations> | 7 | </eAnnotations> |
8 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalElement" abstract="true"> | 8 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalElement" abstract="true"> |
9 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" | 9 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" |
10 | containment="true" eOpposite="#//FunctionalInterface/element"/> | 10 | containment="true" eOpposite="#//FunctionalInterface/element"/> |
11 | <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel" | 11 | <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel" |
12 | volatile="true" transient="true" derived="true"> | 12 | volatile="true" transient="true" derived="true"> |
13 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | 13 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> |
14 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/> | 14 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/> |
15 | </eAnnotations> | 15 | </eAnnotations> |
16 | </eStructuralFeatures> | 16 | </eStructuralFeatures> |
17 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function" | 17 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function" |
18 | eOpposite="#//Function/subElements"/> | 18 | eOpposite="#//Function/subElements"/> |
19 | </eClassifiers> | 19 | </eClassifiers> |
20 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalArchitectureModel"> | 20 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalArchitectureModel"> |
21 | <eStructuralFeatures xsi:type="ecore:EReference" name="rootElements" upperBound="-1" | 21 | <eStructuralFeatures xsi:type="ecore:EReference" name="rootElements" upperBound="-1" |
22 | eType="#//FunctionalElement" containment="true"/> | 22 | eType="#//FunctionalElement" containment="true"/> |
23 | </eClassifiers> | 23 | </eClassifiers> |
24 | <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//FunctionalElement"> | 24 | <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//FunctionalElement"> |
25 | <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" | 25 | <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" |
26 | eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/> | 26 | eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/> |
27 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType" | 27 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType" |
28 | changeable="false" volatile="true" transient="true" derived="true"> | 28 | changeable="false" volatile="true" transient="true" derived="true"> |
29 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | 29 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> |
30 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/> | 30 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/> |
31 | </eAnnotations> | 31 | </eAnnotations> |
32 | </eStructuralFeatures> | 32 | </eStructuralFeatures> |
33 | </eClassifiers> | 33 | </eClassifiers> |
34 | <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator"> | 34 | <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator"> |
35 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData" | 35 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData" |
36 | eOpposite="#//FunctionalData/terminator"/> | 36 | eOpposite="#//FunctionalData/terminator"/> |
37 | </eClassifiers> | 37 | </eClassifiers> |
38 | <eClassifiers xsi:type="ecore:EClass" name="InformationLink"> | 38 | <eClassifiers xsi:type="ecore:EClass" name="InformationLink"> |
39 | <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//FunctionalOutput" | 39 | <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//FunctionalOutput" |
40 | eOpposite="#//FunctionalOutput/outgoingLinks"/> | 40 | eOpposite="#//FunctionalOutput/outgoingLinks"/> |
41 | <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="#//FunctionalInput" | 41 | <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="#//FunctionalInput" |
42 | eOpposite="#//FunctionalInput/IncomingLinks"/> | 42 | eOpposite="#//FunctionalInput/IncomingLinks"/> |
43 | </eClassifiers> | 43 | </eClassifiers> |
44 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalInterface"> | 44 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalInterface"> |
45 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" upperBound="-1" eType="#//FunctionalData" | 45 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" upperBound="-1" eType="#//FunctionalData" |
46 | containment="true" eOpposite="#//FunctionalData/interface"/> | 46 | containment="true" eOpposite="#//FunctionalData/interface"/> |
47 | <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//FunctionalElement" | 47 | <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//FunctionalElement" |
48 | eOpposite="#//FunctionalElement/interface"/> | 48 | eOpposite="#//FunctionalElement/interface"/> |
49 | </eClassifiers> | 49 | </eClassifiers> |
50 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalInput" eSuperTypes="#//FunctionalData"> | 50 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalInput" eSuperTypes="#//FunctionalData"> |
51 | <eStructuralFeatures xsi:type="ecore:EReference" name="IncomingLinks" upperBound="-1" | 51 | <eStructuralFeatures xsi:type="ecore:EReference" name="IncomingLinks" upperBound="-1" |
52 | eType="#//InformationLink" eOpposite="#//InformationLink/to"/> | 52 | eType="#//InformationLink" eOpposite="#//InformationLink/to"/> |
53 | </eClassifiers> | 53 | </eClassifiers> |
54 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalOutput" eSuperTypes="#//FunctionalData"> | 54 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalOutput" eSuperTypes="#//FunctionalData"> |
55 | <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingLinks" upperBound="-1" | 55 | <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingLinks" upperBound="-1" |
56 | eType="#//InformationLink" containment="true" eOpposite="#//InformationLink/from"/> | 56 | eType="#//InformationLink" containment="true" eOpposite="#//InformationLink/from"/> |
57 | </eClassifiers> | 57 | </eClassifiers> |
58 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalData" abstract="true"> | 58 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalData" abstract="true"> |
59 | <eStructuralFeatures xsi:type="ecore:EReference" name="terminator" eType="#//FAMTerminator" | 59 | <eStructuralFeatures xsi:type="ecore:EReference" name="terminator" eType="#//FAMTerminator" |
60 | containment="true" eOpposite="#//FAMTerminator/data"/> | 60 | containment="true" eOpposite="#//FAMTerminator/data"/> |
61 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" | 61 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" |
62 | eOpposite="#//FunctionalInterface/data"/> | 62 | eOpposite="#//FunctionalInterface/data"/> |
63 | </eClassifiers> | 63 | </eClassifiers> |
64 | <eClassifiers xsi:type="ecore:EEnum" name="FunctionType"> | 64 | <eClassifiers xsi:type="ecore:EEnum" name="FunctionType"> |
65 | <eLiterals name="Root"/> | 65 | <eLiterals name="Root"/> |
66 | <eLiterals name="Intermediate" value="1"/> | 66 | <eLiterals name="Intermediate" value="1"/> |
67 | <eLiterals name="Leaf" value="2"/> | 67 | <eLiterals name="Leaf" value="2"/> |
68 | </eClassifiers> | 68 | </eClassifiers> |
69 | </ecore:EPackage> | 69 | </ecore:EPackage> |
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml index 3dce57aa..213ec0ed 100644 --- a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml +++ b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml | |||
@@ -1,24 +1,24 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><plugin> | 1 | <?xml version="1.0" encoding="UTF-8"?><plugin> |
2 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 2 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
3 | <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> | 3 | <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> |
4 | </extension> | 4 | </extension> |
5 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 5 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
6 | <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> | 6 | <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> |
7 | </extension> | 7 | </extension> |
8 | <extension point="org.eclipse.emf.ecore.generated_package"> | 8 | <extension point="org.eclipse.emf.ecore.generated_package"> |
9 | <!-- @generated FamMetamodel --> | 9 | <!-- @generated FamMetamodel --> |
10 | <package class="functionalarchitecture.FunctionalarchitecturePackage" genModel="model/FamMetamodel.genmodel" uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> | 10 | <package class="functionalarchitecture.FunctionalarchitecturePackage" genModel="model/FamMetamodel.genmodel" uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> |
11 | </extension> | 11 | </extension> |
12 | <extension id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | 12 | <extension id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> |
13 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns"> | 13 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns"> |
14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/> | 14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/> |
15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/> | 15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/> |
16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.rootElements"/> | 16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.rootElements"/> |
17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.parent"/> | 17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.parent"/> |
18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/> | 18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/> |
19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasRoot"/> | 19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasRoot"/> |
20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasInt"/> | 20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasInt"/> |
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasLeaf"/> | 21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasLeaf"/> |
22 | </group> | 22 | </group> |
23 | </extension> | 23 | </extension> |
24 | </plugin> | 24 | </plugin> |
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/META-INF/MANIFEST.MF b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/META-INF/MANIFEST.MF index 41726ae6..5fb85170 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/META-INF/MANIFEST.MF +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/META-INF/MANIFEST.MF | |||
@@ -6,19 +6,19 @@ Bundle-Version: 1.0.0.qualifier | |||
6 | Bundle-ClassPath: . | 6 | Bundle-ClassPath: . |
7 | Bundle-Vendor: %providerName | 7 | Bundle-Vendor: %providerName |
8 | Bundle-Localization: plugin | 8 | Bundle-Localization: plugin |
9 | Export-Package: hu.bme.mit.inf.dslreasoner.domains.alloyexamples, | 9 | Export-Package: hu.bme.mit.inf.dslreasoner.domains.alloyexamples, |
10 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem, | 10 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem, |
11 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.impl, | 11 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.impl, |
12 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.util, | 12 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.util, |
13 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.util | 13 | hu.bme.mit.inf.dslreasoner.domains.alloyexamples.util |
14 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, | 14 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, |
15 | org.eclipse.viatra.query.runtime, | 15 | org.eclipse.viatra.query.runtime, |
16 | org.eclipse.core.runtime, | 16 | org.eclipse.core.runtime, |
17 | org.eclipse.emf.ecore;visibility:=reexport, | 17 | org.eclipse.emf.ecore;visibility:=reexport, |
18 | org.eclipse.emf.emfstore.common, | 18 | org.eclipse.emf.emfstore.common, |
19 | com.google.guava, | 19 | com.google.guava, |
20 | org.eclipse.xtext.xbase.lib, | 20 | org.eclipse.xtext.xbase.lib, |
21 | org.eclipse.xtend.lib, | 21 | org.eclipse.xtend.lib, |
22 | org.eclipse.xtend.lib.macro | 22 | org.eclipse.xtend.lib.macro |
23 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | 23 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 |
24 | Bundle-ActivationPolicy: lazy | 24 | Bundle-ActivationPolicy: lazy |
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/model/FileSytem.ecore b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/model/FileSytem.ecore index c928d2b0..87ba7135 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/model/FileSytem.ecore +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/model/FileSytem.ecore | |||
@@ -1,32 +1,32 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="Filesystem" nsURI="FS" nsPrefix="FS"> | 3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="Filesystem" nsURI="FS" nsPrefix="FS"> |
4 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | 4 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> |
5 | <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/> | 5 | <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/> |
6 | </eAnnotations> | 6 | </eAnnotations> |
7 | <eClassifiers xsi:type="ecore:EClass" name="FileSystem"> | 7 | <eClassifiers xsi:type="ecore:EClass" name="FileSystem"> |
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="root" lowerBound="1" eType="#//Dir" | 8 | <eStructuralFeatures xsi:type="ecore:EReference" name="root" lowerBound="1" eType="#//Dir" |
9 | containment="true"/> | 9 | containment="true"/> |
10 | <eStructuralFeatures xsi:type="ecore:EReference" name="live" upperBound="-1" eType="#//FSObject" | 10 | <eStructuralFeatures xsi:type="ecore:EReference" name="live" upperBound="-1" eType="#//FSObject" |
11 | changeable="false" volatile="true" transient="true" derived="true"> | 11 | changeable="false" volatile="true" transient="true" derived="true"> |
12 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | 12 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> |
13 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live"/> | 13 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live"/> |
14 | </eAnnotations> | 14 | </eAnnotations> |
15 | </eStructuralFeatures> | 15 | </eStructuralFeatures> |
16 | </eClassifiers> | 16 | </eClassifiers> |
17 | <eClassifiers xsi:type="ecore:EClass" name="FSObject" abstract="true"> | 17 | <eClassifiers xsi:type="ecore:EClass" name="FSObject" abstract="true"> |
18 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Dir" | 18 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Dir" |
19 | eOpposite="#//Dir/contents"/> | 19 | eOpposite="#//Dir/contents"/> |
20 | </eClassifiers> | 20 | </eClassifiers> |
21 | <eClassifiers xsi:type="ecore:EClass" name="Dir" eSuperTypes="#//FSObject"> | 21 | <eClassifiers xsi:type="ecore:EClass" name="Dir" eSuperTypes="#//FSObject"> |
22 | <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" | 22 | <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" |
23 | eType="#//FSObject" containment="true" eOpposite="#//FSObject/parent"/> | 23 | eType="#//FSObject" containment="true" eOpposite="#//FSObject/parent"/> |
24 | </eClassifiers> | 24 | </eClassifiers> |
25 | <eClassifiers xsi:type="ecore:EClass" name="File" eSuperTypes="#//FSObject"/> | 25 | <eClassifiers xsi:type="ecore:EClass" name="File" eSuperTypes="#//FSObject"/> |
26 | <eClassifiers xsi:type="ecore:EClass" name="Model"> | 26 | <eClassifiers xsi:type="ecore:EClass" name="Model"> |
27 | <eStructuralFeatures xsi:type="ecore:EReference" name="filesystems" lowerBound="1" | 27 | <eStructuralFeatures xsi:type="ecore:EReference" name="filesystems" lowerBound="1" |
28 | eType="#//FileSystem" containment="true"/> | 28 | eType="#//FileSystem" containment="true"/> |
29 | <eStructuralFeatures xsi:type="ecore:EReference" name="otherFSObjects" upperBound="-1" | 29 | <eStructuralFeatures xsi:type="ecore:EReference" name="otherFSObjects" upperBound="-1" |
30 | eType="#//FSObject" containment="true"/> | 30 | eType="#//FSObject" containment="true"/> |
31 | </eClassifiers> | 31 | </eClassifiers> |
32 | </ecore:EPackage> | 32 | </ecore:EPackage> |
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/plugin.xml index 576aa06e..d7fd112a 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/plugin.xml +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/plugin.xml | |||
@@ -1,26 +1,26 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- | 1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- |
2 | --><plugin> | 2 | --><plugin> |
3 | <extension point="org.eclipse.emf.ecore.generated_package"> | 3 | <extension point="org.eclipse.emf.ecore.generated_package"> |
4 | <!-- @generated FileSytem --> | 4 | <!-- @generated FileSytem --> |
5 | <package class="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FilesystemPackage" genModel="model/FileSytem.genmodel" uri="FS"/> | 5 | <package class="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FilesystemPackage" genModel="model/FileSytem.genmodel" uri="FS"/> |
6 | </extension> | 6 | </extension> |
7 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 7 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
8 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FS"/> | 8 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FS"/> |
9 | </extension> | 9 | </extension> |
10 | <extension id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Ecore" point="org.eclipse.viatra.query.runtime.queryspecification"> | 10 | <extension id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Ecore" point="org.eclipse.viatra.query.runtime.queryspecification"> |
11 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Ecore" id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Ecore"> | 11 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Ecore" id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Ecore"> |
12 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.directSupertype"/> | 12 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.directSupertype"/> |
13 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.loopInInheritence"/> | 13 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.loopInInheritence"/> |
14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.opposite"/> | 14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.opposite"/> |
15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.oppositeDifferentClass"/> | 15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.oppositeDifferentClass"/> |
16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.nonSymmetricOpposite"/> | 16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.nonSymmetricOpposite"/> |
17 | </group> | 17 | </group> |
18 | </extension> | 18 | </extension> |
19 | <extension id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.FileSystem" point="org.eclipse.viatra.query.runtime.queryspecification"> | 19 | <extension id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.FileSystem" point="org.eclipse.viatra.query.runtime.queryspecification"> |
20 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.alloyexamples.FileSystem" id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.FileSystem"> | 20 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.alloyexamples.FileSystem" id="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.FileSystem"> |
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.patternContent"/> | 21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.patternContent"/> |
22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live"/> | 22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live"/> |
23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.contentInNotLive"/> | 23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.alloyexamples.contentInNotLive"/> |
24 | </group> | 24 | </group> |
25 | </extension> | 25 | </extension> |
26 | </plugin> | 26 | </plugin> |
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/.gitignore index 9d608403..52338993 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/.gitignore +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/.gitignore | |||
@@ -34,3 +34,11 @@ | |||
34 | /OppositeMatcher.java | 34 | /OppositeMatcher.java |
35 | /PatternContentMatch.java | 35 | /PatternContentMatch.java |
36 | /PatternContentMatcher.java | 36 | /PatternContentMatcher.java |
37 | /.ContentInNotLive.java._trace | ||
38 | /.DirectSupertype.java._trace | ||
39 | /.Live.java._trace | ||
40 | /.LoopInInheritence.java._trace | ||
41 | /.NonSymmetricOpposite.java._trace | ||
42 | /.Opposite.java._trace | ||
43 | /.OppositeDifferentClass.java._trace | ||
44 | /.PatternContent.java._trace | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/ContentInNotLive.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/ContentInNotLive.java new file mode 100644 index 00000000..ffdc1a69 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/ContentInNotLive.java | |||
@@ -0,0 +1,741 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.Dir; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Live; | ||
9 | import java.util.Arrays; | ||
10 | import java.util.Collection; | ||
11 | import java.util.LinkedHashSet; | ||
12 | import java.util.List; | ||
13 | import java.util.Objects; | ||
14 | import java.util.Optional; | ||
15 | import java.util.Set; | ||
16 | import java.util.function.Consumer; | ||
17 | import java.util.stream.Collectors; | ||
18 | import java.util.stream.Stream; | ||
19 | import org.apache.log4j.Logger; | ||
20 | import org.eclipse.emf.ecore.EClass; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
44 | import 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 | * {@literal @}Constraint(key={child}, severity="error", message="error") | ||
52 | * pattern contentInNotLive(parent : Dir, child: FSObject) { | ||
53 | * Dir.contents(parent,child); | ||
54 | * neg find live(_,parent); | ||
55 | * } or { | ||
56 | * Dir.contents(parent,child); | ||
57 | * neg find live(_,child); | ||
58 | * } | ||
59 | * </pre></code> | ||
60 | * | ||
61 | * @see Matcher | ||
62 | * @see Match | ||
63 | * | ||
64 | */ | ||
65 | @SuppressWarnings("all") | ||
66 | public final class ContentInNotLive extends BaseGeneratedEMFQuerySpecification<ContentInNotLive.Matcher> { | ||
67 | /** | ||
68 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.contentInNotLive 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 Dir fParent; | ||
81 | |||
82 | private FSObject fChild; | ||
83 | |||
84 | private static List<String> parameterNames = makeImmutableList("parent", "child"); | ||
85 | |||
86 | private Match(final Dir pParent, final FSObject pChild) { | ||
87 | this.fParent = pParent; | ||
88 | this.fChild = pChild; | ||
89 | } | ||
90 | |||
91 | @Override | ||
92 | public Object get(final String parameterName) { | ||
93 | if ("parent".equals(parameterName)) return this.fParent; | ||
94 | if ("child".equals(parameterName)) return this.fChild; | ||
95 | return null; | ||
96 | } | ||
97 | |||
98 | public Dir getParent() { | ||
99 | return this.fParent; | ||
100 | } | ||
101 | |||
102 | public FSObject getChild() { | ||
103 | return this.fChild; | ||
104 | } | ||
105 | |||
106 | @Override | ||
107 | public boolean set(final String parameterName, final Object newValue) { | ||
108 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
109 | if ("parent".equals(parameterName) ) { | ||
110 | this.fParent = (Dir) newValue; | ||
111 | return true; | ||
112 | } | ||
113 | if ("child".equals(parameterName) ) { | ||
114 | this.fChild = (FSObject) newValue; | ||
115 | return true; | ||
116 | } | ||
117 | return false; | ||
118 | } | ||
119 | |||
120 | public void setParent(final Dir pParent) { | ||
121 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
122 | this.fParent = pParent; | ||
123 | } | ||
124 | |||
125 | public void setChild(final FSObject pChild) { | ||
126 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
127 | this.fChild = pChild; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public String patternName() { | ||
132 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.contentInNotLive"; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public List<String> parameterNames() { | ||
137 | return ContentInNotLive.Match.parameterNames; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public Object[] toArray() { | ||
142 | return new Object[]{fParent, fChild}; | ||
143 | } | ||
144 | |||
145 | @Override | ||
146 | public ContentInNotLive.Match toImmutable() { | ||
147 | return isMutable() ? newMatch(fParent, fChild) : this; | ||
148 | } | ||
149 | |||
150 | @Override | ||
151 | public String prettyPrint() { | ||
152 | StringBuilder result = new StringBuilder(); | ||
153 | result.append("\"parent\"=" + prettyPrintValue(fParent) + ", "); | ||
154 | result.append("\"child\"=" + prettyPrintValue(fChild)); | ||
155 | return result.toString(); | ||
156 | } | ||
157 | |||
158 | @Override | ||
159 | public int hashCode() { | ||
160 | return Objects.hash(fParent, fChild); | ||
161 | } | ||
162 | |||
163 | @Override | ||
164 | public boolean equals(final Object obj) { | ||
165 | if (this == obj) | ||
166 | return true; | ||
167 | if (obj == null) { | ||
168 | return false; | ||
169 | } | ||
170 | if ((obj instanceof ContentInNotLive.Match)) { | ||
171 | ContentInNotLive.Match other = (ContentInNotLive.Match) obj; | ||
172 | return Objects.equals(fParent, other.fParent) && Objects.equals(fChild, other.fChild); | ||
173 | } else { | ||
174 | // this should be infrequent | ||
175 | if (!(obj instanceof IPatternMatch)) { | ||
176 | return false; | ||
177 | } | ||
178 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
179 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
180 | } | ||
181 | } | ||
182 | |||
183 | @Override | ||
184 | public ContentInNotLive specification() { | ||
185 | return ContentInNotLive.instance(); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * Returns an empty, mutable match. | ||
190 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
191 | * | ||
192 | * @return the empty match. | ||
193 | * | ||
194 | */ | ||
195 | public static ContentInNotLive.Match newEmptyMatch() { | ||
196 | return new Mutable(null, null); | ||
197 | } | ||
198 | |||
199 | /** | ||
200 | * Returns a mutable (partial) match. | ||
201 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
202 | * | ||
203 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
204 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
205 | * @return the new, mutable (partial) match object. | ||
206 | * | ||
207 | */ | ||
208 | public static ContentInNotLive.Match newMutableMatch(final Dir pParent, final FSObject pChild) { | ||
209 | return new Mutable(pParent, pChild); | ||
210 | } | ||
211 | |||
212 | /** | ||
213 | * Returns a new (partial) match. | ||
214 | * This can be used e.g. to call the matcher with a partial match. | ||
215 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
216 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
217 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
218 | * @return the (partial) match object. | ||
219 | * | ||
220 | */ | ||
221 | public static ContentInNotLive.Match newMatch(final Dir pParent, final FSObject pChild) { | ||
222 | return new Immutable(pParent, pChild); | ||
223 | } | ||
224 | |||
225 | private static final class Mutable extends ContentInNotLive.Match { | ||
226 | Mutable(final Dir pParent, final FSObject pChild) { | ||
227 | super(pParent, pChild); | ||
228 | } | ||
229 | |||
230 | @Override | ||
231 | public boolean isMutable() { | ||
232 | return true; | ||
233 | } | ||
234 | } | ||
235 | |||
236 | private static final class Immutable extends ContentInNotLive.Match { | ||
237 | Immutable(final Dir pParent, final FSObject pChild) { | ||
238 | super(pParent, pChild); | ||
239 | } | ||
240 | |||
241 | @Override | ||
242 | public boolean isMutable() { | ||
243 | return false; | ||
244 | } | ||
245 | } | ||
246 | } | ||
247 | |||
248 | /** | ||
249 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.contentInNotLive pattern, | ||
250 | * providing pattern-specific query methods. | ||
251 | * | ||
252 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
253 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
254 | * | ||
255 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
256 | * | ||
257 | * <p>Original source: | ||
258 | * <code><pre> | ||
259 | * {@literal @}Constraint(key={child}, severity="error", message="error") | ||
260 | * pattern contentInNotLive(parent : Dir, child: FSObject) { | ||
261 | * Dir.contents(parent,child); | ||
262 | * neg find live(_,parent); | ||
263 | * } or { | ||
264 | * Dir.contents(parent,child); | ||
265 | * neg find live(_,child); | ||
266 | * } | ||
267 | * </pre></code> | ||
268 | * | ||
269 | * @see Match | ||
270 | * @see ContentInNotLive | ||
271 | * | ||
272 | */ | ||
273 | public static class Matcher extends BaseMatcher<ContentInNotLive.Match> { | ||
274 | /** | ||
275 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
276 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
277 | * | ||
278 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
279 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
280 | * | ||
281 | */ | ||
282 | public static ContentInNotLive.Matcher on(final ViatraQueryEngine engine) { | ||
283 | // check if matcher already exists | ||
284 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
285 | if (matcher == null) { | ||
286 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
287 | } | ||
288 | return matcher; | ||
289 | } | ||
290 | |||
291 | /** | ||
292 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
293 | * @return an initialized matcher | ||
294 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
295 | * | ||
296 | */ | ||
297 | public static ContentInNotLive.Matcher create() { | ||
298 | return new Matcher(); | ||
299 | } | ||
300 | |||
301 | private static final int POSITION_PARENT = 0; | ||
302 | |||
303 | private static final int POSITION_CHILD = 1; | ||
304 | |||
305 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(ContentInNotLive.Matcher.class); | ||
306 | |||
307 | /** | ||
308 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
309 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
310 | * | ||
311 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
312 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
313 | * | ||
314 | */ | ||
315 | private Matcher() { | ||
316 | super(querySpecification()); | ||
317 | } | ||
318 | |||
319 | /** | ||
320 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
321 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
322 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
323 | * @return matches represented as a Match object. | ||
324 | * | ||
325 | */ | ||
326 | public Collection<ContentInNotLive.Match> getAllMatches(final Dir pParent, final FSObject pChild) { | ||
327 | return rawStreamAllMatches(new Object[]{pParent, pChild}).collect(Collectors.toSet()); | ||
328 | } | ||
329 | |||
330 | /** | ||
331 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
332 | * </p> | ||
333 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
334 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
335 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
336 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
337 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
338 | * @return a stream of matches represented as a Match object. | ||
339 | * | ||
340 | */ | ||
341 | public Stream<ContentInNotLive.Match> streamAllMatches(final Dir pParent, final FSObject pChild) { | ||
342 | return rawStreamAllMatches(new Object[]{pParent, pChild}); | ||
343 | } | ||
344 | |||
345 | /** | ||
346 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
347 | * Neither determinism nor randomness of selection is guaranteed. | ||
348 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
349 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
350 | * @return a match represented as a Match object, or null if no match is found. | ||
351 | * | ||
352 | */ | ||
353 | public Optional<ContentInNotLive.Match> getOneArbitraryMatch(final Dir pParent, final FSObject pChild) { | ||
354 | return rawGetOneArbitraryMatch(new Object[]{pParent, pChild}); | ||
355 | } | ||
356 | |||
357 | /** | ||
358 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
359 | * under any possible substitution of the unspecified parameters (if any). | ||
360 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
361 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
362 | * @return true if the input is a valid (partial) match of the pattern. | ||
363 | * | ||
364 | */ | ||
365 | public boolean hasMatch(final Dir pParent, final FSObject pChild) { | ||
366 | return rawHasMatch(new Object[]{pParent, pChild}); | ||
367 | } | ||
368 | |||
369 | /** | ||
370 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
371 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
372 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
373 | * @return the number of pattern matches found. | ||
374 | * | ||
375 | */ | ||
376 | public int countMatches(final Dir pParent, final FSObject pChild) { | ||
377 | return rawCountMatches(new Object[]{pParent, pChild}); | ||
378 | } | ||
379 | |||
380 | /** | ||
381 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
382 | * Neither determinism nor randomness of selection is guaranteed. | ||
383 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
384 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
385 | * @param processor the action that will process the selected match. | ||
386 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
387 | * | ||
388 | */ | ||
389 | public boolean forOneArbitraryMatch(final Dir pParent, final FSObject pChild, final Consumer<? super ContentInNotLive.Match> processor) { | ||
390 | return rawForOneArbitraryMatch(new Object[]{pParent, pChild}, processor); | ||
391 | } | ||
392 | |||
393 | /** | ||
394 | * Returns a new (partial) match. | ||
395 | * This can be used e.g. to call the matcher with a partial match. | ||
396 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
397 | * @param pParent the fixed value of pattern parameter parent, or null if not bound. | ||
398 | * @param pChild the fixed value of pattern parameter child, or null if not bound. | ||
399 | * @return the (partial) match object. | ||
400 | * | ||
401 | */ | ||
402 | public ContentInNotLive.Match newMatch(final Dir pParent, final FSObject pChild) { | ||
403 | return ContentInNotLive.Match.newMatch(pParent, pChild); | ||
404 | } | ||
405 | |||
406 | /** | ||
407 | * Retrieve the set of values that occur in matches for parent. | ||
408 | * @return the Set of all values or empty set if there are no matches | ||
409 | * | ||
410 | */ | ||
411 | protected Stream<Dir> rawStreamAllValuesOfparent(final Object[] parameters) { | ||
412 | return rawStreamAllValues(POSITION_PARENT, parameters).map(Dir.class::cast); | ||
413 | } | ||
414 | |||
415 | /** | ||
416 | * Retrieve the set of values that occur in matches for parent. | ||
417 | * @return the Set of all values or empty set if there are no matches | ||
418 | * | ||
419 | */ | ||
420 | public Set<Dir> getAllValuesOfparent() { | ||
421 | return rawStreamAllValuesOfparent(emptyArray()).collect(Collectors.toSet()); | ||
422 | } | ||
423 | |||
424 | /** | ||
425 | * Retrieve the set of values that occur in matches for parent. | ||
426 | * @return the Set of all values or empty set if there are no matches | ||
427 | * | ||
428 | */ | ||
429 | public Stream<Dir> streamAllValuesOfparent() { | ||
430 | return rawStreamAllValuesOfparent(emptyArray()); | ||
431 | } | ||
432 | |||
433 | /** | ||
434 | * Retrieve the set of values that occur in matches for parent. | ||
435 | * </p> | ||
436 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
437 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
438 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
439 | * | ||
440 | * @return the Stream of all values or empty set if there are no matches | ||
441 | * | ||
442 | */ | ||
443 | public Stream<Dir> streamAllValuesOfparent(final ContentInNotLive.Match partialMatch) { | ||
444 | return rawStreamAllValuesOfparent(partialMatch.toArray()); | ||
445 | } | ||
446 | |||
447 | /** | ||
448 | * Retrieve the set of values that occur in matches for parent. | ||
449 | * </p> | ||
450 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
451 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
452 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
453 | * | ||
454 | * @return the Stream of all values or empty set if there are no matches | ||
455 | * | ||
456 | */ | ||
457 | public Stream<Dir> streamAllValuesOfparent(final FSObject pChild) { | ||
458 | return rawStreamAllValuesOfparent(new Object[]{null, pChild}); | ||
459 | } | ||
460 | |||
461 | /** | ||
462 | * Retrieve the set of values that occur in matches for parent. | ||
463 | * @return the Set of all values or empty set if there are no matches | ||
464 | * | ||
465 | */ | ||
466 | public Set<Dir> getAllValuesOfparent(final ContentInNotLive.Match partialMatch) { | ||
467 | return rawStreamAllValuesOfparent(partialMatch.toArray()).collect(Collectors.toSet()); | ||
468 | } | ||
469 | |||
470 | /** | ||
471 | * Retrieve the set of values that occur in matches for parent. | ||
472 | * @return the Set of all values or empty set if there are no matches | ||
473 | * | ||
474 | */ | ||
475 | public Set<Dir> getAllValuesOfparent(final FSObject pChild) { | ||
476 | return rawStreamAllValuesOfparent(new Object[]{null, pChild}).collect(Collectors.toSet()); | ||
477 | } | ||
478 | |||
479 | /** | ||
480 | * Retrieve the set of values that occur in matches for child. | ||
481 | * @return the Set of all values or empty set if there are no matches | ||
482 | * | ||
483 | */ | ||
484 | protected Stream<FSObject> rawStreamAllValuesOfchild(final Object[] parameters) { | ||
485 | return rawStreamAllValues(POSITION_CHILD, parameters).map(FSObject.class::cast); | ||
486 | } | ||
487 | |||
488 | /** | ||
489 | * Retrieve the set of values that occur in matches for child. | ||
490 | * @return the Set of all values or empty set if there are no matches | ||
491 | * | ||
492 | */ | ||
493 | public Set<FSObject> getAllValuesOfchild() { | ||
494 | return rawStreamAllValuesOfchild(emptyArray()).collect(Collectors.toSet()); | ||
495 | } | ||
496 | |||
497 | /** | ||
498 | * Retrieve the set of values that occur in matches for child. | ||
499 | * @return the Set of all values or empty set if there are no matches | ||
500 | * | ||
501 | */ | ||
502 | public Stream<FSObject> streamAllValuesOfchild() { | ||
503 | return rawStreamAllValuesOfchild(emptyArray()); | ||
504 | } | ||
505 | |||
506 | /** | ||
507 | * Retrieve the set of values that occur in matches for child. | ||
508 | * </p> | ||
509 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
510 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
511 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
512 | * | ||
513 | * @return the Stream of all values or empty set if there are no matches | ||
514 | * | ||
515 | */ | ||
516 | public Stream<FSObject> streamAllValuesOfchild(final ContentInNotLive.Match partialMatch) { | ||
517 | return rawStreamAllValuesOfchild(partialMatch.toArray()); | ||
518 | } | ||
519 | |||
520 | /** | ||
521 | * Retrieve the set of values that occur in matches for child. | ||
522 | * </p> | ||
523 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
524 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
525 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
526 | * | ||
527 | * @return the Stream of all values or empty set if there are no matches | ||
528 | * | ||
529 | */ | ||
530 | public Stream<FSObject> streamAllValuesOfchild(final Dir pParent) { | ||
531 | return rawStreamAllValuesOfchild(new Object[]{pParent, null}); | ||
532 | } | ||
533 | |||
534 | /** | ||
535 | * Retrieve the set of values that occur in matches for child. | ||
536 | * @return the Set of all values or empty set if there are no matches | ||
537 | * | ||
538 | */ | ||
539 | public Set<FSObject> getAllValuesOfchild(final ContentInNotLive.Match partialMatch) { | ||
540 | return rawStreamAllValuesOfchild(partialMatch.toArray()).collect(Collectors.toSet()); | ||
541 | } | ||
542 | |||
543 | /** | ||
544 | * Retrieve the set of values that occur in matches for child. | ||
545 | * @return the Set of all values or empty set if there are no matches | ||
546 | * | ||
547 | */ | ||
548 | public Set<FSObject> getAllValuesOfchild(final Dir pParent) { | ||
549 | return rawStreamAllValuesOfchild(new Object[]{pParent, null}).collect(Collectors.toSet()); | ||
550 | } | ||
551 | |||
552 | @Override | ||
553 | protected ContentInNotLive.Match tupleToMatch(final Tuple t) { | ||
554 | try { | ||
555 | return ContentInNotLive.Match.newMatch((Dir) t.get(POSITION_PARENT), (FSObject) t.get(POSITION_CHILD)); | ||
556 | } catch(ClassCastException e) { | ||
557 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
558 | return null; | ||
559 | } | ||
560 | } | ||
561 | |||
562 | @Override | ||
563 | protected ContentInNotLive.Match arrayToMatch(final Object[] match) { | ||
564 | try { | ||
565 | return ContentInNotLive.Match.newMatch((Dir) match[POSITION_PARENT], (FSObject) match[POSITION_CHILD]); | ||
566 | } catch(ClassCastException e) { | ||
567 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
568 | return null; | ||
569 | } | ||
570 | } | ||
571 | |||
572 | @Override | ||
573 | protected ContentInNotLive.Match arrayToMatchMutable(final Object[] match) { | ||
574 | try { | ||
575 | return ContentInNotLive.Match.newMutableMatch((Dir) match[POSITION_PARENT], (FSObject) match[POSITION_CHILD]); | ||
576 | } catch(ClassCastException e) { | ||
577 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
578 | return null; | ||
579 | } | ||
580 | } | ||
581 | |||
582 | /** | ||
583 | * @return the singleton instance of the query specification of this pattern | ||
584 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
585 | * | ||
586 | */ | ||
587 | public static IQuerySpecification<ContentInNotLive.Matcher> querySpecification() { | ||
588 | return ContentInNotLive.instance(); | ||
589 | } | ||
590 | } | ||
591 | |||
592 | private ContentInNotLive() { | ||
593 | super(GeneratedPQuery.INSTANCE); | ||
594 | } | ||
595 | |||
596 | /** | ||
597 | * @return the singleton instance of the query specification | ||
598 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
599 | * | ||
600 | */ | ||
601 | public static ContentInNotLive instance() { | ||
602 | try{ | ||
603 | return LazyHolder.INSTANCE; | ||
604 | } catch (ExceptionInInitializerError err) { | ||
605 | throw processInitializerError(err); | ||
606 | } | ||
607 | } | ||
608 | |||
609 | @Override | ||
610 | protected ContentInNotLive.Matcher instantiate(final ViatraQueryEngine engine) { | ||
611 | return ContentInNotLive.Matcher.on(engine); | ||
612 | } | ||
613 | |||
614 | @Override | ||
615 | public ContentInNotLive.Matcher instantiate() { | ||
616 | return ContentInNotLive.Matcher.create(); | ||
617 | } | ||
618 | |||
619 | @Override | ||
620 | public ContentInNotLive.Match newEmptyMatch() { | ||
621 | return ContentInNotLive.Match.newEmptyMatch(); | ||
622 | } | ||
623 | |||
624 | @Override | ||
625 | public ContentInNotLive.Match newMatch(final Object... parameters) { | ||
626 | return ContentInNotLive.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.Dir) parameters[0], (hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject) parameters[1]); | ||
627 | } | ||
628 | |||
629 | /** | ||
630 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.ContentInNotLive (visibility: PUBLIC, simpleName: ContentInNotLive, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.ContentInNotLive, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
631 | * <b>not</b> at the class load time of the outer class, | ||
632 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.ContentInNotLive (visibility: PUBLIC, simpleName: ContentInNotLive, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.ContentInNotLive, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
633 | * | ||
634 | * <p> This workaround is required e.g. to support recursion. | ||
635 | * | ||
636 | */ | ||
637 | private static class LazyHolder { | ||
638 | private static final ContentInNotLive INSTANCE = new ContentInNotLive(); | ||
639 | |||
640 | /** | ||
641 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
642 | * This initialization order is required to support indirect recursion. | ||
643 | * | ||
644 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
645 | * | ||
646 | */ | ||
647 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
648 | |||
649 | public static Object ensureInitialized() { | ||
650 | INSTANCE.ensureInitializedInternal(); | ||
651 | return null; | ||
652 | } | ||
653 | } | ||
654 | |||
655 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
656 | private static final ContentInNotLive.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
657 | |||
658 | private final PParameter parameter_parent = new PParameter("parent", "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.Dir", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FS", "Dir")), PParameterDirection.INOUT); | ||
659 | |||
660 | private final PParameter parameter_child = new PParameter("child", "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FS", "FSObject")), PParameterDirection.INOUT); | ||
661 | |||
662 | private final List<PParameter> parameters = Arrays.asList(parameter_parent, parameter_child); | ||
663 | |||
664 | private GeneratedPQuery() { | ||
665 | super(PVisibility.PUBLIC); | ||
666 | } | ||
667 | |||
668 | @Override | ||
669 | public String getFullyQualifiedName() { | ||
670 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.contentInNotLive"; | ||
671 | } | ||
672 | |||
673 | @Override | ||
674 | public List<String> getParameterNames() { | ||
675 | return Arrays.asList("parent","child"); | ||
676 | } | ||
677 | |||
678 | @Override | ||
679 | public List<PParameter> getParameters() { | ||
680 | return parameters; | ||
681 | } | ||
682 | |||
683 | @Override | ||
684 | public Set<PBody> doGetContainedBodies() { | ||
685 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
686 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
687 | { | ||
688 | PBody body = new PBody(this); | ||
689 | PVariable var_parent = body.getOrCreateVariableByName("parent"); | ||
690 | PVariable var_child = body.getOrCreateVariableByName("child"); | ||
691 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
692 | new TypeConstraint(body, Tuples.flatTupleOf(var_parent), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
693 | new TypeConstraint(body, Tuples.flatTupleOf(var_child), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
694 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
695 | new ExportedParameter(body, var_parent, parameter_parent), | ||
696 | new ExportedParameter(body, var_child, parameter_child) | ||
697 | )); | ||
698 | // Dir.contents(parent,child) | ||
699 | new TypeConstraint(body, Tuples.flatTupleOf(var_parent), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
700 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
701 | new TypeConstraint(body, Tuples.flatTupleOf(var_parent, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FS", "Dir", "contents"))); | ||
702 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
703 | new Equality(body, var__virtual_0_, var_child); | ||
704 | // neg find live(_,parent) | ||
705 | new NegativePatternCall(body, Tuples.flatTupleOf(var___0_, var_parent), Live.instance().getInternalQueryRepresentation()); | ||
706 | bodies.add(body); | ||
707 | } | ||
708 | { | ||
709 | PBody body = new PBody(this); | ||
710 | PVariable var_parent = body.getOrCreateVariableByName("parent"); | ||
711 | PVariable var_child = body.getOrCreateVariableByName("child"); | ||
712 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
713 | new TypeConstraint(body, Tuples.flatTupleOf(var_parent), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
714 | new TypeConstraint(body, Tuples.flatTupleOf(var_child), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
715 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
716 | new ExportedParameter(body, var_parent, parameter_parent), | ||
717 | new ExportedParameter(body, var_child, parameter_child) | ||
718 | )); | ||
719 | // Dir.contents(parent,child) | ||
720 | new TypeConstraint(body, Tuples.flatTupleOf(var_parent), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
721 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
722 | new TypeConstraint(body, Tuples.flatTupleOf(var_parent, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FS", "Dir", "contents"))); | ||
723 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
724 | new Equality(body, var__virtual_0_, var_child); | ||
725 | // neg find live(_,child) | ||
726 | new NegativePatternCall(body, Tuples.flatTupleOf(var___0_, var_child), Live.instance().getInternalQueryRepresentation()); | ||
727 | bodies.add(body); | ||
728 | } | ||
729 | { | ||
730 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
731 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
732 | new ParameterReference("child") | ||
733 | })); | ||
734 | annotation.addAttribute("severity", "error"); | ||
735 | annotation.addAttribute("message", "error"); | ||
736 | addAnnotation(annotation); | ||
737 | } | ||
738 | return bodies; | ||
739 | } | ||
740 | } | ||
741 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/DirectSupertype.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/DirectSupertype.java new file mode 100644 index 00000000..03020a7c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/DirectSupertype.java | |||
@@ -0,0 +1,692 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
38 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
39 | |||
40 | /** | ||
41 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
42 | * | ||
43 | * <p>Original source: | ||
44 | * <code><pre> | ||
45 | * pattern directSupertype(a: EClass, b:EClass) { | ||
46 | * EClass.eSuperTypes(a,b); | ||
47 | * } | ||
48 | * </pre></code> | ||
49 | * | ||
50 | * @see Matcher | ||
51 | * @see Match | ||
52 | * | ||
53 | */ | ||
54 | @SuppressWarnings("all") | ||
55 | public final class DirectSupertype extends BaseGeneratedEMFQuerySpecification<DirectSupertype.Matcher> { | ||
56 | /** | ||
57 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.directSupertype pattern, | ||
58 | * to be used in conjunction with {@link Matcher}. | ||
59 | * | ||
60 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
61 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
62 | * usable to represent a match of the pattern in the result of a query, | ||
63 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
64 | * | ||
65 | * @see Matcher | ||
66 | * | ||
67 | */ | ||
68 | public static abstract class Match extends BasePatternMatch { | ||
69 | private EClass fA; | ||
70 | |||
71 | private EClass fB; | ||
72 | |||
73 | private static List<String> parameterNames = makeImmutableList("a", "b"); | ||
74 | |||
75 | private Match(final EClass pA, final EClass pB) { | ||
76 | this.fA = pA; | ||
77 | this.fB = pB; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | if ("a".equals(parameterName)) return this.fA; | ||
83 | if ("b".equals(parameterName)) return this.fB; | ||
84 | return null; | ||
85 | } | ||
86 | |||
87 | public EClass getA() { | ||
88 | return this.fA; | ||
89 | } | ||
90 | |||
91 | public EClass getB() { | ||
92 | return this.fB; | ||
93 | } | ||
94 | |||
95 | @Override | ||
96 | public boolean set(final String parameterName, final Object newValue) { | ||
97 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
98 | if ("a".equals(parameterName) ) { | ||
99 | this.fA = (EClass) newValue; | ||
100 | return true; | ||
101 | } | ||
102 | if ("b".equals(parameterName) ) { | ||
103 | this.fB = (EClass) newValue; | ||
104 | return true; | ||
105 | } | ||
106 | return false; | ||
107 | } | ||
108 | |||
109 | public void setA(final EClass pA) { | ||
110 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
111 | this.fA = pA; | ||
112 | } | ||
113 | |||
114 | public void setB(final EClass pB) { | ||
115 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
116 | this.fB = pB; | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public String patternName() { | ||
121 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.directSupertype"; | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public List<String> parameterNames() { | ||
126 | return DirectSupertype.Match.parameterNames; | ||
127 | } | ||
128 | |||
129 | @Override | ||
130 | public Object[] toArray() { | ||
131 | return new Object[]{fA, fB}; | ||
132 | } | ||
133 | |||
134 | @Override | ||
135 | public DirectSupertype.Match toImmutable() { | ||
136 | return isMutable() ? newMatch(fA, fB) : this; | ||
137 | } | ||
138 | |||
139 | @Override | ||
140 | public String prettyPrint() { | ||
141 | StringBuilder result = new StringBuilder(); | ||
142 | result.append("\"a\"=" + prettyPrintValue(fA) + ", "); | ||
143 | result.append("\"b\"=" + prettyPrintValue(fB)); | ||
144 | return result.toString(); | ||
145 | } | ||
146 | |||
147 | @Override | ||
148 | public int hashCode() { | ||
149 | return Objects.hash(fA, fB); | ||
150 | } | ||
151 | |||
152 | @Override | ||
153 | public boolean equals(final Object obj) { | ||
154 | if (this == obj) | ||
155 | return true; | ||
156 | if (obj == null) { | ||
157 | return false; | ||
158 | } | ||
159 | if ((obj instanceof DirectSupertype.Match)) { | ||
160 | DirectSupertype.Match other = (DirectSupertype.Match) obj; | ||
161 | return Objects.equals(fA, other.fA) && Objects.equals(fB, other.fB); | ||
162 | } else { | ||
163 | // this should be infrequent | ||
164 | if (!(obj instanceof IPatternMatch)) { | ||
165 | return false; | ||
166 | } | ||
167 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
168 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
169 | } | ||
170 | } | ||
171 | |||
172 | @Override | ||
173 | public DirectSupertype specification() { | ||
174 | return DirectSupertype.instance(); | ||
175 | } | ||
176 | |||
177 | /** | ||
178 | * Returns an empty, mutable match. | ||
179 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
180 | * | ||
181 | * @return the empty match. | ||
182 | * | ||
183 | */ | ||
184 | public static DirectSupertype.Match newEmptyMatch() { | ||
185 | return new Mutable(null, null); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * Returns a mutable (partial) match. | ||
190 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
191 | * | ||
192 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
193 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
194 | * @return the new, mutable (partial) match object. | ||
195 | * | ||
196 | */ | ||
197 | public static DirectSupertype.Match newMutableMatch(final EClass pA, final EClass pB) { | ||
198 | return new Mutable(pA, pB); | ||
199 | } | ||
200 | |||
201 | /** | ||
202 | * Returns a new (partial) match. | ||
203 | * This can be used e.g. to call the matcher with a partial match. | ||
204 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
205 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
206 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
207 | * @return the (partial) match object. | ||
208 | * | ||
209 | */ | ||
210 | public static DirectSupertype.Match newMatch(final EClass pA, final EClass pB) { | ||
211 | return new Immutable(pA, pB); | ||
212 | } | ||
213 | |||
214 | private static final class Mutable extends DirectSupertype.Match { | ||
215 | Mutable(final EClass pA, final EClass pB) { | ||
216 | super(pA, pB); | ||
217 | } | ||
218 | |||
219 | @Override | ||
220 | public boolean isMutable() { | ||
221 | return true; | ||
222 | } | ||
223 | } | ||
224 | |||
225 | private static final class Immutable extends DirectSupertype.Match { | ||
226 | Immutable(final EClass pA, final EClass pB) { | ||
227 | super(pA, pB); | ||
228 | } | ||
229 | |||
230 | @Override | ||
231 | public boolean isMutable() { | ||
232 | return false; | ||
233 | } | ||
234 | } | ||
235 | } | ||
236 | |||
237 | /** | ||
238 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.directSupertype pattern, | ||
239 | * providing pattern-specific query methods. | ||
240 | * | ||
241 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
242 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
243 | * | ||
244 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
245 | * | ||
246 | * <p>Original source: | ||
247 | * <code><pre> | ||
248 | * pattern directSupertype(a: EClass, b:EClass) { | ||
249 | * EClass.eSuperTypes(a,b); | ||
250 | * } | ||
251 | * </pre></code> | ||
252 | * | ||
253 | * @see Match | ||
254 | * @see DirectSupertype | ||
255 | * | ||
256 | */ | ||
257 | public static class Matcher extends BaseMatcher<DirectSupertype.Match> { | ||
258 | /** | ||
259 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
260 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
261 | * | ||
262 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
263 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
264 | * | ||
265 | */ | ||
266 | public static DirectSupertype.Matcher on(final ViatraQueryEngine engine) { | ||
267 | // check if matcher already exists | ||
268 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
269 | if (matcher == null) { | ||
270 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
271 | } | ||
272 | return matcher; | ||
273 | } | ||
274 | |||
275 | /** | ||
276 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
277 | * @return an initialized matcher | ||
278 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
279 | * | ||
280 | */ | ||
281 | public static DirectSupertype.Matcher create() { | ||
282 | return new Matcher(); | ||
283 | } | ||
284 | |||
285 | private static final int POSITION_A = 0; | ||
286 | |||
287 | private static final int POSITION_B = 1; | ||
288 | |||
289 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(DirectSupertype.Matcher.class); | ||
290 | |||
291 | /** | ||
292 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
293 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
294 | * | ||
295 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
296 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
297 | * | ||
298 | */ | ||
299 | private Matcher() { | ||
300 | super(querySpecification()); | ||
301 | } | ||
302 | |||
303 | /** | ||
304 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
305 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
306 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
307 | * @return matches represented as a Match object. | ||
308 | * | ||
309 | */ | ||
310 | public Collection<DirectSupertype.Match> getAllMatches(final EClass pA, final EClass pB) { | ||
311 | return rawStreamAllMatches(new Object[]{pA, pB}).collect(Collectors.toSet()); | ||
312 | } | ||
313 | |||
314 | /** | ||
315 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
316 | * </p> | ||
317 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
318 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
319 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
320 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
321 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
322 | * @return a stream of matches represented as a Match object. | ||
323 | * | ||
324 | */ | ||
325 | public Stream<DirectSupertype.Match> streamAllMatches(final EClass pA, final EClass pB) { | ||
326 | return rawStreamAllMatches(new Object[]{pA, pB}); | ||
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 pA the fixed value of pattern parameter a, or null if not bound. | ||
333 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
334 | * @return a match represented as a Match object, or null if no match is found. | ||
335 | * | ||
336 | */ | ||
337 | public Optional<DirectSupertype.Match> getOneArbitraryMatch(final EClass pA, final EClass pB) { | ||
338 | return rawGetOneArbitraryMatch(new Object[]{pA, pB}); | ||
339 | } | ||
340 | |||
341 | /** | ||
342 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
343 | * under any possible substitution of the unspecified parameters (if any). | ||
344 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
345 | * @param pB the fixed value of pattern parameter b, 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 EClass pA, final EClass pB) { | ||
350 | return rawHasMatch(new Object[]{pA, pB}); | ||
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 pA the fixed value of pattern parameter a, or null if not bound. | ||
356 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
357 | * @return the number of pattern matches found. | ||
358 | * | ||
359 | */ | ||
360 | public int countMatches(final EClass pA, final EClass pB) { | ||
361 | return rawCountMatches(new Object[]{pA, pB}); | ||
362 | } | ||
363 | |||
364 | /** | ||
365 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
366 | * Neither determinism nor randomness of selection is guaranteed. | ||
367 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
368 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
369 | * @param processor the action that will process the selected match. | ||
370 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
371 | * | ||
372 | */ | ||
373 | public boolean forOneArbitraryMatch(final EClass pA, final EClass pB, final Consumer<? super DirectSupertype.Match> processor) { | ||
374 | return rawForOneArbitraryMatch(new Object[]{pA, pB}, processor); | ||
375 | } | ||
376 | |||
377 | /** | ||
378 | * Returns a new (partial) match. | ||
379 | * This can be used e.g. to call the matcher with a partial match. | ||
380 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
381 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
382 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
383 | * @return the (partial) match object. | ||
384 | * | ||
385 | */ | ||
386 | public DirectSupertype.Match newMatch(final EClass pA, final EClass pB) { | ||
387 | return DirectSupertype.Match.newMatch(pA, pB); | ||
388 | } | ||
389 | |||
390 | /** | ||
391 | * Retrieve the set of values that occur in matches for a. | ||
392 | * @return the Set of all values or empty set if there are no matches | ||
393 | * | ||
394 | */ | ||
395 | protected Stream<EClass> rawStreamAllValuesOfa(final Object[] parameters) { | ||
396 | return rawStreamAllValues(POSITION_A, parameters).map(EClass.class::cast); | ||
397 | } | ||
398 | |||
399 | /** | ||
400 | * Retrieve the set of values that occur in matches for a. | ||
401 | * @return the Set of all values or empty set if there are no matches | ||
402 | * | ||
403 | */ | ||
404 | public Set<EClass> getAllValuesOfa() { | ||
405 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
406 | } | ||
407 | |||
408 | /** | ||
409 | * Retrieve the set of values that occur in matches for a. | ||
410 | * @return the Set of all values or empty set if there are no matches | ||
411 | * | ||
412 | */ | ||
413 | public Stream<EClass> streamAllValuesOfa() { | ||
414 | return rawStreamAllValuesOfa(emptyArray()); | ||
415 | } | ||
416 | |||
417 | /** | ||
418 | * Retrieve the set of values that occur in matches for a. | ||
419 | * </p> | ||
420 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
421 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
422 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
423 | * | ||
424 | * @return the Stream of all values or empty set if there are no matches | ||
425 | * | ||
426 | */ | ||
427 | public Stream<EClass> streamAllValuesOfa(final DirectSupertype.Match partialMatch) { | ||
428 | return rawStreamAllValuesOfa(partialMatch.toArray()); | ||
429 | } | ||
430 | |||
431 | /** | ||
432 | * Retrieve the set of values that occur in matches for a. | ||
433 | * </p> | ||
434 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
435 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
436 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
437 | * | ||
438 | * @return the Stream of all values or empty set if there are no matches | ||
439 | * | ||
440 | */ | ||
441 | public Stream<EClass> streamAllValuesOfa(final EClass pB) { | ||
442 | return rawStreamAllValuesOfa(new Object[]{null, pB}); | ||
443 | } | ||
444 | |||
445 | /** | ||
446 | * Retrieve the set of values that occur in matches for a. | ||
447 | * @return the Set of all values or empty set if there are no matches | ||
448 | * | ||
449 | */ | ||
450 | public Set<EClass> getAllValuesOfa(final DirectSupertype.Match partialMatch) { | ||
451 | return rawStreamAllValuesOfa(partialMatch.toArray()).collect(Collectors.toSet()); | ||
452 | } | ||
453 | |||
454 | /** | ||
455 | * Retrieve the set of values that occur in matches for a. | ||
456 | * @return the Set of all values or empty set if there are no matches | ||
457 | * | ||
458 | */ | ||
459 | public Set<EClass> getAllValuesOfa(final EClass pB) { | ||
460 | return rawStreamAllValuesOfa(new Object[]{null, pB}).collect(Collectors.toSet()); | ||
461 | } | ||
462 | |||
463 | /** | ||
464 | * Retrieve the set of values that occur in matches for b. | ||
465 | * @return the Set of all values or empty set if there are no matches | ||
466 | * | ||
467 | */ | ||
468 | protected Stream<EClass> rawStreamAllValuesOfb(final Object[] parameters) { | ||
469 | return rawStreamAllValues(POSITION_B, parameters).map(EClass.class::cast); | ||
470 | } | ||
471 | |||
472 | /** | ||
473 | * Retrieve the set of values that occur in matches for b. | ||
474 | * @return the Set of all values or empty set if there are no matches | ||
475 | * | ||
476 | */ | ||
477 | public Set<EClass> getAllValuesOfb() { | ||
478 | return rawStreamAllValuesOfb(emptyArray()).collect(Collectors.toSet()); | ||
479 | } | ||
480 | |||
481 | /** | ||
482 | * Retrieve the set of values that occur in matches for b. | ||
483 | * @return the Set of all values or empty set if there are no matches | ||
484 | * | ||
485 | */ | ||
486 | public Stream<EClass> streamAllValuesOfb() { | ||
487 | return rawStreamAllValuesOfb(emptyArray()); | ||
488 | } | ||
489 | |||
490 | /** | ||
491 | * Retrieve the set of values that occur in matches for b. | ||
492 | * </p> | ||
493 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
494 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
495 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
496 | * | ||
497 | * @return the Stream of all values or empty set if there are no matches | ||
498 | * | ||
499 | */ | ||
500 | public Stream<EClass> streamAllValuesOfb(final DirectSupertype.Match partialMatch) { | ||
501 | return rawStreamAllValuesOfb(partialMatch.toArray()); | ||
502 | } | ||
503 | |||
504 | /** | ||
505 | * Retrieve the set of values that occur in matches for b. | ||
506 | * </p> | ||
507 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
508 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
509 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
510 | * | ||
511 | * @return the Stream of all values or empty set if there are no matches | ||
512 | * | ||
513 | */ | ||
514 | public Stream<EClass> streamAllValuesOfb(final EClass pA) { | ||
515 | return rawStreamAllValuesOfb(new Object[]{pA, null}); | ||
516 | } | ||
517 | |||
518 | /** | ||
519 | * Retrieve the set of values that occur in matches for b. | ||
520 | * @return the Set of all values or empty set if there are no matches | ||
521 | * | ||
522 | */ | ||
523 | public Set<EClass> getAllValuesOfb(final DirectSupertype.Match partialMatch) { | ||
524 | return rawStreamAllValuesOfb(partialMatch.toArray()).collect(Collectors.toSet()); | ||
525 | } | ||
526 | |||
527 | /** | ||
528 | * Retrieve the set of values that occur in matches for b. | ||
529 | * @return the Set of all values or empty set if there are no matches | ||
530 | * | ||
531 | */ | ||
532 | public Set<EClass> getAllValuesOfb(final EClass pA) { | ||
533 | return rawStreamAllValuesOfb(new Object[]{pA, null}).collect(Collectors.toSet()); | ||
534 | } | ||
535 | |||
536 | @Override | ||
537 | protected DirectSupertype.Match tupleToMatch(final Tuple t) { | ||
538 | try { | ||
539 | return DirectSupertype.Match.newMatch((EClass) t.get(POSITION_A), (EClass) t.get(POSITION_B)); | ||
540 | } catch(ClassCastException e) { | ||
541 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
542 | return null; | ||
543 | } | ||
544 | } | ||
545 | |||
546 | @Override | ||
547 | protected DirectSupertype.Match arrayToMatch(final Object[] match) { | ||
548 | try { | ||
549 | return DirectSupertype.Match.newMatch((EClass) match[POSITION_A], (EClass) match[POSITION_B]); | ||
550 | } catch(ClassCastException e) { | ||
551 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
552 | return null; | ||
553 | } | ||
554 | } | ||
555 | |||
556 | @Override | ||
557 | protected DirectSupertype.Match arrayToMatchMutable(final Object[] match) { | ||
558 | try { | ||
559 | return DirectSupertype.Match.newMutableMatch((EClass) match[POSITION_A], (EClass) match[POSITION_B]); | ||
560 | } catch(ClassCastException e) { | ||
561 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
562 | return null; | ||
563 | } | ||
564 | } | ||
565 | |||
566 | /** | ||
567 | * @return the singleton instance of the query specification of this pattern | ||
568 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
569 | * | ||
570 | */ | ||
571 | public static IQuerySpecification<DirectSupertype.Matcher> querySpecification() { | ||
572 | return DirectSupertype.instance(); | ||
573 | } | ||
574 | } | ||
575 | |||
576 | private DirectSupertype() { | ||
577 | super(GeneratedPQuery.INSTANCE); | ||
578 | } | ||
579 | |||
580 | /** | ||
581 | * @return the singleton instance of the query specification | ||
582 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
583 | * | ||
584 | */ | ||
585 | public static DirectSupertype instance() { | ||
586 | try{ | ||
587 | return LazyHolder.INSTANCE; | ||
588 | } catch (ExceptionInInitializerError err) { | ||
589 | throw processInitializerError(err); | ||
590 | } | ||
591 | } | ||
592 | |||
593 | @Override | ||
594 | protected DirectSupertype.Matcher instantiate(final ViatraQueryEngine engine) { | ||
595 | return DirectSupertype.Matcher.on(engine); | ||
596 | } | ||
597 | |||
598 | @Override | ||
599 | public DirectSupertype.Matcher instantiate() { | ||
600 | return DirectSupertype.Matcher.create(); | ||
601 | } | ||
602 | |||
603 | @Override | ||
604 | public DirectSupertype.Match newEmptyMatch() { | ||
605 | return DirectSupertype.Match.newEmptyMatch(); | ||
606 | } | ||
607 | |||
608 | @Override | ||
609 | public DirectSupertype.Match newMatch(final Object... parameters) { | ||
610 | return DirectSupertype.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0], (org.eclipse.emf.ecore.EClass) parameters[1]); | ||
611 | } | ||
612 | |||
613 | /** | ||
614 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.DirectSupertype (visibility: PUBLIC, simpleName: DirectSupertype, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.DirectSupertype, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
615 | * <b>not</b> at the class load time of the outer class, | ||
616 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.DirectSupertype (visibility: PUBLIC, simpleName: DirectSupertype, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.DirectSupertype, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
617 | * | ||
618 | * <p> This workaround is required e.g. to support recursion. | ||
619 | * | ||
620 | */ | ||
621 | private static class LazyHolder { | ||
622 | private static final DirectSupertype INSTANCE = new DirectSupertype(); | ||
623 | |||
624 | /** | ||
625 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
626 | * This initialization order is required to support indirect recursion. | ||
627 | * | ||
628 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
629 | * | ||
630 | */ | ||
631 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
632 | |||
633 | public static Object ensureInitialized() { | ||
634 | INSTANCE.ensureInitializedInternal(); | ||
635 | return null; | ||
636 | } | ||
637 | } | ||
638 | |||
639 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
640 | private static final DirectSupertype.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
641 | |||
642 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
643 | |||
644 | private final PParameter parameter_b = new PParameter("b", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
645 | |||
646 | private final List<PParameter> parameters = Arrays.asList(parameter_a, parameter_b); | ||
647 | |||
648 | private GeneratedPQuery() { | ||
649 | super(PVisibility.PUBLIC); | ||
650 | } | ||
651 | |||
652 | @Override | ||
653 | public String getFullyQualifiedName() { | ||
654 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.directSupertype"; | ||
655 | } | ||
656 | |||
657 | @Override | ||
658 | public List<String> getParameterNames() { | ||
659 | return Arrays.asList("a","b"); | ||
660 | } | ||
661 | |||
662 | @Override | ||
663 | public List<PParameter> getParameters() { | ||
664 | return parameters; | ||
665 | } | ||
666 | |||
667 | @Override | ||
668 | public Set<PBody> doGetContainedBodies() { | ||
669 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
670 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
671 | { | ||
672 | PBody body = new PBody(this); | ||
673 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
674 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
675 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
676 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
677 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
678 | new ExportedParameter(body, var_a, parameter_a), | ||
679 | new ExportedParameter(body, var_b, parameter_b) | ||
680 | )); | ||
681 | // EClass.eSuperTypes(a,b) | ||
682 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
683 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
684 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass", "eSuperTypes"))); | ||
685 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
686 | new Equality(body, var__virtual_0_, var_b); | ||
687 | bodies.add(body); | ||
688 | } | ||
689 | return bodies; | ||
690 | } | ||
691 | } | ||
692 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Live.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Live.java new file mode 100644 index 00000000..ae0f0c58 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Live.java | |||
@@ -0,0 +1,730 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FileSystem; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.PatternContent; | ||
9 | import java.util.Arrays; | ||
10 | import java.util.Collection; | ||
11 | import java.util.LinkedHashSet; | ||
12 | import java.util.List; | ||
13 | import java.util.Objects; | ||
14 | import java.util.Optional; | ||
15 | import java.util.Set; | ||
16 | import java.util.function.Consumer; | ||
17 | import java.util.stream.Collectors; | ||
18 | import java.util.stream.Stream; | ||
19 | import org.apache.log4j.Logger; | ||
20 | import org.eclipse.emf.ecore.EClass; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
43 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
44 | |||
45 | /** | ||
46 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
47 | * | ||
48 | * <p>Original source: | ||
49 | * <code><pre> | ||
50 | * {@literal @}QueryBasedFeature | ||
51 | * pattern live(this: FileSystem, l: FSObject) { | ||
52 | * FileSystem.root(this,l); | ||
53 | * } or { | ||
54 | * FileSystem.root(this,root); | ||
55 | * find patternContent+(root,l); | ||
56 | * } | ||
57 | * </pre></code> | ||
58 | * | ||
59 | * @see Matcher | ||
60 | * @see Match | ||
61 | * | ||
62 | */ | ||
63 | @SuppressWarnings("all") | ||
64 | public final class Live extends BaseGeneratedEMFQuerySpecification<Live.Matcher> { | ||
65 | /** | ||
66 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live 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 FileSystem fThis; | ||
79 | |||
80 | private FSObject fL; | ||
81 | |||
82 | private static List<String> parameterNames = makeImmutableList("this", "l"); | ||
83 | |||
84 | private Match(final FileSystem pThis, final FSObject pL) { | ||
85 | this.fThis = pThis; | ||
86 | this.fL = pL; | ||
87 | } | ||
88 | |||
89 | @Override | ||
90 | public Object get(final String parameterName) { | ||
91 | if ("this".equals(parameterName)) return this.fThis; | ||
92 | if ("l".equals(parameterName)) return this.fL; | ||
93 | return null; | ||
94 | } | ||
95 | |||
96 | public FileSystem getThis() { | ||
97 | return this.fThis; | ||
98 | } | ||
99 | |||
100 | public FSObject getL() { | ||
101 | return this.fL; | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public boolean set(final String parameterName, final Object newValue) { | ||
106 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
107 | if ("this".equals(parameterName) ) { | ||
108 | this.fThis = (FileSystem) newValue; | ||
109 | return true; | ||
110 | } | ||
111 | if ("l".equals(parameterName) ) { | ||
112 | this.fL = (FSObject) newValue; | ||
113 | return true; | ||
114 | } | ||
115 | return false; | ||
116 | } | ||
117 | |||
118 | public void setThis(final FileSystem pThis) { | ||
119 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
120 | this.fThis = pThis; | ||
121 | } | ||
122 | |||
123 | public void setL(final FSObject pL) { | ||
124 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
125 | this.fL = pL; | ||
126 | } | ||
127 | |||
128 | @Override | ||
129 | public String patternName() { | ||
130 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live"; | ||
131 | } | ||
132 | |||
133 | @Override | ||
134 | public List<String> parameterNames() { | ||
135 | return Live.Match.parameterNames; | ||
136 | } | ||
137 | |||
138 | @Override | ||
139 | public Object[] toArray() { | ||
140 | return new Object[]{fThis, fL}; | ||
141 | } | ||
142 | |||
143 | @Override | ||
144 | public Live.Match toImmutable() { | ||
145 | return isMutable() ? newMatch(fThis, fL) : this; | ||
146 | } | ||
147 | |||
148 | @Override | ||
149 | public String prettyPrint() { | ||
150 | StringBuilder result = new StringBuilder(); | ||
151 | result.append("\"this\"=" + prettyPrintValue(fThis) + ", "); | ||
152 | result.append("\"l\"=" + prettyPrintValue(fL)); | ||
153 | return result.toString(); | ||
154 | } | ||
155 | |||
156 | @Override | ||
157 | public int hashCode() { | ||
158 | return Objects.hash(fThis, fL); | ||
159 | } | ||
160 | |||
161 | @Override | ||
162 | public boolean equals(final Object obj) { | ||
163 | if (this == obj) | ||
164 | return true; | ||
165 | if (obj == null) { | ||
166 | return false; | ||
167 | } | ||
168 | if ((obj instanceof Live.Match)) { | ||
169 | Live.Match other = (Live.Match) obj; | ||
170 | return Objects.equals(fThis, other.fThis) && Objects.equals(fL, other.fL); | ||
171 | } else { | ||
172 | // this should be infrequent | ||
173 | if (!(obj instanceof IPatternMatch)) { | ||
174 | return false; | ||
175 | } | ||
176 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
177 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
178 | } | ||
179 | } | ||
180 | |||
181 | @Override | ||
182 | public Live specification() { | ||
183 | return Live.instance(); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * Returns an empty, mutable match. | ||
188 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
189 | * | ||
190 | * @return the empty match. | ||
191 | * | ||
192 | */ | ||
193 | public static Live.Match newEmptyMatch() { | ||
194 | return new Mutable(null, null); | ||
195 | } | ||
196 | |||
197 | /** | ||
198 | * Returns a mutable (partial) match. | ||
199 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
200 | * | ||
201 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
202 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
203 | * @return the new, mutable (partial) match object. | ||
204 | * | ||
205 | */ | ||
206 | public static Live.Match newMutableMatch(final FileSystem pThis, final FSObject pL) { | ||
207 | return new Mutable(pThis, pL); | ||
208 | } | ||
209 | |||
210 | /** | ||
211 | * Returns a new (partial) match. | ||
212 | * This can be used e.g. to call the matcher with a partial match. | ||
213 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
214 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
215 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
216 | * @return the (partial) match object. | ||
217 | * | ||
218 | */ | ||
219 | public static Live.Match newMatch(final FileSystem pThis, final FSObject pL) { | ||
220 | return new Immutable(pThis, pL); | ||
221 | } | ||
222 | |||
223 | private static final class Mutable extends Live.Match { | ||
224 | Mutable(final FileSystem pThis, final FSObject pL) { | ||
225 | super(pThis, pL); | ||
226 | } | ||
227 | |||
228 | @Override | ||
229 | public boolean isMutable() { | ||
230 | return true; | ||
231 | } | ||
232 | } | ||
233 | |||
234 | private static final class Immutable extends Live.Match { | ||
235 | Immutable(final FileSystem pThis, final FSObject pL) { | ||
236 | super(pThis, pL); | ||
237 | } | ||
238 | |||
239 | @Override | ||
240 | public boolean isMutable() { | ||
241 | return false; | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | |||
246 | /** | ||
247 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live pattern, | ||
248 | * providing pattern-specific query methods. | ||
249 | * | ||
250 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
251 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
252 | * | ||
253 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
254 | * | ||
255 | * <p>Original source: | ||
256 | * <code><pre> | ||
257 | * {@literal @}QueryBasedFeature | ||
258 | * pattern live(this: FileSystem, l: FSObject) { | ||
259 | * FileSystem.root(this,l); | ||
260 | * } or { | ||
261 | * FileSystem.root(this,root); | ||
262 | * find patternContent+(root,l); | ||
263 | * } | ||
264 | * </pre></code> | ||
265 | * | ||
266 | * @see Match | ||
267 | * @see Live | ||
268 | * | ||
269 | */ | ||
270 | public static class Matcher extends BaseMatcher<Live.Match> { | ||
271 | /** | ||
272 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
273 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
274 | * | ||
275 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
276 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
277 | * | ||
278 | */ | ||
279 | public static Live.Matcher on(final ViatraQueryEngine engine) { | ||
280 | // check if matcher already exists | ||
281 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
282 | if (matcher == null) { | ||
283 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
284 | } | ||
285 | return matcher; | ||
286 | } | ||
287 | |||
288 | /** | ||
289 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
290 | * @return an initialized matcher | ||
291 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
292 | * | ||
293 | */ | ||
294 | public static Live.Matcher create() { | ||
295 | return new Matcher(); | ||
296 | } | ||
297 | |||
298 | private static final int POSITION_THIS = 0; | ||
299 | |||
300 | private static final int POSITION_L = 1; | ||
301 | |||
302 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(Live.Matcher.class); | ||
303 | |||
304 | /** | ||
305 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
306 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
307 | * | ||
308 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
309 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
310 | * | ||
311 | */ | ||
312 | private Matcher() { | ||
313 | super(querySpecification()); | ||
314 | } | ||
315 | |||
316 | /** | ||
317 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
318 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
319 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
320 | * @return matches represented as a Match object. | ||
321 | * | ||
322 | */ | ||
323 | public Collection<Live.Match> getAllMatches(final FileSystem pThis, final FSObject pL) { | ||
324 | return rawStreamAllMatches(new Object[]{pThis, pL}).collect(Collectors.toSet()); | ||
325 | } | ||
326 | |||
327 | /** | ||
328 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
329 | * </p> | ||
330 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
331 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
332 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
333 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
334 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
335 | * @return a stream of matches represented as a Match object. | ||
336 | * | ||
337 | */ | ||
338 | public Stream<Live.Match> streamAllMatches(final FileSystem pThis, final FSObject pL) { | ||
339 | return rawStreamAllMatches(new Object[]{pThis, pL}); | ||
340 | } | ||
341 | |||
342 | /** | ||
343 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
344 | * Neither determinism nor randomness of selection is guaranteed. | ||
345 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
346 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
347 | * @return a match represented as a Match object, or null if no match is found. | ||
348 | * | ||
349 | */ | ||
350 | public Optional<Live.Match> getOneArbitraryMatch(final FileSystem pThis, final FSObject pL) { | ||
351 | return rawGetOneArbitraryMatch(new Object[]{pThis, pL}); | ||
352 | } | ||
353 | |||
354 | /** | ||
355 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
356 | * under any possible substitution of the unspecified parameters (if any). | ||
357 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
358 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
359 | * @return true if the input is a valid (partial) match of the pattern. | ||
360 | * | ||
361 | */ | ||
362 | public boolean hasMatch(final FileSystem pThis, final FSObject pL) { | ||
363 | return rawHasMatch(new Object[]{pThis, pL}); | ||
364 | } | ||
365 | |||
366 | /** | ||
367 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
368 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
369 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
370 | * @return the number of pattern matches found. | ||
371 | * | ||
372 | */ | ||
373 | public int countMatches(final FileSystem pThis, final FSObject pL) { | ||
374 | return rawCountMatches(new Object[]{pThis, pL}); | ||
375 | } | ||
376 | |||
377 | /** | ||
378 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
379 | * Neither determinism nor randomness of selection is guaranteed. | ||
380 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
381 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
382 | * @param processor the action that will process the selected match. | ||
383 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
384 | * | ||
385 | */ | ||
386 | public boolean forOneArbitraryMatch(final FileSystem pThis, final FSObject pL, final Consumer<? super Live.Match> processor) { | ||
387 | return rawForOneArbitraryMatch(new Object[]{pThis, pL}, processor); | ||
388 | } | ||
389 | |||
390 | /** | ||
391 | * Returns a new (partial) match. | ||
392 | * This can be used e.g. to call the matcher with a partial match. | ||
393 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
394 | * @param pThis the fixed value of pattern parameter this, or null if not bound. | ||
395 | * @param pL the fixed value of pattern parameter l, or null if not bound. | ||
396 | * @return the (partial) match object. | ||
397 | * | ||
398 | */ | ||
399 | public Live.Match newMatch(final FileSystem pThis, final FSObject pL) { | ||
400 | return Live.Match.newMatch(pThis, pL); | ||
401 | } | ||
402 | |||
403 | /** | ||
404 | * Retrieve the set of values that occur in matches for this. | ||
405 | * @return the Set of all values or empty set if there are no matches | ||
406 | * | ||
407 | */ | ||
408 | protected Stream<FileSystem> rawStreamAllValuesOfthis(final Object[] parameters) { | ||
409 | return rawStreamAllValues(POSITION_THIS, parameters).map(FileSystem.class::cast); | ||
410 | } | ||
411 | |||
412 | /** | ||
413 | * Retrieve the set of values that occur in matches for this. | ||
414 | * @return the Set of all values or empty set if there are no matches | ||
415 | * | ||
416 | */ | ||
417 | public Set<FileSystem> getAllValuesOfthis() { | ||
418 | return rawStreamAllValuesOfthis(emptyArray()).collect(Collectors.toSet()); | ||
419 | } | ||
420 | |||
421 | /** | ||
422 | * Retrieve the set of values that occur in matches for this. | ||
423 | * @return the Set of all values or empty set if there are no matches | ||
424 | * | ||
425 | */ | ||
426 | public Stream<FileSystem> streamAllValuesOfthis() { | ||
427 | return rawStreamAllValuesOfthis(emptyArray()); | ||
428 | } | ||
429 | |||
430 | /** | ||
431 | * Retrieve the set of values that occur in matches for this. | ||
432 | * </p> | ||
433 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
434 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
435 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
436 | * | ||
437 | * @return the Stream of all values or empty set if there are no matches | ||
438 | * | ||
439 | */ | ||
440 | public Stream<FileSystem> streamAllValuesOfthis(final Live.Match partialMatch) { | ||
441 | return rawStreamAllValuesOfthis(partialMatch.toArray()); | ||
442 | } | ||
443 | |||
444 | /** | ||
445 | * Retrieve the set of values that occur in matches for this. | ||
446 | * </p> | ||
447 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
448 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
449 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
450 | * | ||
451 | * @return the Stream of all values or empty set if there are no matches | ||
452 | * | ||
453 | */ | ||
454 | public Stream<FileSystem> streamAllValuesOfthis(final FSObject pL) { | ||
455 | return rawStreamAllValuesOfthis(new Object[]{null, pL}); | ||
456 | } | ||
457 | |||
458 | /** | ||
459 | * Retrieve the set of values that occur in matches for this. | ||
460 | * @return the Set of all values or empty set if there are no matches | ||
461 | * | ||
462 | */ | ||
463 | public Set<FileSystem> getAllValuesOfthis(final Live.Match partialMatch) { | ||
464 | return rawStreamAllValuesOfthis(partialMatch.toArray()).collect(Collectors.toSet()); | ||
465 | } | ||
466 | |||
467 | /** | ||
468 | * Retrieve the set of values that occur in matches for this. | ||
469 | * @return the Set of all values or empty set if there are no matches | ||
470 | * | ||
471 | */ | ||
472 | public Set<FileSystem> getAllValuesOfthis(final FSObject pL) { | ||
473 | return rawStreamAllValuesOfthis(new Object[]{null, pL}).collect(Collectors.toSet()); | ||
474 | } | ||
475 | |||
476 | /** | ||
477 | * Retrieve the set of values that occur in matches for l. | ||
478 | * @return the Set of all values or empty set if there are no matches | ||
479 | * | ||
480 | */ | ||
481 | protected Stream<FSObject> rawStreamAllValuesOfl(final Object[] parameters) { | ||
482 | return rawStreamAllValues(POSITION_L, parameters).map(FSObject.class::cast); | ||
483 | } | ||
484 | |||
485 | /** | ||
486 | * Retrieve the set of values that occur in matches for l. | ||
487 | * @return the Set of all values or empty set if there are no matches | ||
488 | * | ||
489 | */ | ||
490 | public Set<FSObject> getAllValuesOfl() { | ||
491 | return rawStreamAllValuesOfl(emptyArray()).collect(Collectors.toSet()); | ||
492 | } | ||
493 | |||
494 | /** | ||
495 | * Retrieve the set of values that occur in matches for l. | ||
496 | * @return the Set of all values or empty set if there are no matches | ||
497 | * | ||
498 | */ | ||
499 | public Stream<FSObject> streamAllValuesOfl() { | ||
500 | return rawStreamAllValuesOfl(emptyArray()); | ||
501 | } | ||
502 | |||
503 | /** | ||
504 | * Retrieve the set of values that occur in matches for l. | ||
505 | * </p> | ||
506 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
507 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
508 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
509 | * | ||
510 | * @return the Stream of all values or empty set if there are no matches | ||
511 | * | ||
512 | */ | ||
513 | public Stream<FSObject> streamAllValuesOfl(final Live.Match partialMatch) { | ||
514 | return rawStreamAllValuesOfl(partialMatch.toArray()); | ||
515 | } | ||
516 | |||
517 | /** | ||
518 | * Retrieve the set of values that occur in matches for l. | ||
519 | * </p> | ||
520 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
521 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
522 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
523 | * | ||
524 | * @return the Stream of all values or empty set if there are no matches | ||
525 | * | ||
526 | */ | ||
527 | public Stream<FSObject> streamAllValuesOfl(final FileSystem pThis) { | ||
528 | return rawStreamAllValuesOfl(new Object[]{pThis, null}); | ||
529 | } | ||
530 | |||
531 | /** | ||
532 | * Retrieve the set of values that occur in matches for l. | ||
533 | * @return the Set of all values or empty set if there are no matches | ||
534 | * | ||
535 | */ | ||
536 | public Set<FSObject> getAllValuesOfl(final Live.Match partialMatch) { | ||
537 | return rawStreamAllValuesOfl(partialMatch.toArray()).collect(Collectors.toSet()); | ||
538 | } | ||
539 | |||
540 | /** | ||
541 | * Retrieve the set of values that occur in matches for l. | ||
542 | * @return the Set of all values or empty set if there are no matches | ||
543 | * | ||
544 | */ | ||
545 | public Set<FSObject> getAllValuesOfl(final FileSystem pThis) { | ||
546 | return rawStreamAllValuesOfl(new Object[]{pThis, null}).collect(Collectors.toSet()); | ||
547 | } | ||
548 | |||
549 | @Override | ||
550 | protected Live.Match tupleToMatch(final Tuple t) { | ||
551 | try { | ||
552 | return Live.Match.newMatch((FileSystem) t.get(POSITION_THIS), (FSObject) t.get(POSITION_L)); | ||
553 | } catch(ClassCastException e) { | ||
554 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
555 | return null; | ||
556 | } | ||
557 | } | ||
558 | |||
559 | @Override | ||
560 | protected Live.Match arrayToMatch(final Object[] match) { | ||
561 | try { | ||
562 | return Live.Match.newMatch((FileSystem) match[POSITION_THIS], (FSObject) match[POSITION_L]); | ||
563 | } catch(ClassCastException e) { | ||
564 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
565 | return null; | ||
566 | } | ||
567 | } | ||
568 | |||
569 | @Override | ||
570 | protected Live.Match arrayToMatchMutable(final Object[] match) { | ||
571 | try { | ||
572 | return Live.Match.newMutableMatch((FileSystem) match[POSITION_THIS], (FSObject) match[POSITION_L]); | ||
573 | } catch(ClassCastException e) { | ||
574 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
575 | return null; | ||
576 | } | ||
577 | } | ||
578 | |||
579 | /** | ||
580 | * @return the singleton instance of the query specification of this pattern | ||
581 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
582 | * | ||
583 | */ | ||
584 | public static IQuerySpecification<Live.Matcher> querySpecification() { | ||
585 | return Live.instance(); | ||
586 | } | ||
587 | } | ||
588 | |||
589 | private Live() { | ||
590 | super(GeneratedPQuery.INSTANCE); | ||
591 | } | ||
592 | |||
593 | /** | ||
594 | * @return the singleton instance of the query specification | ||
595 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
596 | * | ||
597 | */ | ||
598 | public static Live instance() { | ||
599 | try{ | ||
600 | return LazyHolder.INSTANCE; | ||
601 | } catch (ExceptionInInitializerError err) { | ||
602 | throw processInitializerError(err); | ||
603 | } | ||
604 | } | ||
605 | |||
606 | @Override | ||
607 | protected Live.Matcher instantiate(final ViatraQueryEngine engine) { | ||
608 | return Live.Matcher.on(engine); | ||
609 | } | ||
610 | |||
611 | @Override | ||
612 | public Live.Matcher instantiate() { | ||
613 | return Live.Matcher.create(); | ||
614 | } | ||
615 | |||
616 | @Override | ||
617 | public Live.Match newEmptyMatch() { | ||
618 | return Live.Match.newEmptyMatch(); | ||
619 | } | ||
620 | |||
621 | @Override | ||
622 | public Live.Match newMatch(final Object... parameters) { | ||
623 | return Live.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FileSystem) parameters[0], (hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject) parameters[1]); | ||
624 | } | ||
625 | |||
626 | /** | ||
627 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Live (visibility: PUBLIC, simpleName: Live, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Live, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
628 | * <b>not</b> at the class load time of the outer class, | ||
629 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Live (visibility: PUBLIC, simpleName: Live, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Live, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
630 | * | ||
631 | * <p> This workaround is required e.g. to support recursion. | ||
632 | * | ||
633 | */ | ||
634 | private static class LazyHolder { | ||
635 | private static final Live INSTANCE = new Live(); | ||
636 | |||
637 | /** | ||
638 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
639 | * This initialization order is required to support indirect recursion. | ||
640 | * | ||
641 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
642 | * | ||
643 | */ | ||
644 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
645 | |||
646 | public static Object ensureInitialized() { | ||
647 | INSTANCE.ensureInitializedInternal(); | ||
648 | return null; | ||
649 | } | ||
650 | } | ||
651 | |||
652 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
653 | private static final Live.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
654 | |||
655 | private final PParameter parameter_this = new PParameter("this", "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FileSystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FS", "FileSystem")), PParameterDirection.INOUT); | ||
656 | |||
657 | private final PParameter parameter_l = new PParameter("l", "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FS", "FSObject")), PParameterDirection.INOUT); | ||
658 | |||
659 | private final List<PParameter> parameters = Arrays.asList(parameter_this, parameter_l); | ||
660 | |||
661 | private GeneratedPQuery() { | ||
662 | super(PVisibility.PUBLIC); | ||
663 | } | ||
664 | |||
665 | @Override | ||
666 | public String getFullyQualifiedName() { | ||
667 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.live"; | ||
668 | } | ||
669 | |||
670 | @Override | ||
671 | public List<String> getParameterNames() { | ||
672 | return Arrays.asList("this","l"); | ||
673 | } | ||
674 | |||
675 | @Override | ||
676 | public List<PParameter> getParameters() { | ||
677 | return parameters; | ||
678 | } | ||
679 | |||
680 | @Override | ||
681 | public Set<PBody> doGetContainedBodies() { | ||
682 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
683 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
684 | { | ||
685 | PBody body = new PBody(this); | ||
686 | PVariable var_this = body.getOrCreateVariableByName("this"); | ||
687 | PVariable var_l = body.getOrCreateVariableByName("l"); | ||
688 | new TypeConstraint(body, Tuples.flatTupleOf(var_this), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FileSystem"))); | ||
689 | new TypeConstraint(body, Tuples.flatTupleOf(var_l), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
690 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
691 | new ExportedParameter(body, var_this, parameter_this), | ||
692 | new ExportedParameter(body, var_l, parameter_l) | ||
693 | )); | ||
694 | // FileSystem.root(this,l) | ||
695 | new TypeConstraint(body, Tuples.flatTupleOf(var_this), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FileSystem"))); | ||
696 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
697 | new TypeConstraint(body, Tuples.flatTupleOf(var_this, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FS", "FileSystem", "root"))); | ||
698 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
699 | new Equality(body, var__virtual_0_, var_l); | ||
700 | bodies.add(body); | ||
701 | } | ||
702 | { | ||
703 | PBody body = new PBody(this); | ||
704 | PVariable var_this = body.getOrCreateVariableByName("this"); | ||
705 | PVariable var_l = body.getOrCreateVariableByName("l"); | ||
706 | PVariable var_root = body.getOrCreateVariableByName("root"); | ||
707 | new TypeConstraint(body, Tuples.flatTupleOf(var_this), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FileSystem"))); | ||
708 | new TypeConstraint(body, Tuples.flatTupleOf(var_l), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
709 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
710 | new ExportedParameter(body, var_this, parameter_this), | ||
711 | new ExportedParameter(body, var_l, parameter_l) | ||
712 | )); | ||
713 | // FileSystem.root(this,root) | ||
714 | new TypeConstraint(body, Tuples.flatTupleOf(var_this), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FileSystem"))); | ||
715 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
716 | new TypeConstraint(body, Tuples.flatTupleOf(var_this, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FS", "FileSystem", "root"))); | ||
717 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
718 | new Equality(body, var__virtual_0_, var_root); | ||
719 | // find patternContent+(root,l) | ||
720 | new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_root, var_l), PatternContent.instance().getInternalQueryRepresentation()); | ||
721 | bodies.add(body); | ||
722 | } | ||
723 | { | ||
724 | PAnnotation annotation = new PAnnotation("QueryBasedFeature"); | ||
725 | addAnnotation(annotation); | ||
726 | } | ||
727 | return bodies; | ||
728 | } | ||
729 | } | ||
730 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/LoopInInheritence.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/LoopInInheritence.java new file mode 100644 index 00000000..51bd83a9 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/LoopInInheritence.java | |||
@@ -0,0 +1,548 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.DirectSupertype; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.emf.ecore.EClass; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
40 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
41 | |||
42 | /** | ||
43 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
44 | * | ||
45 | * <p>Original source: | ||
46 | * <code><pre> | ||
47 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
48 | * pattern loopInInheritence(a: EClass) { | ||
49 | * find directSupertype+(a,a); | ||
50 | * } | ||
51 | * </pre></code> | ||
52 | * | ||
53 | * @see Matcher | ||
54 | * @see Match | ||
55 | * | ||
56 | */ | ||
57 | @SuppressWarnings("all") | ||
58 | public final class LoopInInheritence extends BaseGeneratedEMFQuerySpecification<LoopInInheritence.Matcher> { | ||
59 | /** | ||
60 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.loopInInheritence pattern, | ||
61 | * to be used in conjunction with {@link Matcher}. | ||
62 | * | ||
63 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
64 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
65 | * usable to represent a match of the pattern in the result of a query, | ||
66 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
67 | * | ||
68 | * @see Matcher | ||
69 | * | ||
70 | */ | ||
71 | public static abstract class Match extends BasePatternMatch { | ||
72 | private EClass fA; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("a"); | ||
75 | |||
76 | private Match(final EClass pA) { | ||
77 | this.fA = pA; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | if ("a".equals(parameterName)) return this.fA; | ||
83 | return null; | ||
84 | } | ||
85 | |||
86 | public EClass getA() { | ||
87 | return this.fA; | ||
88 | } | ||
89 | |||
90 | @Override | ||
91 | public boolean set(final String parameterName, final Object newValue) { | ||
92 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
93 | if ("a".equals(parameterName) ) { | ||
94 | this.fA = (EClass) newValue; | ||
95 | return true; | ||
96 | } | ||
97 | return false; | ||
98 | } | ||
99 | |||
100 | public void setA(final EClass pA) { | ||
101 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
102 | this.fA = pA; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public String patternName() { | ||
107 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.loopInInheritence"; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<String> parameterNames() { | ||
112 | return LoopInInheritence.Match.parameterNames; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public Object[] toArray() { | ||
117 | return new Object[]{fA}; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public LoopInInheritence.Match toImmutable() { | ||
122 | return isMutable() ? newMatch(fA) : this; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public String prettyPrint() { | ||
127 | StringBuilder result = new StringBuilder(); | ||
128 | result.append("\"a\"=" + prettyPrintValue(fA)); | ||
129 | return result.toString(); | ||
130 | } | ||
131 | |||
132 | @Override | ||
133 | public int hashCode() { | ||
134 | return Objects.hash(fA); | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public boolean equals(final Object obj) { | ||
139 | if (this == obj) | ||
140 | return true; | ||
141 | if (obj == null) { | ||
142 | return false; | ||
143 | } | ||
144 | if ((obj instanceof LoopInInheritence.Match)) { | ||
145 | LoopInInheritence.Match other = (LoopInInheritence.Match) obj; | ||
146 | return Objects.equals(fA, other.fA); | ||
147 | } else { | ||
148 | // this should be infrequent | ||
149 | if (!(obj instanceof IPatternMatch)) { | ||
150 | return false; | ||
151 | } | ||
152 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
153 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
154 | } | ||
155 | } | ||
156 | |||
157 | @Override | ||
158 | public LoopInInheritence specification() { | ||
159 | return LoopInInheritence.instance(); | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * Returns an empty, mutable match. | ||
164 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
165 | * | ||
166 | * @return the empty match. | ||
167 | * | ||
168 | */ | ||
169 | public static LoopInInheritence.Match newEmptyMatch() { | ||
170 | return new Mutable(null); | ||
171 | } | ||
172 | |||
173 | /** | ||
174 | * Returns a mutable (partial) match. | ||
175 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
176 | * | ||
177 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
178 | * @return the new, mutable (partial) match object. | ||
179 | * | ||
180 | */ | ||
181 | public static LoopInInheritence.Match newMutableMatch(final EClass pA) { | ||
182 | return new Mutable(pA); | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * Returns a new (partial) match. | ||
187 | * This can be used e.g. to call the matcher with a partial match. | ||
188 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
189 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
190 | * @return the (partial) match object. | ||
191 | * | ||
192 | */ | ||
193 | public static LoopInInheritence.Match newMatch(final EClass pA) { | ||
194 | return new Immutable(pA); | ||
195 | } | ||
196 | |||
197 | private static final class Mutable extends LoopInInheritence.Match { | ||
198 | Mutable(final EClass pA) { | ||
199 | super(pA); | ||
200 | } | ||
201 | |||
202 | @Override | ||
203 | public boolean isMutable() { | ||
204 | return true; | ||
205 | } | ||
206 | } | ||
207 | |||
208 | private static final class Immutable extends LoopInInheritence.Match { | ||
209 | Immutable(final EClass pA) { | ||
210 | super(pA); | ||
211 | } | ||
212 | |||
213 | @Override | ||
214 | public boolean isMutable() { | ||
215 | return false; | ||
216 | } | ||
217 | } | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.loopInInheritence pattern, | ||
222 | * providing pattern-specific query methods. | ||
223 | * | ||
224 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
225 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
226 | * | ||
227 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
228 | * | ||
229 | * <p>Original source: | ||
230 | * <code><pre> | ||
231 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
232 | * pattern loopInInheritence(a: EClass) { | ||
233 | * find directSupertype+(a,a); | ||
234 | * } | ||
235 | * </pre></code> | ||
236 | * | ||
237 | * @see Match | ||
238 | * @see LoopInInheritence | ||
239 | * | ||
240 | */ | ||
241 | public static class Matcher extends BaseMatcher<LoopInInheritence.Match> { | ||
242 | /** | ||
243 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
244 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
245 | * | ||
246 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
247 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
248 | * | ||
249 | */ | ||
250 | public static LoopInInheritence.Matcher on(final ViatraQueryEngine engine) { | ||
251 | // check if matcher already exists | ||
252 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
253 | if (matcher == null) { | ||
254 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
255 | } | ||
256 | return matcher; | ||
257 | } | ||
258 | |||
259 | /** | ||
260 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
261 | * @return an initialized matcher | ||
262 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
263 | * | ||
264 | */ | ||
265 | public static LoopInInheritence.Matcher create() { | ||
266 | return new Matcher(); | ||
267 | } | ||
268 | |||
269 | private static final int POSITION_A = 0; | ||
270 | |||
271 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(LoopInInheritence.Matcher.class); | ||
272 | |||
273 | /** | ||
274 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
275 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
276 | * | ||
277 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
278 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
279 | * | ||
280 | */ | ||
281 | private Matcher() { | ||
282 | super(querySpecification()); | ||
283 | } | ||
284 | |||
285 | /** | ||
286 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
287 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
288 | * @return matches represented as a Match object. | ||
289 | * | ||
290 | */ | ||
291 | public Collection<LoopInInheritence.Match> getAllMatches(final EClass pA) { | ||
292 | return rawStreamAllMatches(new Object[]{pA}).collect(Collectors.toSet()); | ||
293 | } | ||
294 | |||
295 | /** | ||
296 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
297 | * </p> | ||
298 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
299 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
300 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
301 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
302 | * @return a stream of matches represented as a Match object. | ||
303 | * | ||
304 | */ | ||
305 | public Stream<LoopInInheritence.Match> streamAllMatches(final EClass pA) { | ||
306 | return rawStreamAllMatches(new Object[]{pA}); | ||
307 | } | ||
308 | |||
309 | /** | ||
310 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
311 | * Neither determinism nor randomness of selection is guaranteed. | ||
312 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
313 | * @return a match represented as a Match object, or null if no match is found. | ||
314 | * | ||
315 | */ | ||
316 | public Optional<LoopInInheritence.Match> getOneArbitraryMatch(final EClass pA) { | ||
317 | return rawGetOneArbitraryMatch(new Object[]{pA}); | ||
318 | } | ||
319 | |||
320 | /** | ||
321 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
322 | * under any possible substitution of the unspecified parameters (if any). | ||
323 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
324 | * @return true if the input is a valid (partial) match of the pattern. | ||
325 | * | ||
326 | */ | ||
327 | public boolean hasMatch(final EClass pA) { | ||
328 | return rawHasMatch(new Object[]{pA}); | ||
329 | } | ||
330 | |||
331 | /** | ||
332 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
333 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
334 | * @return the number of pattern matches found. | ||
335 | * | ||
336 | */ | ||
337 | public int countMatches(final EClass pA) { | ||
338 | return rawCountMatches(new Object[]{pA}); | ||
339 | } | ||
340 | |||
341 | /** | ||
342 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
343 | * Neither determinism nor randomness of selection is guaranteed. | ||
344 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
345 | * @param processor the action that will process the selected match. | ||
346 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
347 | * | ||
348 | */ | ||
349 | public boolean forOneArbitraryMatch(final EClass pA, final Consumer<? super LoopInInheritence.Match> processor) { | ||
350 | return rawForOneArbitraryMatch(new Object[]{pA}, processor); | ||
351 | } | ||
352 | |||
353 | /** | ||
354 | * Returns a new (partial) match. | ||
355 | * This can be used e.g. to call the matcher with a partial match. | ||
356 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
357 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
358 | * @return the (partial) match object. | ||
359 | * | ||
360 | */ | ||
361 | public LoopInInheritence.Match newMatch(final EClass pA) { | ||
362 | return LoopInInheritence.Match.newMatch(pA); | ||
363 | } | ||
364 | |||
365 | /** | ||
366 | * Retrieve the set of values that occur in matches for a. | ||
367 | * @return the Set of all values or empty set if there are no matches | ||
368 | * | ||
369 | */ | ||
370 | protected Stream<EClass> rawStreamAllValuesOfa(final Object[] parameters) { | ||
371 | return rawStreamAllValues(POSITION_A, parameters).map(EClass.class::cast); | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Retrieve the set of values that occur in matches for a. | ||
376 | * @return the Set of all values or empty set if there are no matches | ||
377 | * | ||
378 | */ | ||
379 | public Set<EClass> getAllValuesOfa() { | ||
380 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * Retrieve the set of values that occur in matches for a. | ||
385 | * @return the Set of all values or empty set if there are no matches | ||
386 | * | ||
387 | */ | ||
388 | public Stream<EClass> streamAllValuesOfa() { | ||
389 | return rawStreamAllValuesOfa(emptyArray()); | ||
390 | } | ||
391 | |||
392 | @Override | ||
393 | protected LoopInInheritence.Match tupleToMatch(final Tuple t) { | ||
394 | try { | ||
395 | return LoopInInheritence.Match.newMatch((EClass) t.get(POSITION_A)); | ||
396 | } catch(ClassCastException e) { | ||
397 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
398 | return null; | ||
399 | } | ||
400 | } | ||
401 | |||
402 | @Override | ||
403 | protected LoopInInheritence.Match arrayToMatch(final Object[] match) { | ||
404 | try { | ||
405 | return LoopInInheritence.Match.newMatch((EClass) match[POSITION_A]); | ||
406 | } catch(ClassCastException e) { | ||
407 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
408 | return null; | ||
409 | } | ||
410 | } | ||
411 | |||
412 | @Override | ||
413 | protected LoopInInheritence.Match arrayToMatchMutable(final Object[] match) { | ||
414 | try { | ||
415 | return LoopInInheritence.Match.newMutableMatch((EClass) match[POSITION_A]); | ||
416 | } catch(ClassCastException e) { | ||
417 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
418 | return null; | ||
419 | } | ||
420 | } | ||
421 | |||
422 | /** | ||
423 | * @return the singleton instance of the query specification of this pattern | ||
424 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
425 | * | ||
426 | */ | ||
427 | public static IQuerySpecification<LoopInInheritence.Matcher> querySpecification() { | ||
428 | return LoopInInheritence.instance(); | ||
429 | } | ||
430 | } | ||
431 | |||
432 | private LoopInInheritence() { | ||
433 | super(GeneratedPQuery.INSTANCE); | ||
434 | } | ||
435 | |||
436 | /** | ||
437 | * @return the singleton instance of the query specification | ||
438 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
439 | * | ||
440 | */ | ||
441 | public static LoopInInheritence instance() { | ||
442 | try{ | ||
443 | return LazyHolder.INSTANCE; | ||
444 | } catch (ExceptionInInitializerError err) { | ||
445 | throw processInitializerError(err); | ||
446 | } | ||
447 | } | ||
448 | |||
449 | @Override | ||
450 | protected LoopInInheritence.Matcher instantiate(final ViatraQueryEngine engine) { | ||
451 | return LoopInInheritence.Matcher.on(engine); | ||
452 | } | ||
453 | |||
454 | @Override | ||
455 | public LoopInInheritence.Matcher instantiate() { | ||
456 | return LoopInInheritence.Matcher.create(); | ||
457 | } | ||
458 | |||
459 | @Override | ||
460 | public LoopInInheritence.Match newEmptyMatch() { | ||
461 | return LoopInInheritence.Match.newEmptyMatch(); | ||
462 | } | ||
463 | |||
464 | @Override | ||
465 | public LoopInInheritence.Match newMatch(final Object... parameters) { | ||
466 | return LoopInInheritence.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0]); | ||
467 | } | ||
468 | |||
469 | /** | ||
470 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.LoopInInheritence (visibility: PUBLIC, simpleName: LoopInInheritence, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.LoopInInheritence, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
471 | * <b>not</b> at the class load time of the outer class, | ||
472 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.LoopInInheritence (visibility: PUBLIC, simpleName: LoopInInheritence, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.LoopInInheritence, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
473 | * | ||
474 | * <p> This workaround is required e.g. to support recursion. | ||
475 | * | ||
476 | */ | ||
477 | private static class LazyHolder { | ||
478 | private static final LoopInInheritence INSTANCE = new LoopInInheritence(); | ||
479 | |||
480 | /** | ||
481 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
482 | * This initialization order is required to support indirect recursion. | ||
483 | * | ||
484 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
485 | * | ||
486 | */ | ||
487 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
488 | |||
489 | public static Object ensureInitialized() { | ||
490 | INSTANCE.ensureInitializedInternal(); | ||
491 | return null; | ||
492 | } | ||
493 | } | ||
494 | |||
495 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
496 | private static final LoopInInheritence.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
497 | |||
498 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
499 | |||
500 | private final List<PParameter> parameters = Arrays.asList(parameter_a); | ||
501 | |||
502 | private GeneratedPQuery() { | ||
503 | super(PVisibility.PUBLIC); | ||
504 | } | ||
505 | |||
506 | @Override | ||
507 | public String getFullyQualifiedName() { | ||
508 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.loopInInheritence"; | ||
509 | } | ||
510 | |||
511 | @Override | ||
512 | public List<String> getParameterNames() { | ||
513 | return Arrays.asList("a"); | ||
514 | } | ||
515 | |||
516 | @Override | ||
517 | public List<PParameter> getParameters() { | ||
518 | return parameters; | ||
519 | } | ||
520 | |||
521 | @Override | ||
522 | public Set<PBody> doGetContainedBodies() { | ||
523 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
524 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
525 | { | ||
526 | PBody body = new PBody(this); | ||
527 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
528 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
529 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
530 | new ExportedParameter(body, var_a, parameter_a) | ||
531 | )); | ||
532 | // find directSupertype+(a,a) | ||
533 | new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_a, var_a), DirectSupertype.instance().getInternalQueryRepresentation()); | ||
534 | bodies.add(body); | ||
535 | } | ||
536 | { | ||
537 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
538 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
539 | new ParameterReference("a") | ||
540 | })); | ||
541 | annotation.addAttribute("severity", "error"); | ||
542 | annotation.addAttribute("message", "error"); | ||
543 | addAnnotation(annotation); | ||
544 | } | ||
545 | return bodies; | ||
546 | } | ||
547 | } | ||
548 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/NonSymmetricOpposite.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/NonSymmetricOpposite.java new file mode 100644 index 00000000..bd2833a7 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/NonSymmetricOpposite.java | |||
@@ -0,0 +1,707 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Opposite; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.emf.ecore.EClass; | ||
19 | import org.eclipse.emf.ecore.EReference; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
42 | import 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(key={a}, severity="error", message="error") | ||
50 | * pattern nonSymmetricOpposite(a:EReference, b:EReference) { | ||
51 | * find opposite(a,b); | ||
52 | * neg find opposite(b,a); | ||
53 | * } | ||
54 | * </pre></code> | ||
55 | * | ||
56 | * @see Matcher | ||
57 | * @see Match | ||
58 | * | ||
59 | */ | ||
60 | @SuppressWarnings("all") | ||
61 | public final class NonSymmetricOpposite extends BaseGeneratedEMFQuerySpecification<NonSymmetricOpposite.Matcher> { | ||
62 | /** | ||
63 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.nonSymmetricOpposite 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 EReference fA; | ||
76 | |||
77 | private EReference fB; | ||
78 | |||
79 | private static List<String> parameterNames = makeImmutableList("a", "b"); | ||
80 | |||
81 | private Match(final EReference pA, final EReference pB) { | ||
82 | this.fA = pA; | ||
83 | this.fB = pB; | ||
84 | } | ||
85 | |||
86 | @Override | ||
87 | public Object get(final String parameterName) { | ||
88 | if ("a".equals(parameterName)) return this.fA; | ||
89 | if ("b".equals(parameterName)) return this.fB; | ||
90 | return null; | ||
91 | } | ||
92 | |||
93 | public EReference getA() { | ||
94 | return this.fA; | ||
95 | } | ||
96 | |||
97 | public EReference getB() { | ||
98 | return this.fB; | ||
99 | } | ||
100 | |||
101 | @Override | ||
102 | public boolean set(final String parameterName, final Object newValue) { | ||
103 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
104 | if ("a".equals(parameterName) ) { | ||
105 | this.fA = (EReference) newValue; | ||
106 | return true; | ||
107 | } | ||
108 | if ("b".equals(parameterName) ) { | ||
109 | this.fB = (EReference) newValue; | ||
110 | return true; | ||
111 | } | ||
112 | return false; | ||
113 | } | ||
114 | |||
115 | public void setA(final EReference pA) { | ||
116 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
117 | this.fA = pA; | ||
118 | } | ||
119 | |||
120 | public void setB(final EReference pB) { | ||
121 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
122 | this.fB = pB; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public String patternName() { | ||
127 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.nonSymmetricOpposite"; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public List<String> parameterNames() { | ||
132 | return NonSymmetricOpposite.Match.parameterNames; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public Object[] toArray() { | ||
137 | return new Object[]{fA, fB}; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public NonSymmetricOpposite.Match toImmutable() { | ||
142 | return isMutable() ? newMatch(fA, fB) : this; | ||
143 | } | ||
144 | |||
145 | @Override | ||
146 | public String prettyPrint() { | ||
147 | StringBuilder result = new StringBuilder(); | ||
148 | result.append("\"a\"=" + prettyPrintValue(fA) + ", "); | ||
149 | result.append("\"b\"=" + prettyPrintValue(fB)); | ||
150 | return result.toString(); | ||
151 | } | ||
152 | |||
153 | @Override | ||
154 | public int hashCode() { | ||
155 | return Objects.hash(fA, fB); | ||
156 | } | ||
157 | |||
158 | @Override | ||
159 | public boolean equals(final Object obj) { | ||
160 | if (this == obj) | ||
161 | return true; | ||
162 | if (obj == null) { | ||
163 | return false; | ||
164 | } | ||
165 | if ((obj instanceof NonSymmetricOpposite.Match)) { | ||
166 | NonSymmetricOpposite.Match other = (NonSymmetricOpposite.Match) obj; | ||
167 | return Objects.equals(fA, other.fA) && Objects.equals(fB, other.fB); | ||
168 | } else { | ||
169 | // this should be infrequent | ||
170 | if (!(obj instanceof IPatternMatch)) { | ||
171 | return false; | ||
172 | } | ||
173 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
174 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
175 | } | ||
176 | } | ||
177 | |||
178 | @Override | ||
179 | public NonSymmetricOpposite specification() { | ||
180 | return NonSymmetricOpposite.instance(); | ||
181 | } | ||
182 | |||
183 | /** | ||
184 | * Returns an empty, mutable match. | ||
185 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
186 | * | ||
187 | * @return the empty match. | ||
188 | * | ||
189 | */ | ||
190 | public static NonSymmetricOpposite.Match newEmptyMatch() { | ||
191 | return new Mutable(null, null); | ||
192 | } | ||
193 | |||
194 | /** | ||
195 | * Returns a mutable (partial) match. | ||
196 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
197 | * | ||
198 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
199 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
200 | * @return the new, mutable (partial) match object. | ||
201 | * | ||
202 | */ | ||
203 | public static NonSymmetricOpposite.Match newMutableMatch(final EReference pA, final EReference pB) { | ||
204 | return new Mutable(pA, pB); | ||
205 | } | ||
206 | |||
207 | /** | ||
208 | * Returns a new (partial) match. | ||
209 | * This can be used e.g. to call the matcher with a partial match. | ||
210 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
211 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
212 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
213 | * @return the (partial) match object. | ||
214 | * | ||
215 | */ | ||
216 | public static NonSymmetricOpposite.Match newMatch(final EReference pA, final EReference pB) { | ||
217 | return new Immutable(pA, pB); | ||
218 | } | ||
219 | |||
220 | private static final class Mutable extends NonSymmetricOpposite.Match { | ||
221 | Mutable(final EReference pA, final EReference pB) { | ||
222 | super(pA, pB); | ||
223 | } | ||
224 | |||
225 | @Override | ||
226 | public boolean isMutable() { | ||
227 | return true; | ||
228 | } | ||
229 | } | ||
230 | |||
231 | private static final class Immutable extends NonSymmetricOpposite.Match { | ||
232 | Immutable(final EReference pA, final EReference pB) { | ||
233 | super(pA, pB); | ||
234 | } | ||
235 | |||
236 | @Override | ||
237 | public boolean isMutable() { | ||
238 | return false; | ||
239 | } | ||
240 | } | ||
241 | } | ||
242 | |||
243 | /** | ||
244 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.nonSymmetricOpposite pattern, | ||
245 | * providing pattern-specific query methods. | ||
246 | * | ||
247 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
248 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
249 | * | ||
250 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
251 | * | ||
252 | * <p>Original source: | ||
253 | * <code><pre> | ||
254 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
255 | * pattern nonSymmetricOpposite(a:EReference, b:EReference) { | ||
256 | * find opposite(a,b); | ||
257 | * neg find opposite(b,a); | ||
258 | * } | ||
259 | * </pre></code> | ||
260 | * | ||
261 | * @see Match | ||
262 | * @see NonSymmetricOpposite | ||
263 | * | ||
264 | */ | ||
265 | public static class Matcher extends BaseMatcher<NonSymmetricOpposite.Match> { | ||
266 | /** | ||
267 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
268 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
269 | * | ||
270 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
271 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
272 | * | ||
273 | */ | ||
274 | public static NonSymmetricOpposite.Matcher on(final ViatraQueryEngine engine) { | ||
275 | // check if matcher already exists | ||
276 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
277 | if (matcher == null) { | ||
278 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
279 | } | ||
280 | return matcher; | ||
281 | } | ||
282 | |||
283 | /** | ||
284 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
285 | * @return an initialized matcher | ||
286 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
287 | * | ||
288 | */ | ||
289 | public static NonSymmetricOpposite.Matcher create() { | ||
290 | return new Matcher(); | ||
291 | } | ||
292 | |||
293 | private static final int POSITION_A = 0; | ||
294 | |||
295 | private static final int POSITION_B = 1; | ||
296 | |||
297 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NonSymmetricOpposite.Matcher.class); | ||
298 | |||
299 | /** | ||
300 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
301 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
302 | * | ||
303 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
304 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
305 | * | ||
306 | */ | ||
307 | private Matcher() { | ||
308 | super(querySpecification()); | ||
309 | } | ||
310 | |||
311 | /** | ||
312 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
313 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
314 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
315 | * @return matches represented as a Match object. | ||
316 | * | ||
317 | */ | ||
318 | public Collection<NonSymmetricOpposite.Match> getAllMatches(final EReference pA, final EReference pB) { | ||
319 | return rawStreamAllMatches(new Object[]{pA, pB}).collect(Collectors.toSet()); | ||
320 | } | ||
321 | |||
322 | /** | ||
323 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
324 | * </p> | ||
325 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
326 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
327 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
328 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
329 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
330 | * @return a stream of matches represented as a Match object. | ||
331 | * | ||
332 | */ | ||
333 | public Stream<NonSymmetricOpposite.Match> streamAllMatches(final EReference pA, final EReference pB) { | ||
334 | return rawStreamAllMatches(new Object[]{pA, pB}); | ||
335 | } | ||
336 | |||
337 | /** | ||
338 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
339 | * Neither determinism nor randomness of selection is guaranteed. | ||
340 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
341 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
342 | * @return a match represented as a Match object, or null if no match is found. | ||
343 | * | ||
344 | */ | ||
345 | public Optional<NonSymmetricOpposite.Match> getOneArbitraryMatch(final EReference pA, final EReference pB) { | ||
346 | return rawGetOneArbitraryMatch(new Object[]{pA, pB}); | ||
347 | } | ||
348 | |||
349 | /** | ||
350 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
351 | * under any possible substitution of the unspecified parameters (if any). | ||
352 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
353 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
354 | * @return true if the input is a valid (partial) match of the pattern. | ||
355 | * | ||
356 | */ | ||
357 | public boolean hasMatch(final EReference pA, final EReference pB) { | ||
358 | return rawHasMatch(new Object[]{pA, pB}); | ||
359 | } | ||
360 | |||
361 | /** | ||
362 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
363 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
364 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
365 | * @return the number of pattern matches found. | ||
366 | * | ||
367 | */ | ||
368 | public int countMatches(final EReference pA, final EReference pB) { | ||
369 | return rawCountMatches(new Object[]{pA, pB}); | ||
370 | } | ||
371 | |||
372 | /** | ||
373 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
374 | * Neither determinism nor randomness of selection is guaranteed. | ||
375 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
376 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
377 | * @param processor the action that will process the selected match. | ||
378 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
379 | * | ||
380 | */ | ||
381 | public boolean forOneArbitraryMatch(final EReference pA, final EReference pB, final Consumer<? super NonSymmetricOpposite.Match> processor) { | ||
382 | return rawForOneArbitraryMatch(new Object[]{pA, pB}, processor); | ||
383 | } | ||
384 | |||
385 | /** | ||
386 | * Returns a new (partial) match. | ||
387 | * This can be used e.g. to call the matcher with a partial match. | ||
388 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
389 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
390 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
391 | * @return the (partial) match object. | ||
392 | * | ||
393 | */ | ||
394 | public NonSymmetricOpposite.Match newMatch(final EReference pA, final EReference pB) { | ||
395 | return NonSymmetricOpposite.Match.newMatch(pA, pB); | ||
396 | } | ||
397 | |||
398 | /** | ||
399 | * Retrieve the set of values that occur in matches for a. | ||
400 | * @return the Set of all values or empty set if there are no matches | ||
401 | * | ||
402 | */ | ||
403 | protected Stream<EReference> rawStreamAllValuesOfa(final Object[] parameters) { | ||
404 | return rawStreamAllValues(POSITION_A, parameters).map(EReference.class::cast); | ||
405 | } | ||
406 | |||
407 | /** | ||
408 | * Retrieve the set of values that occur in matches for a. | ||
409 | * @return the Set of all values or empty set if there are no matches | ||
410 | * | ||
411 | */ | ||
412 | public Set<EReference> getAllValuesOfa() { | ||
413 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
414 | } | ||
415 | |||
416 | /** | ||
417 | * Retrieve the set of values that occur in matches for a. | ||
418 | * @return the Set of all values or empty set if there are no matches | ||
419 | * | ||
420 | */ | ||
421 | public Stream<EReference> streamAllValuesOfa() { | ||
422 | return rawStreamAllValuesOfa(emptyArray()); | ||
423 | } | ||
424 | |||
425 | /** | ||
426 | * Retrieve the set of values that occur in matches for a. | ||
427 | * </p> | ||
428 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
429 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
430 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
431 | * | ||
432 | * @return the Stream of all values or empty set if there are no matches | ||
433 | * | ||
434 | */ | ||
435 | public Stream<EReference> streamAllValuesOfa(final NonSymmetricOpposite.Match partialMatch) { | ||
436 | return rawStreamAllValuesOfa(partialMatch.toArray()); | ||
437 | } | ||
438 | |||
439 | /** | ||
440 | * Retrieve the set of values that occur in matches for a. | ||
441 | * </p> | ||
442 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
443 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
444 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
445 | * | ||
446 | * @return the Stream of all values or empty set if there are no matches | ||
447 | * | ||
448 | */ | ||
449 | public Stream<EReference> streamAllValuesOfa(final EReference pB) { | ||
450 | return rawStreamAllValuesOfa(new Object[]{null, pB}); | ||
451 | } | ||
452 | |||
453 | /** | ||
454 | * Retrieve the set of values that occur in matches for a. | ||
455 | * @return the Set of all values or empty set if there are no matches | ||
456 | * | ||
457 | */ | ||
458 | public Set<EReference> getAllValuesOfa(final NonSymmetricOpposite.Match partialMatch) { | ||
459 | return rawStreamAllValuesOfa(partialMatch.toArray()).collect(Collectors.toSet()); | ||
460 | } | ||
461 | |||
462 | /** | ||
463 | * Retrieve the set of values that occur in matches for a. | ||
464 | * @return the Set of all values or empty set if there are no matches | ||
465 | * | ||
466 | */ | ||
467 | public Set<EReference> getAllValuesOfa(final EReference pB) { | ||
468 | return rawStreamAllValuesOfa(new Object[]{null, pB}).collect(Collectors.toSet()); | ||
469 | } | ||
470 | |||
471 | /** | ||
472 | * Retrieve the set of values that occur in matches for b. | ||
473 | * @return the Set of all values or empty set if there are no matches | ||
474 | * | ||
475 | */ | ||
476 | protected Stream<EReference> rawStreamAllValuesOfb(final Object[] parameters) { | ||
477 | return rawStreamAllValues(POSITION_B, parameters).map(EReference.class::cast); | ||
478 | } | ||
479 | |||
480 | /** | ||
481 | * Retrieve the set of values that occur in matches for b. | ||
482 | * @return the Set of all values or empty set if there are no matches | ||
483 | * | ||
484 | */ | ||
485 | public Set<EReference> getAllValuesOfb() { | ||
486 | return rawStreamAllValuesOfb(emptyArray()).collect(Collectors.toSet()); | ||
487 | } | ||
488 | |||
489 | /** | ||
490 | * Retrieve the set of values that occur in matches for b. | ||
491 | * @return the Set of all values or empty set if there are no matches | ||
492 | * | ||
493 | */ | ||
494 | public Stream<EReference> streamAllValuesOfb() { | ||
495 | return rawStreamAllValuesOfb(emptyArray()); | ||
496 | } | ||
497 | |||
498 | /** | ||
499 | * Retrieve the set of values that occur in matches for b. | ||
500 | * </p> | ||
501 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
502 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
503 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
504 | * | ||
505 | * @return the Stream of all values or empty set if there are no matches | ||
506 | * | ||
507 | */ | ||
508 | public Stream<EReference> streamAllValuesOfb(final NonSymmetricOpposite.Match partialMatch) { | ||
509 | return rawStreamAllValuesOfb(partialMatch.toArray()); | ||
510 | } | ||
511 | |||
512 | /** | ||
513 | * Retrieve the set of values that occur in matches for b. | ||
514 | * </p> | ||
515 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
516 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
517 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
518 | * | ||
519 | * @return the Stream of all values or empty set if there are no matches | ||
520 | * | ||
521 | */ | ||
522 | public Stream<EReference> streamAllValuesOfb(final EReference pA) { | ||
523 | return rawStreamAllValuesOfb(new Object[]{pA, null}); | ||
524 | } | ||
525 | |||
526 | /** | ||
527 | * Retrieve the set of values that occur in matches for b. | ||
528 | * @return the Set of all values or empty set if there are no matches | ||
529 | * | ||
530 | */ | ||
531 | public Set<EReference> getAllValuesOfb(final NonSymmetricOpposite.Match partialMatch) { | ||
532 | return rawStreamAllValuesOfb(partialMatch.toArray()).collect(Collectors.toSet()); | ||
533 | } | ||
534 | |||
535 | /** | ||
536 | * Retrieve the set of values that occur in matches for b. | ||
537 | * @return the Set of all values or empty set if there are no matches | ||
538 | * | ||
539 | */ | ||
540 | public Set<EReference> getAllValuesOfb(final EReference pA) { | ||
541 | return rawStreamAllValuesOfb(new Object[]{pA, null}).collect(Collectors.toSet()); | ||
542 | } | ||
543 | |||
544 | @Override | ||
545 | protected NonSymmetricOpposite.Match tupleToMatch(final Tuple t) { | ||
546 | try { | ||
547 | return NonSymmetricOpposite.Match.newMatch((EReference) t.get(POSITION_A), (EReference) t.get(POSITION_B)); | ||
548 | } catch(ClassCastException e) { | ||
549 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
550 | return null; | ||
551 | } | ||
552 | } | ||
553 | |||
554 | @Override | ||
555 | protected NonSymmetricOpposite.Match arrayToMatch(final Object[] match) { | ||
556 | try { | ||
557 | return NonSymmetricOpposite.Match.newMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
558 | } catch(ClassCastException e) { | ||
559 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
560 | return null; | ||
561 | } | ||
562 | } | ||
563 | |||
564 | @Override | ||
565 | protected NonSymmetricOpposite.Match arrayToMatchMutable(final Object[] match) { | ||
566 | try { | ||
567 | return NonSymmetricOpposite.Match.newMutableMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
568 | } catch(ClassCastException e) { | ||
569 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
570 | return null; | ||
571 | } | ||
572 | } | ||
573 | |||
574 | /** | ||
575 | * @return the singleton instance of the query specification of this pattern | ||
576 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
577 | * | ||
578 | */ | ||
579 | public static IQuerySpecification<NonSymmetricOpposite.Matcher> querySpecification() { | ||
580 | return NonSymmetricOpposite.instance(); | ||
581 | } | ||
582 | } | ||
583 | |||
584 | private NonSymmetricOpposite() { | ||
585 | super(GeneratedPQuery.INSTANCE); | ||
586 | } | ||
587 | |||
588 | /** | ||
589 | * @return the singleton instance of the query specification | ||
590 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
591 | * | ||
592 | */ | ||
593 | public static NonSymmetricOpposite instance() { | ||
594 | try{ | ||
595 | return LazyHolder.INSTANCE; | ||
596 | } catch (ExceptionInInitializerError err) { | ||
597 | throw processInitializerError(err); | ||
598 | } | ||
599 | } | ||
600 | |||
601 | @Override | ||
602 | protected NonSymmetricOpposite.Matcher instantiate(final ViatraQueryEngine engine) { | ||
603 | return NonSymmetricOpposite.Matcher.on(engine); | ||
604 | } | ||
605 | |||
606 | @Override | ||
607 | public NonSymmetricOpposite.Matcher instantiate() { | ||
608 | return NonSymmetricOpposite.Matcher.create(); | ||
609 | } | ||
610 | |||
611 | @Override | ||
612 | public NonSymmetricOpposite.Match newEmptyMatch() { | ||
613 | return NonSymmetricOpposite.Match.newEmptyMatch(); | ||
614 | } | ||
615 | |||
616 | @Override | ||
617 | public NonSymmetricOpposite.Match newMatch(final Object... parameters) { | ||
618 | return NonSymmetricOpposite.Match.newMatch((org.eclipse.emf.ecore.EReference) parameters[0], (org.eclipse.emf.ecore.EReference) parameters[1]); | ||
619 | } | ||
620 | |||
621 | /** | ||
622 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.NonSymmetricOpposite (visibility: PUBLIC, simpleName: NonSymmetricOpposite, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.NonSymmetricOpposite, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
623 | * <b>not</b> at the class load time of the outer class, | ||
624 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.NonSymmetricOpposite (visibility: PUBLIC, simpleName: NonSymmetricOpposite, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.NonSymmetricOpposite, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
625 | * | ||
626 | * <p> This workaround is required e.g. to support recursion. | ||
627 | * | ||
628 | */ | ||
629 | private static class LazyHolder { | ||
630 | private static final NonSymmetricOpposite INSTANCE = new NonSymmetricOpposite(); | ||
631 | |||
632 | /** | ||
633 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
634 | * This initialization order is required to support indirect recursion. | ||
635 | * | ||
636 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
637 | * | ||
638 | */ | ||
639 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
640 | |||
641 | public static Object ensureInitialized() { | ||
642 | INSTANCE.ensureInitializedInternal(); | ||
643 | return null; | ||
644 | } | ||
645 | } | ||
646 | |||
647 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
648 | private static final NonSymmetricOpposite.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
649 | |||
650 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
651 | |||
652 | private final PParameter parameter_b = new PParameter("b", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
653 | |||
654 | private final List<PParameter> parameters = Arrays.asList(parameter_a, parameter_b); | ||
655 | |||
656 | private GeneratedPQuery() { | ||
657 | super(PVisibility.PUBLIC); | ||
658 | } | ||
659 | |||
660 | @Override | ||
661 | public String getFullyQualifiedName() { | ||
662 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.nonSymmetricOpposite"; | ||
663 | } | ||
664 | |||
665 | @Override | ||
666 | public List<String> getParameterNames() { | ||
667 | return Arrays.asList("a","b"); | ||
668 | } | ||
669 | |||
670 | @Override | ||
671 | public List<PParameter> getParameters() { | ||
672 | return parameters; | ||
673 | } | ||
674 | |||
675 | @Override | ||
676 | public Set<PBody> doGetContainedBodies() { | ||
677 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
678 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
679 | { | ||
680 | PBody body = new PBody(this); | ||
681 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
682 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
683 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
684 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
685 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
686 | new ExportedParameter(body, var_a, parameter_a), | ||
687 | new ExportedParameter(body, var_b, parameter_b) | ||
688 | )); | ||
689 | // find opposite(a,b) | ||
690 | new PositivePatternCall(body, Tuples.flatTupleOf(var_a, var_b), Opposite.instance().getInternalQueryRepresentation()); | ||
691 | // neg find opposite(b,a) | ||
692 | new NegativePatternCall(body, Tuples.flatTupleOf(var_b, var_a), Opposite.instance().getInternalQueryRepresentation()); | ||
693 | bodies.add(body); | ||
694 | } | ||
695 | { | ||
696 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
697 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
698 | new ParameterReference("a") | ||
699 | })); | ||
700 | annotation.addAttribute("severity", "error"); | ||
701 | annotation.addAttribute("message", "error"); | ||
702 | addAnnotation(annotation); | ||
703 | } | ||
704 | return bodies; | ||
705 | } | ||
706 | } | ||
707 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Opposite.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Opposite.java new file mode 100644 index 00000000..c4832370 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Opposite.java | |||
@@ -0,0 +1,693 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.EReference; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import 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 | * pattern opposite(a:EReference, b: EReference) { | ||
47 | * EReference.eOpposite(a,b); | ||
48 | * } | ||
49 | * </pre></code> | ||
50 | * | ||
51 | * @see Matcher | ||
52 | * @see Match | ||
53 | * | ||
54 | */ | ||
55 | @SuppressWarnings("all") | ||
56 | public final class Opposite extends BaseGeneratedEMFQuerySpecification<Opposite.Matcher> { | ||
57 | /** | ||
58 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.opposite pattern, | ||
59 | * to be used in conjunction with {@link Matcher}. | ||
60 | * | ||
61 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
62 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
63 | * usable to represent a match of the pattern in the result of a query, | ||
64 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
65 | * | ||
66 | * @see Matcher | ||
67 | * | ||
68 | */ | ||
69 | public static abstract class Match extends BasePatternMatch { | ||
70 | private EReference fA; | ||
71 | |||
72 | private EReference fB; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("a", "b"); | ||
75 | |||
76 | private Match(final EReference pA, final EReference pB) { | ||
77 | this.fA = pA; | ||
78 | this.fB = pB; | ||
79 | } | ||
80 | |||
81 | @Override | ||
82 | public Object get(final String parameterName) { | ||
83 | if ("a".equals(parameterName)) return this.fA; | ||
84 | if ("b".equals(parameterName)) return this.fB; | ||
85 | return null; | ||
86 | } | ||
87 | |||
88 | public EReference getA() { | ||
89 | return this.fA; | ||
90 | } | ||
91 | |||
92 | public EReference getB() { | ||
93 | return this.fB; | ||
94 | } | ||
95 | |||
96 | @Override | ||
97 | public boolean set(final String parameterName, final Object newValue) { | ||
98 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
99 | if ("a".equals(parameterName) ) { | ||
100 | this.fA = (EReference) newValue; | ||
101 | return true; | ||
102 | } | ||
103 | if ("b".equals(parameterName) ) { | ||
104 | this.fB = (EReference) newValue; | ||
105 | return true; | ||
106 | } | ||
107 | return false; | ||
108 | } | ||
109 | |||
110 | public void setA(final EReference pA) { | ||
111 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
112 | this.fA = pA; | ||
113 | } | ||
114 | |||
115 | public void setB(final EReference pB) { | ||
116 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
117 | this.fB = pB; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public String patternName() { | ||
122 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.opposite"; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public List<String> parameterNames() { | ||
127 | return Opposite.Match.parameterNames; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public Object[] toArray() { | ||
132 | return new Object[]{fA, fB}; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public Opposite.Match toImmutable() { | ||
137 | return isMutable() ? newMatch(fA, fB) : this; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public String prettyPrint() { | ||
142 | StringBuilder result = new StringBuilder(); | ||
143 | result.append("\"a\"=" + prettyPrintValue(fA) + ", "); | ||
144 | result.append("\"b\"=" + prettyPrintValue(fB)); | ||
145 | return result.toString(); | ||
146 | } | ||
147 | |||
148 | @Override | ||
149 | public int hashCode() { | ||
150 | return Objects.hash(fA, fB); | ||
151 | } | ||
152 | |||
153 | @Override | ||
154 | public boolean equals(final Object obj) { | ||
155 | if (this == obj) | ||
156 | return true; | ||
157 | if (obj == null) { | ||
158 | return false; | ||
159 | } | ||
160 | if ((obj instanceof Opposite.Match)) { | ||
161 | Opposite.Match other = (Opposite.Match) obj; | ||
162 | return Objects.equals(fA, other.fA) && Objects.equals(fB, other.fB); | ||
163 | } else { | ||
164 | // this should be infrequent | ||
165 | if (!(obj instanceof IPatternMatch)) { | ||
166 | return false; | ||
167 | } | ||
168 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
169 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
170 | } | ||
171 | } | ||
172 | |||
173 | @Override | ||
174 | public Opposite specification() { | ||
175 | return Opposite.instance(); | ||
176 | } | ||
177 | |||
178 | /** | ||
179 | * Returns an empty, mutable match. | ||
180 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
181 | * | ||
182 | * @return the empty match. | ||
183 | * | ||
184 | */ | ||
185 | public static Opposite.Match newEmptyMatch() { | ||
186 | return new Mutable(null, null); | ||
187 | } | ||
188 | |||
189 | /** | ||
190 | * Returns a mutable (partial) match. | ||
191 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
192 | * | ||
193 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
194 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
195 | * @return the new, mutable (partial) match object. | ||
196 | * | ||
197 | */ | ||
198 | public static Opposite.Match newMutableMatch(final EReference pA, final EReference pB) { | ||
199 | return new Mutable(pA, pB); | ||
200 | } | ||
201 | |||
202 | /** | ||
203 | * Returns a new (partial) match. | ||
204 | * This can be used e.g. to call the matcher with a partial match. | ||
205 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
206 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
207 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
208 | * @return the (partial) match object. | ||
209 | * | ||
210 | */ | ||
211 | public static Opposite.Match newMatch(final EReference pA, final EReference pB) { | ||
212 | return new Immutable(pA, pB); | ||
213 | } | ||
214 | |||
215 | private static final class Mutable extends Opposite.Match { | ||
216 | Mutable(final EReference pA, final EReference pB) { | ||
217 | super(pA, pB); | ||
218 | } | ||
219 | |||
220 | @Override | ||
221 | public boolean isMutable() { | ||
222 | return true; | ||
223 | } | ||
224 | } | ||
225 | |||
226 | private static final class Immutable extends Opposite.Match { | ||
227 | Immutable(final EReference pA, final EReference pB) { | ||
228 | super(pA, pB); | ||
229 | } | ||
230 | |||
231 | @Override | ||
232 | public boolean isMutable() { | ||
233 | return false; | ||
234 | } | ||
235 | } | ||
236 | } | ||
237 | |||
238 | /** | ||
239 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.opposite pattern, | ||
240 | * providing pattern-specific query methods. | ||
241 | * | ||
242 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
243 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
244 | * | ||
245 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
246 | * | ||
247 | * <p>Original source: | ||
248 | * <code><pre> | ||
249 | * pattern opposite(a:EReference, b: EReference) { | ||
250 | * EReference.eOpposite(a,b); | ||
251 | * } | ||
252 | * </pre></code> | ||
253 | * | ||
254 | * @see Match | ||
255 | * @see Opposite | ||
256 | * | ||
257 | */ | ||
258 | public static class Matcher extends BaseMatcher<Opposite.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 Opposite.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 Opposite.Matcher create() { | ||
283 | return new Matcher(); | ||
284 | } | ||
285 | |||
286 | private static final int POSITION_A = 0; | ||
287 | |||
288 | private static final int POSITION_B = 1; | ||
289 | |||
290 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(Opposite.Matcher.class); | ||
291 | |||
292 | /** | ||
293 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
294 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
295 | * | ||
296 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
297 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
298 | * | ||
299 | */ | ||
300 | private Matcher() { | ||
301 | super(querySpecification()); | ||
302 | } | ||
303 | |||
304 | /** | ||
305 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
306 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
307 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
308 | * @return matches represented as a Match object. | ||
309 | * | ||
310 | */ | ||
311 | public Collection<Opposite.Match> getAllMatches(final EReference pA, final EReference pB) { | ||
312 | return rawStreamAllMatches(new Object[]{pA, pB}).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 pA the fixed value of pattern parameter a, or null if not bound. | ||
322 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
323 | * @return a stream of matches represented as a Match object. | ||
324 | * | ||
325 | */ | ||
326 | public Stream<Opposite.Match> streamAllMatches(final EReference pA, final EReference pB) { | ||
327 | return rawStreamAllMatches(new Object[]{pA, pB}); | ||
328 | } | ||
329 | |||
330 | /** | ||
331 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
332 | * Neither determinism nor randomness of selection is guaranteed. | ||
333 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
334 | * @param pB the fixed value of pattern parameter b, 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<Opposite.Match> getOneArbitraryMatch(final EReference pA, final EReference pB) { | ||
339 | return rawGetOneArbitraryMatch(new Object[]{pA, pB}); | ||
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 pA the fixed value of pattern parameter a, or null if not bound. | ||
346 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
347 | * @return true if the input is a valid (partial) match of the pattern. | ||
348 | * | ||
349 | */ | ||
350 | public boolean hasMatch(final EReference pA, final EReference pB) { | ||
351 | return rawHasMatch(new Object[]{pA, pB}); | ||
352 | } | ||
353 | |||
354 | /** | ||
355 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
356 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
357 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
358 | * @return the number of pattern matches found. | ||
359 | * | ||
360 | */ | ||
361 | public int countMatches(final EReference pA, final EReference pB) { | ||
362 | return rawCountMatches(new Object[]{pA, pB}); | ||
363 | } | ||
364 | |||
365 | /** | ||
366 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
367 | * Neither determinism nor randomness of selection is guaranteed. | ||
368 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
369 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
370 | * @param processor the action that will process the selected match. | ||
371 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
372 | * | ||
373 | */ | ||
374 | public boolean forOneArbitraryMatch(final EReference pA, final EReference pB, final Consumer<? super Opposite.Match> processor) { | ||
375 | return rawForOneArbitraryMatch(new Object[]{pA, pB}, processor); | ||
376 | } | ||
377 | |||
378 | /** | ||
379 | * Returns a new (partial) match. | ||
380 | * This can be used e.g. to call the matcher with a partial match. | ||
381 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
382 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
383 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
384 | * @return the (partial) match object. | ||
385 | * | ||
386 | */ | ||
387 | public Opposite.Match newMatch(final EReference pA, final EReference pB) { | ||
388 | return Opposite.Match.newMatch(pA, pB); | ||
389 | } | ||
390 | |||
391 | /** | ||
392 | * Retrieve the set of values that occur in matches for a. | ||
393 | * @return the Set of all values or empty set if there are no matches | ||
394 | * | ||
395 | */ | ||
396 | protected Stream<EReference> rawStreamAllValuesOfa(final Object[] parameters) { | ||
397 | return rawStreamAllValues(POSITION_A, parameters).map(EReference.class::cast); | ||
398 | } | ||
399 | |||
400 | /** | ||
401 | * Retrieve the set of values that occur in matches for a. | ||
402 | * @return the Set of all values or empty set if there are no matches | ||
403 | * | ||
404 | */ | ||
405 | public Set<EReference> getAllValuesOfa() { | ||
406 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
407 | } | ||
408 | |||
409 | /** | ||
410 | * Retrieve the set of values that occur in matches for a. | ||
411 | * @return the Set of all values or empty set if there are no matches | ||
412 | * | ||
413 | */ | ||
414 | public Stream<EReference> streamAllValuesOfa() { | ||
415 | return rawStreamAllValuesOfa(emptyArray()); | ||
416 | } | ||
417 | |||
418 | /** | ||
419 | * Retrieve the set of values that occur in matches for a. | ||
420 | * </p> | ||
421 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
422 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
423 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
424 | * | ||
425 | * @return the Stream of all values or empty set if there are no matches | ||
426 | * | ||
427 | */ | ||
428 | public Stream<EReference> streamAllValuesOfa(final Opposite.Match partialMatch) { | ||
429 | return rawStreamAllValuesOfa(partialMatch.toArray()); | ||
430 | } | ||
431 | |||
432 | /** | ||
433 | * Retrieve the set of values that occur in matches for a. | ||
434 | * </p> | ||
435 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
436 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
437 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
438 | * | ||
439 | * @return the Stream of all values or empty set if there are no matches | ||
440 | * | ||
441 | */ | ||
442 | public Stream<EReference> streamAllValuesOfa(final EReference pB) { | ||
443 | return rawStreamAllValuesOfa(new Object[]{null, pB}); | ||
444 | } | ||
445 | |||
446 | /** | ||
447 | * Retrieve the set of values that occur in matches for a. | ||
448 | * @return the Set of all values or empty set if there are no matches | ||
449 | * | ||
450 | */ | ||
451 | public Set<EReference> getAllValuesOfa(final Opposite.Match partialMatch) { | ||
452 | return rawStreamAllValuesOfa(partialMatch.toArray()).collect(Collectors.toSet()); | ||
453 | } | ||
454 | |||
455 | /** | ||
456 | * Retrieve the set of values that occur in matches for a. | ||
457 | * @return the Set of all values or empty set if there are no matches | ||
458 | * | ||
459 | */ | ||
460 | public Set<EReference> getAllValuesOfa(final EReference pB) { | ||
461 | return rawStreamAllValuesOfa(new Object[]{null, pB}).collect(Collectors.toSet()); | ||
462 | } | ||
463 | |||
464 | /** | ||
465 | * Retrieve the set of values that occur in matches for b. | ||
466 | * @return the Set of all values or empty set if there are no matches | ||
467 | * | ||
468 | */ | ||
469 | protected Stream<EReference> rawStreamAllValuesOfb(final Object[] parameters) { | ||
470 | return rawStreamAllValues(POSITION_B, parameters).map(EReference.class::cast); | ||
471 | } | ||
472 | |||
473 | /** | ||
474 | * Retrieve the set of values that occur in matches for b. | ||
475 | * @return the Set of all values or empty set if there are no matches | ||
476 | * | ||
477 | */ | ||
478 | public Set<EReference> getAllValuesOfb() { | ||
479 | return rawStreamAllValuesOfb(emptyArray()).collect(Collectors.toSet()); | ||
480 | } | ||
481 | |||
482 | /** | ||
483 | * Retrieve the set of values that occur in matches for b. | ||
484 | * @return the Set of all values or empty set if there are no matches | ||
485 | * | ||
486 | */ | ||
487 | public Stream<EReference> streamAllValuesOfb() { | ||
488 | return rawStreamAllValuesOfb(emptyArray()); | ||
489 | } | ||
490 | |||
491 | /** | ||
492 | * Retrieve the set of values that occur in matches for b. | ||
493 | * </p> | ||
494 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
495 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
496 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
497 | * | ||
498 | * @return the Stream of all values or empty set if there are no matches | ||
499 | * | ||
500 | */ | ||
501 | public Stream<EReference> streamAllValuesOfb(final Opposite.Match partialMatch) { | ||
502 | return rawStreamAllValuesOfb(partialMatch.toArray()); | ||
503 | } | ||
504 | |||
505 | /** | ||
506 | * Retrieve the set of values that occur in matches for b. | ||
507 | * </p> | ||
508 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
509 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
510 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
511 | * | ||
512 | * @return the Stream of all values or empty set if there are no matches | ||
513 | * | ||
514 | */ | ||
515 | public Stream<EReference> streamAllValuesOfb(final EReference pA) { | ||
516 | return rawStreamAllValuesOfb(new Object[]{pA, null}); | ||
517 | } | ||
518 | |||
519 | /** | ||
520 | * Retrieve the set of values that occur in matches for b. | ||
521 | * @return the Set of all values or empty set if there are no matches | ||
522 | * | ||
523 | */ | ||
524 | public Set<EReference> getAllValuesOfb(final Opposite.Match partialMatch) { | ||
525 | return rawStreamAllValuesOfb(partialMatch.toArray()).collect(Collectors.toSet()); | ||
526 | } | ||
527 | |||
528 | /** | ||
529 | * Retrieve the set of values that occur in matches for b. | ||
530 | * @return the Set of all values or empty set if there are no matches | ||
531 | * | ||
532 | */ | ||
533 | public Set<EReference> getAllValuesOfb(final EReference pA) { | ||
534 | return rawStreamAllValuesOfb(new Object[]{pA, null}).collect(Collectors.toSet()); | ||
535 | } | ||
536 | |||
537 | @Override | ||
538 | protected Opposite.Match tupleToMatch(final Tuple t) { | ||
539 | try { | ||
540 | return Opposite.Match.newMatch((EReference) t.get(POSITION_A), (EReference) t.get(POSITION_B)); | ||
541 | } catch(ClassCastException e) { | ||
542 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
543 | return null; | ||
544 | } | ||
545 | } | ||
546 | |||
547 | @Override | ||
548 | protected Opposite.Match arrayToMatch(final Object[] match) { | ||
549 | try { | ||
550 | return Opposite.Match.newMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
551 | } catch(ClassCastException e) { | ||
552 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
553 | return null; | ||
554 | } | ||
555 | } | ||
556 | |||
557 | @Override | ||
558 | protected Opposite.Match arrayToMatchMutable(final Object[] match) { | ||
559 | try { | ||
560 | return Opposite.Match.newMutableMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
561 | } catch(ClassCastException e) { | ||
562 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
563 | return null; | ||
564 | } | ||
565 | } | ||
566 | |||
567 | /** | ||
568 | * @return the singleton instance of the query specification of this pattern | ||
569 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
570 | * | ||
571 | */ | ||
572 | public static IQuerySpecification<Opposite.Matcher> querySpecification() { | ||
573 | return Opposite.instance(); | ||
574 | } | ||
575 | } | ||
576 | |||
577 | private Opposite() { | ||
578 | super(GeneratedPQuery.INSTANCE); | ||
579 | } | ||
580 | |||
581 | /** | ||
582 | * @return the singleton instance of the query specification | ||
583 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
584 | * | ||
585 | */ | ||
586 | public static Opposite instance() { | ||
587 | try{ | ||
588 | return LazyHolder.INSTANCE; | ||
589 | } catch (ExceptionInInitializerError err) { | ||
590 | throw processInitializerError(err); | ||
591 | } | ||
592 | } | ||
593 | |||
594 | @Override | ||
595 | protected Opposite.Matcher instantiate(final ViatraQueryEngine engine) { | ||
596 | return Opposite.Matcher.on(engine); | ||
597 | } | ||
598 | |||
599 | @Override | ||
600 | public Opposite.Matcher instantiate() { | ||
601 | return Opposite.Matcher.create(); | ||
602 | } | ||
603 | |||
604 | @Override | ||
605 | public Opposite.Match newEmptyMatch() { | ||
606 | return Opposite.Match.newEmptyMatch(); | ||
607 | } | ||
608 | |||
609 | @Override | ||
610 | public Opposite.Match newMatch(final Object... parameters) { | ||
611 | return Opposite.Match.newMatch((org.eclipse.emf.ecore.EReference) parameters[0], (org.eclipse.emf.ecore.EReference) parameters[1]); | ||
612 | } | ||
613 | |||
614 | /** | ||
615 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Opposite (visibility: PUBLIC, simpleName: Opposite, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Opposite, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
616 | * <b>not</b> at the class load time of the outer class, | ||
617 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Opposite (visibility: PUBLIC, simpleName: Opposite, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Opposite, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
618 | * | ||
619 | * <p> This workaround is required e.g. to support recursion. | ||
620 | * | ||
621 | */ | ||
622 | private static class LazyHolder { | ||
623 | private static final Opposite INSTANCE = new Opposite(); | ||
624 | |||
625 | /** | ||
626 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
627 | * This initialization order is required to support indirect recursion. | ||
628 | * | ||
629 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
630 | * | ||
631 | */ | ||
632 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
633 | |||
634 | public static Object ensureInitialized() { | ||
635 | INSTANCE.ensureInitializedInternal(); | ||
636 | return null; | ||
637 | } | ||
638 | } | ||
639 | |||
640 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
641 | private static final Opposite.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
642 | |||
643 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
644 | |||
645 | private final PParameter parameter_b = new PParameter("b", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
646 | |||
647 | private final List<PParameter> parameters = Arrays.asList(parameter_a, parameter_b); | ||
648 | |||
649 | private GeneratedPQuery() { | ||
650 | super(PVisibility.PUBLIC); | ||
651 | } | ||
652 | |||
653 | @Override | ||
654 | public String getFullyQualifiedName() { | ||
655 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.opposite"; | ||
656 | } | ||
657 | |||
658 | @Override | ||
659 | public List<String> getParameterNames() { | ||
660 | return Arrays.asList("a","b"); | ||
661 | } | ||
662 | |||
663 | @Override | ||
664 | public List<PParameter> getParameters() { | ||
665 | return parameters; | ||
666 | } | ||
667 | |||
668 | @Override | ||
669 | public Set<PBody> doGetContainedBodies() { | ||
670 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
671 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
672 | { | ||
673 | PBody body = new PBody(this); | ||
674 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
675 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
676 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
677 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
678 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
679 | new ExportedParameter(body, var_a, parameter_a), | ||
680 | new ExportedParameter(body, var_b, parameter_b) | ||
681 | )); | ||
682 | // EReference.eOpposite(a,b) | ||
683 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
684 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
685 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference", "eOpposite"))); | ||
686 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
687 | new Equality(body, var__virtual_0_, var_b); | ||
688 | bodies.add(body); | ||
689 | } | ||
690 | return bodies; | ||
691 | } | ||
692 | } | ||
693 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/OppositeDifferentClass.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/OppositeDifferentClass.java new file mode 100644 index 00000000..887f8584 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/OppositeDifferentClass.java | |||
@@ -0,0 +1,577 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.EReference; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
42 | import 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(key={a}, severity="error", message="error") | ||
50 | * pattern oppositeDifferentClass(a:EReference) { | ||
51 | * EReference.eOpposite(a,b); | ||
52 | * EReference.eContainingClass(a,aContaining); | ||
53 | * EReference.eType(b,bTarget); | ||
54 | * aContaining != bTarget; | ||
55 | * } | ||
56 | * </pre></code> | ||
57 | * | ||
58 | * @see Matcher | ||
59 | * @see Match | ||
60 | * | ||
61 | */ | ||
62 | @SuppressWarnings("all") | ||
63 | public final class OppositeDifferentClass extends BaseGeneratedEMFQuerySpecification<OppositeDifferentClass.Matcher> { | ||
64 | /** | ||
65 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.oppositeDifferentClass 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 EReference fA; | ||
78 | |||
79 | private static List<String> parameterNames = makeImmutableList("a"); | ||
80 | |||
81 | private Match(final EReference pA) { | ||
82 | this.fA = pA; | ||
83 | } | ||
84 | |||
85 | @Override | ||
86 | public Object get(final String parameterName) { | ||
87 | if ("a".equals(parameterName)) return this.fA; | ||
88 | return null; | ||
89 | } | ||
90 | |||
91 | public EReference getA() { | ||
92 | return this.fA; | ||
93 | } | ||
94 | |||
95 | @Override | ||
96 | public boolean set(final String parameterName, final Object newValue) { | ||
97 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
98 | if ("a".equals(parameterName) ) { | ||
99 | this.fA = (EReference) newValue; | ||
100 | return true; | ||
101 | } | ||
102 | return false; | ||
103 | } | ||
104 | |||
105 | public void setA(final EReference pA) { | ||
106 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
107 | this.fA = pA; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public String patternName() { | ||
112 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.oppositeDifferentClass"; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<String> parameterNames() { | ||
117 | return OppositeDifferentClass.Match.parameterNames; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public Object[] toArray() { | ||
122 | return new Object[]{fA}; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public OppositeDifferentClass.Match toImmutable() { | ||
127 | return isMutable() ? newMatch(fA) : this; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public String prettyPrint() { | ||
132 | StringBuilder result = new StringBuilder(); | ||
133 | result.append("\"a\"=" + prettyPrintValue(fA)); | ||
134 | return result.toString(); | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public int hashCode() { | ||
139 | return Objects.hash(fA); | ||
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 OppositeDifferentClass.Match)) { | ||
150 | OppositeDifferentClass.Match other = (OppositeDifferentClass.Match) obj; | ||
151 | return Objects.equals(fA, other.fA); | ||
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 OppositeDifferentClass specification() { | ||
164 | return OppositeDifferentClass.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 OppositeDifferentClass.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 pA the fixed value of pattern parameter a, or null if not bound. | ||
183 | * @return the new, mutable (partial) match object. | ||
184 | * | ||
185 | */ | ||
186 | public static OppositeDifferentClass.Match newMutableMatch(final EReference pA) { | ||
187 | return new Mutable(pA); | ||
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 pA the fixed value of pattern parameter a, or null if not bound. | ||
195 | * @return the (partial) match object. | ||
196 | * | ||
197 | */ | ||
198 | public static OppositeDifferentClass.Match newMatch(final EReference pA) { | ||
199 | return new Immutable(pA); | ||
200 | } | ||
201 | |||
202 | private static final class Mutable extends OppositeDifferentClass.Match { | ||
203 | Mutable(final EReference pA) { | ||
204 | super(pA); | ||
205 | } | ||
206 | |||
207 | @Override | ||
208 | public boolean isMutable() { | ||
209 | return true; | ||
210 | } | ||
211 | } | ||
212 | |||
213 | private static final class Immutable extends OppositeDifferentClass.Match { | ||
214 | Immutable(final EReference pA) { | ||
215 | super(pA); | ||
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.alloyexamples.oppositeDifferentClass 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 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
237 | * pattern oppositeDifferentClass(a:EReference) { | ||
238 | * EReference.eOpposite(a,b); | ||
239 | * EReference.eContainingClass(a,aContaining); | ||
240 | * EReference.eType(b,bTarget); | ||
241 | * aContaining != bTarget; | ||
242 | * } | ||
243 | * </pre></code> | ||
244 | * | ||
245 | * @see Match | ||
246 | * @see OppositeDifferentClass | ||
247 | * | ||
248 | */ | ||
249 | public static class Matcher extends BaseMatcher<OppositeDifferentClass.Match> { | ||
250 | /** | ||
251 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
252 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
253 | * | ||
254 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
255 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
256 | * | ||
257 | */ | ||
258 | public static OppositeDifferentClass.Matcher on(final ViatraQueryEngine engine) { | ||
259 | // check if matcher already exists | ||
260 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
261 | if (matcher == null) { | ||
262 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
263 | } | ||
264 | return matcher; | ||
265 | } | ||
266 | |||
267 | /** | ||
268 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
269 | * @return an initialized matcher | ||
270 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
271 | * | ||
272 | */ | ||
273 | public static OppositeDifferentClass.Matcher create() { | ||
274 | return new Matcher(); | ||
275 | } | ||
276 | |||
277 | private static final int POSITION_A = 0; | ||
278 | |||
279 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(OppositeDifferentClass.Matcher.class); | ||
280 | |||
281 | /** | ||
282 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
283 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
284 | * | ||
285 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
286 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
287 | * | ||
288 | */ | ||
289 | private Matcher() { | ||
290 | super(querySpecification()); | ||
291 | } | ||
292 | |||
293 | /** | ||
294 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
295 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
296 | * @return matches represented as a Match object. | ||
297 | * | ||
298 | */ | ||
299 | public Collection<OppositeDifferentClass.Match> getAllMatches(final EReference pA) { | ||
300 | return rawStreamAllMatches(new Object[]{pA}).collect(Collectors.toSet()); | ||
301 | } | ||
302 | |||
303 | /** | ||
304 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
305 | * </p> | ||
306 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
307 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
308 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
309 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
310 | * @return a stream of matches represented as a Match object. | ||
311 | * | ||
312 | */ | ||
313 | public Stream<OppositeDifferentClass.Match> streamAllMatches(final EReference pA) { | ||
314 | return rawStreamAllMatches(new Object[]{pA}); | ||
315 | } | ||
316 | |||
317 | /** | ||
318 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
319 | * Neither determinism nor randomness of selection is guaranteed. | ||
320 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
321 | * @return a match represented as a Match object, or null if no match is found. | ||
322 | * | ||
323 | */ | ||
324 | public Optional<OppositeDifferentClass.Match> getOneArbitraryMatch(final EReference pA) { | ||
325 | return rawGetOneArbitraryMatch(new Object[]{pA}); | ||
326 | } | ||
327 | |||
328 | /** | ||
329 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
330 | * under any possible substitution of the unspecified parameters (if any). | ||
331 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
332 | * @return true if the input is a valid (partial) match of the pattern. | ||
333 | * | ||
334 | */ | ||
335 | public boolean hasMatch(final EReference pA) { | ||
336 | return rawHasMatch(new Object[]{pA}); | ||
337 | } | ||
338 | |||
339 | /** | ||
340 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
341 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
342 | * @return the number of pattern matches found. | ||
343 | * | ||
344 | */ | ||
345 | public int countMatches(final EReference pA) { | ||
346 | return rawCountMatches(new Object[]{pA}); | ||
347 | } | ||
348 | |||
349 | /** | ||
350 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
351 | * Neither determinism nor randomness of selection is guaranteed. | ||
352 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
353 | * @param processor the action that will process the selected match. | ||
354 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
355 | * | ||
356 | */ | ||
357 | public boolean forOneArbitraryMatch(final EReference pA, final Consumer<? super OppositeDifferentClass.Match> processor) { | ||
358 | return rawForOneArbitraryMatch(new Object[]{pA}, processor); | ||
359 | } | ||
360 | |||
361 | /** | ||
362 | * Returns a new (partial) match. | ||
363 | * This can be used e.g. to call the matcher with a partial match. | ||
364 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
365 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
366 | * @return the (partial) match object. | ||
367 | * | ||
368 | */ | ||
369 | public OppositeDifferentClass.Match newMatch(final EReference pA) { | ||
370 | return OppositeDifferentClass.Match.newMatch(pA); | ||
371 | } | ||
372 | |||
373 | /** | ||
374 | * Retrieve the set of values that occur in matches for a. | ||
375 | * @return the Set of all values or empty set if there are no matches | ||
376 | * | ||
377 | */ | ||
378 | protected Stream<EReference> rawStreamAllValuesOfa(final Object[] parameters) { | ||
379 | return rawStreamAllValues(POSITION_A, parameters).map(EReference.class::cast); | ||
380 | } | ||
381 | |||
382 | /** | ||
383 | * Retrieve the set of values that occur in matches for a. | ||
384 | * @return the Set of all values or empty set if there are no matches | ||
385 | * | ||
386 | */ | ||
387 | public Set<EReference> getAllValuesOfa() { | ||
388 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
389 | } | ||
390 | |||
391 | /** | ||
392 | * Retrieve the set of values that occur in matches for a. | ||
393 | * @return the Set of all values or empty set if there are no matches | ||
394 | * | ||
395 | */ | ||
396 | public Stream<EReference> streamAllValuesOfa() { | ||
397 | return rawStreamAllValuesOfa(emptyArray()); | ||
398 | } | ||
399 | |||
400 | @Override | ||
401 | protected OppositeDifferentClass.Match tupleToMatch(final Tuple t) { | ||
402 | try { | ||
403 | return OppositeDifferentClass.Match.newMatch((EReference) t.get(POSITION_A)); | ||
404 | } catch(ClassCastException e) { | ||
405 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
406 | return null; | ||
407 | } | ||
408 | } | ||
409 | |||
410 | @Override | ||
411 | protected OppositeDifferentClass.Match arrayToMatch(final Object[] match) { | ||
412 | try { | ||
413 | return OppositeDifferentClass.Match.newMatch((EReference) match[POSITION_A]); | ||
414 | } catch(ClassCastException e) { | ||
415 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
416 | return null; | ||
417 | } | ||
418 | } | ||
419 | |||
420 | @Override | ||
421 | protected OppositeDifferentClass.Match arrayToMatchMutable(final Object[] match) { | ||
422 | try { | ||
423 | return OppositeDifferentClass.Match.newMutableMatch((EReference) match[POSITION_A]); | ||
424 | } catch(ClassCastException e) { | ||
425 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
426 | return null; | ||
427 | } | ||
428 | } | ||
429 | |||
430 | /** | ||
431 | * @return the singleton instance of the query specification of this pattern | ||
432 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
433 | * | ||
434 | */ | ||
435 | public static IQuerySpecification<OppositeDifferentClass.Matcher> querySpecification() { | ||
436 | return OppositeDifferentClass.instance(); | ||
437 | } | ||
438 | } | ||
439 | |||
440 | private OppositeDifferentClass() { | ||
441 | super(GeneratedPQuery.INSTANCE); | ||
442 | } | ||
443 | |||
444 | /** | ||
445 | * @return the singleton instance of the query specification | ||
446 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
447 | * | ||
448 | */ | ||
449 | public static OppositeDifferentClass instance() { | ||
450 | try{ | ||
451 | return LazyHolder.INSTANCE; | ||
452 | } catch (ExceptionInInitializerError err) { | ||
453 | throw processInitializerError(err); | ||
454 | } | ||
455 | } | ||
456 | |||
457 | @Override | ||
458 | protected OppositeDifferentClass.Matcher instantiate(final ViatraQueryEngine engine) { | ||
459 | return OppositeDifferentClass.Matcher.on(engine); | ||
460 | } | ||
461 | |||
462 | @Override | ||
463 | public OppositeDifferentClass.Matcher instantiate() { | ||
464 | return OppositeDifferentClass.Matcher.create(); | ||
465 | } | ||
466 | |||
467 | @Override | ||
468 | public OppositeDifferentClass.Match newEmptyMatch() { | ||
469 | return OppositeDifferentClass.Match.newEmptyMatch(); | ||
470 | } | ||
471 | |||
472 | @Override | ||
473 | public OppositeDifferentClass.Match newMatch(final Object... parameters) { | ||
474 | return OppositeDifferentClass.Match.newMatch((org.eclipse.emf.ecore.EReference) parameters[0]); | ||
475 | } | ||
476 | |||
477 | /** | ||
478 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.OppositeDifferentClass (visibility: PUBLIC, simpleName: OppositeDifferentClass, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.OppositeDifferentClass, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
479 | * <b>not</b> at the class load time of the outer class, | ||
480 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.OppositeDifferentClass (visibility: PUBLIC, simpleName: OppositeDifferentClass, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.OppositeDifferentClass, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
481 | * | ||
482 | * <p> This workaround is required e.g. to support recursion. | ||
483 | * | ||
484 | */ | ||
485 | private static class LazyHolder { | ||
486 | private static final OppositeDifferentClass INSTANCE = new OppositeDifferentClass(); | ||
487 | |||
488 | /** | ||
489 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
490 | * This initialization order is required to support indirect recursion. | ||
491 | * | ||
492 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
493 | * | ||
494 | */ | ||
495 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
496 | |||
497 | public static Object ensureInitialized() { | ||
498 | INSTANCE.ensureInitializedInternal(); | ||
499 | return null; | ||
500 | } | ||
501 | } | ||
502 | |||
503 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
504 | private static final OppositeDifferentClass.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
505 | |||
506 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
507 | |||
508 | private final List<PParameter> parameters = Arrays.asList(parameter_a); | ||
509 | |||
510 | private GeneratedPQuery() { | ||
511 | super(PVisibility.PUBLIC); | ||
512 | } | ||
513 | |||
514 | @Override | ||
515 | public String getFullyQualifiedName() { | ||
516 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.oppositeDifferentClass"; | ||
517 | } | ||
518 | |||
519 | @Override | ||
520 | public List<String> getParameterNames() { | ||
521 | return Arrays.asList("a"); | ||
522 | } | ||
523 | |||
524 | @Override | ||
525 | public List<PParameter> getParameters() { | ||
526 | return parameters; | ||
527 | } | ||
528 | |||
529 | @Override | ||
530 | public Set<PBody> doGetContainedBodies() { | ||
531 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
532 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
533 | { | ||
534 | PBody body = new PBody(this); | ||
535 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
536 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
537 | PVariable var_aContaining = body.getOrCreateVariableByName("aContaining"); | ||
538 | PVariable var_bTarget = body.getOrCreateVariableByName("bTarget"); | ||
539 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
540 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
541 | new ExportedParameter(body, var_a, parameter_a) | ||
542 | )); | ||
543 | // EReference.eOpposite(a,b) | ||
544 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
545 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
546 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference", "eOpposite"))); | ||
547 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
548 | new Equality(body, var__virtual_0_, var_b); | ||
549 | // EReference.eContainingClass(a,aContaining) | ||
550 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
551 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
552 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EStructuralFeature", "eContainingClass"))); | ||
553 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
554 | new Equality(body, var__virtual_1_, var_aContaining); | ||
555 | // EReference.eType(b,bTarget) | ||
556 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
557 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
558 | new TypeConstraint(body, Tuples.flatTupleOf(var_b, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "ETypedElement", "eType"))); | ||
559 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClassifier"))); | ||
560 | new Equality(body, var__virtual_2_, var_bTarget); | ||
561 | // aContaining != bTarget | ||
562 | new Inequality(body, var_aContaining, var_bTarget); | ||
563 | bodies.add(body); | ||
564 | } | ||
565 | { | ||
566 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
567 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
568 | new ParameterReference("a") | ||
569 | })); | ||
570 | annotation.addAttribute("severity", "error"); | ||
571 | annotation.addAttribute("message", "error"); | ||
572 | addAnnotation(annotation); | ||
573 | } | ||
574 | return bodies; | ||
575 | } | ||
576 | } | ||
577 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/PatternContent.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/PatternContent.java new file mode 100644 index 00000000..690d3e27 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/src-gen/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/PatternContent.java | |||
@@ -0,0 +1,693 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.alloyexamples; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.emf.ecore.EClass; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import 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 | * pattern patternContent(o1: FSObject, o2: FSObject) { | ||
47 | * Dir.contents(o1,o2); | ||
48 | * } | ||
49 | * </pre></code> | ||
50 | * | ||
51 | * @see Matcher | ||
52 | * @see Match | ||
53 | * | ||
54 | */ | ||
55 | @SuppressWarnings("all") | ||
56 | public final class PatternContent extends BaseGeneratedEMFQuerySpecification<PatternContent.Matcher> { | ||
57 | /** | ||
58 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.patternContent pattern, | ||
59 | * to be used in conjunction with {@link Matcher}. | ||
60 | * | ||
61 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
62 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
63 | * usable to represent a match of the pattern in the result of a query, | ||
64 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
65 | * | ||
66 | * @see Matcher | ||
67 | * | ||
68 | */ | ||
69 | public static abstract class Match extends BasePatternMatch { | ||
70 | private FSObject fO1; | ||
71 | |||
72 | private FSObject fO2; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("o1", "o2"); | ||
75 | |||
76 | private Match(final FSObject pO1, final FSObject pO2) { | ||
77 | this.fO1 = pO1; | ||
78 | this.fO2 = pO2; | ||
79 | } | ||
80 | |||
81 | @Override | ||
82 | public Object get(final String parameterName) { | ||
83 | if ("o1".equals(parameterName)) return this.fO1; | ||
84 | if ("o2".equals(parameterName)) return this.fO2; | ||
85 | return null; | ||
86 | } | ||
87 | |||
88 | public FSObject getO1() { | ||
89 | return this.fO1; | ||
90 | } | ||
91 | |||
92 | public FSObject getO2() { | ||
93 | return this.fO2; | ||
94 | } | ||
95 | |||
96 | @Override | ||
97 | public boolean set(final String parameterName, final Object newValue) { | ||
98 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
99 | if ("o1".equals(parameterName) ) { | ||
100 | this.fO1 = (FSObject) newValue; | ||
101 | return true; | ||
102 | } | ||
103 | if ("o2".equals(parameterName) ) { | ||
104 | this.fO2 = (FSObject) newValue; | ||
105 | return true; | ||
106 | } | ||
107 | return false; | ||
108 | } | ||
109 | |||
110 | public void setO1(final FSObject pO1) { | ||
111 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
112 | this.fO1 = pO1; | ||
113 | } | ||
114 | |||
115 | public void setO2(final FSObject pO2) { | ||
116 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
117 | this.fO2 = pO2; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public String patternName() { | ||
122 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.patternContent"; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public List<String> parameterNames() { | ||
127 | return PatternContent.Match.parameterNames; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public Object[] toArray() { | ||
132 | return new Object[]{fO1, fO2}; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public PatternContent.Match toImmutable() { | ||
137 | return isMutable() ? newMatch(fO1, fO2) : this; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public String prettyPrint() { | ||
142 | StringBuilder result = new StringBuilder(); | ||
143 | result.append("\"o1\"=" + prettyPrintValue(fO1) + ", "); | ||
144 | result.append("\"o2\"=" + prettyPrintValue(fO2)); | ||
145 | return result.toString(); | ||
146 | } | ||
147 | |||
148 | @Override | ||
149 | public int hashCode() { | ||
150 | return Objects.hash(fO1, fO2); | ||
151 | } | ||
152 | |||
153 | @Override | ||
154 | public boolean equals(final Object obj) { | ||
155 | if (this == obj) | ||
156 | return true; | ||
157 | if (obj == null) { | ||
158 | return false; | ||
159 | } | ||
160 | if ((obj instanceof PatternContent.Match)) { | ||
161 | PatternContent.Match other = (PatternContent.Match) obj; | ||
162 | return Objects.equals(fO1, other.fO1) && Objects.equals(fO2, other.fO2); | ||
163 | } else { | ||
164 | // this should be infrequent | ||
165 | if (!(obj instanceof IPatternMatch)) { | ||
166 | return false; | ||
167 | } | ||
168 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
169 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
170 | } | ||
171 | } | ||
172 | |||
173 | @Override | ||
174 | public PatternContent specification() { | ||
175 | return PatternContent.instance(); | ||
176 | } | ||
177 | |||
178 | /** | ||
179 | * Returns an empty, mutable match. | ||
180 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
181 | * | ||
182 | * @return the empty match. | ||
183 | * | ||
184 | */ | ||
185 | public static PatternContent.Match newEmptyMatch() { | ||
186 | return new Mutable(null, null); | ||
187 | } | ||
188 | |||
189 | /** | ||
190 | * Returns a mutable (partial) match. | ||
191 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
192 | * | ||
193 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
194 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
195 | * @return the new, mutable (partial) match object. | ||
196 | * | ||
197 | */ | ||
198 | public static PatternContent.Match newMutableMatch(final FSObject pO1, final FSObject pO2) { | ||
199 | return new Mutable(pO1, pO2); | ||
200 | } | ||
201 | |||
202 | /** | ||
203 | * Returns a new (partial) match. | ||
204 | * This can be used e.g. to call the matcher with a partial match. | ||
205 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
206 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
207 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
208 | * @return the (partial) match object. | ||
209 | * | ||
210 | */ | ||
211 | public static PatternContent.Match newMatch(final FSObject pO1, final FSObject pO2) { | ||
212 | return new Immutable(pO1, pO2); | ||
213 | } | ||
214 | |||
215 | private static final class Mutable extends PatternContent.Match { | ||
216 | Mutable(final FSObject pO1, final FSObject pO2) { | ||
217 | super(pO1, pO2); | ||
218 | } | ||
219 | |||
220 | @Override | ||
221 | public boolean isMutable() { | ||
222 | return true; | ||
223 | } | ||
224 | } | ||
225 | |||
226 | private static final class Immutable extends PatternContent.Match { | ||
227 | Immutable(final FSObject pO1, final FSObject pO2) { | ||
228 | super(pO1, pO2); | ||
229 | } | ||
230 | |||
231 | @Override | ||
232 | public boolean isMutable() { | ||
233 | return false; | ||
234 | } | ||
235 | } | ||
236 | } | ||
237 | |||
238 | /** | ||
239 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.alloyexamples.patternContent pattern, | ||
240 | * providing pattern-specific query methods. | ||
241 | * | ||
242 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
243 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
244 | * | ||
245 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
246 | * | ||
247 | * <p>Original source: | ||
248 | * <code><pre> | ||
249 | * pattern patternContent(o1: FSObject, o2: FSObject) { | ||
250 | * Dir.contents(o1,o2); | ||
251 | * } | ||
252 | * </pre></code> | ||
253 | * | ||
254 | * @see Match | ||
255 | * @see PatternContent | ||
256 | * | ||
257 | */ | ||
258 | public static class Matcher extends BaseMatcher<PatternContent.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 PatternContent.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 PatternContent.Matcher create() { | ||
283 | return new Matcher(); | ||
284 | } | ||
285 | |||
286 | private static final int POSITION_O1 = 0; | ||
287 | |||
288 | private static final int POSITION_O2 = 1; | ||
289 | |||
290 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(PatternContent.Matcher.class); | ||
291 | |||
292 | /** | ||
293 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
294 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
295 | * | ||
296 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
297 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
298 | * | ||
299 | */ | ||
300 | private Matcher() { | ||
301 | super(querySpecification()); | ||
302 | } | ||
303 | |||
304 | /** | ||
305 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
306 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
307 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
308 | * @return matches represented as a Match object. | ||
309 | * | ||
310 | */ | ||
311 | public Collection<PatternContent.Match> getAllMatches(final FSObject pO1, final FSObject pO2) { | ||
312 | return rawStreamAllMatches(new Object[]{pO1, pO2}).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 pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
322 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
323 | * @return a stream of matches represented as a Match object. | ||
324 | * | ||
325 | */ | ||
326 | public Stream<PatternContent.Match> streamAllMatches(final FSObject pO1, final FSObject pO2) { | ||
327 | return rawStreamAllMatches(new Object[]{pO1, pO2}); | ||
328 | } | ||
329 | |||
330 | /** | ||
331 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
332 | * Neither determinism nor randomness of selection is guaranteed. | ||
333 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
334 | * @param pO2 the fixed value of pattern parameter o2, 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<PatternContent.Match> getOneArbitraryMatch(final FSObject pO1, final FSObject pO2) { | ||
339 | return rawGetOneArbitraryMatch(new Object[]{pO1, pO2}); | ||
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 pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
346 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
347 | * @return true if the input is a valid (partial) match of the pattern. | ||
348 | * | ||
349 | */ | ||
350 | public boolean hasMatch(final FSObject pO1, final FSObject pO2) { | ||
351 | return rawHasMatch(new Object[]{pO1, pO2}); | ||
352 | } | ||
353 | |||
354 | /** | ||
355 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
356 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
357 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
358 | * @return the number of pattern matches found. | ||
359 | * | ||
360 | */ | ||
361 | public int countMatches(final FSObject pO1, final FSObject pO2) { | ||
362 | return rawCountMatches(new Object[]{pO1, pO2}); | ||
363 | } | ||
364 | |||
365 | /** | ||
366 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
367 | * Neither determinism nor randomness of selection is guaranteed. | ||
368 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
369 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
370 | * @param processor the action that will process the selected match. | ||
371 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
372 | * | ||
373 | */ | ||
374 | public boolean forOneArbitraryMatch(final FSObject pO1, final FSObject pO2, final Consumer<? super PatternContent.Match> processor) { | ||
375 | return rawForOneArbitraryMatch(new Object[]{pO1, pO2}, processor); | ||
376 | } | ||
377 | |||
378 | /** | ||
379 | * Returns a new (partial) match. | ||
380 | * This can be used e.g. to call the matcher with a partial match. | ||
381 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
382 | * @param pO1 the fixed value of pattern parameter o1, or null if not bound. | ||
383 | * @param pO2 the fixed value of pattern parameter o2, or null if not bound. | ||
384 | * @return the (partial) match object. | ||
385 | * | ||
386 | */ | ||
387 | public PatternContent.Match newMatch(final FSObject pO1, final FSObject pO2) { | ||
388 | return PatternContent.Match.newMatch(pO1, pO2); | ||
389 | } | ||
390 | |||
391 | /** | ||
392 | * Retrieve the set of values that occur in matches for o1. | ||
393 | * @return the Set of all values or empty set if there are no matches | ||
394 | * | ||
395 | */ | ||
396 | protected Stream<FSObject> rawStreamAllValuesOfo1(final Object[] parameters) { | ||
397 | return rawStreamAllValues(POSITION_O1, parameters).map(FSObject.class::cast); | ||
398 | } | ||
399 | |||
400 | /** | ||
401 | * Retrieve the set of values that occur in matches for o1. | ||
402 | * @return the Set of all values or empty set if there are no matches | ||
403 | * | ||
404 | */ | ||
405 | public Set<FSObject> getAllValuesOfo1() { | ||
406 | return rawStreamAllValuesOfo1(emptyArray()).collect(Collectors.toSet()); | ||
407 | } | ||
408 | |||
409 | /** | ||
410 | * Retrieve the set of values that occur in matches for o1. | ||
411 | * @return the Set of all values or empty set if there are no matches | ||
412 | * | ||
413 | */ | ||
414 | public Stream<FSObject> streamAllValuesOfo1() { | ||
415 | return rawStreamAllValuesOfo1(emptyArray()); | ||
416 | } | ||
417 | |||
418 | /** | ||
419 | * Retrieve the set of values that occur in matches for o1. | ||
420 | * </p> | ||
421 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
422 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
423 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
424 | * | ||
425 | * @return the Stream of all values or empty set if there are no matches | ||
426 | * | ||
427 | */ | ||
428 | public Stream<FSObject> streamAllValuesOfo1(final PatternContent.Match partialMatch) { | ||
429 | return rawStreamAllValuesOfo1(partialMatch.toArray()); | ||
430 | } | ||
431 | |||
432 | /** | ||
433 | * Retrieve the set of values that occur in matches for o1. | ||
434 | * </p> | ||
435 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
436 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
437 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
438 | * | ||
439 | * @return the Stream of all values or empty set if there are no matches | ||
440 | * | ||
441 | */ | ||
442 | public Stream<FSObject> streamAllValuesOfo1(final FSObject pO2) { | ||
443 | return rawStreamAllValuesOfo1(new Object[]{null, pO2}); | ||
444 | } | ||
445 | |||
446 | /** | ||
447 | * Retrieve the set of values that occur in matches for o1. | ||
448 | * @return the Set of all values or empty set if there are no matches | ||
449 | * | ||
450 | */ | ||
451 | public Set<FSObject> getAllValuesOfo1(final PatternContent.Match partialMatch) { | ||
452 | return rawStreamAllValuesOfo1(partialMatch.toArray()).collect(Collectors.toSet()); | ||
453 | } | ||
454 | |||
455 | /** | ||
456 | * Retrieve the set of values that occur in matches for o1. | ||
457 | * @return the Set of all values or empty set if there are no matches | ||
458 | * | ||
459 | */ | ||
460 | public Set<FSObject> getAllValuesOfo1(final FSObject pO2) { | ||
461 | return rawStreamAllValuesOfo1(new Object[]{null, pO2}).collect(Collectors.toSet()); | ||
462 | } | ||
463 | |||
464 | /** | ||
465 | * Retrieve the set of values that occur in matches for o2. | ||
466 | * @return the Set of all values or empty set if there are no matches | ||
467 | * | ||
468 | */ | ||
469 | protected Stream<FSObject> rawStreamAllValuesOfo2(final Object[] parameters) { | ||
470 | return rawStreamAllValues(POSITION_O2, parameters).map(FSObject.class::cast); | ||
471 | } | ||
472 | |||
473 | /** | ||
474 | * Retrieve the set of values that occur in matches for o2. | ||
475 | * @return the Set of all values or empty set if there are no matches | ||
476 | * | ||
477 | */ | ||
478 | public Set<FSObject> getAllValuesOfo2() { | ||
479 | return rawStreamAllValuesOfo2(emptyArray()).collect(Collectors.toSet()); | ||
480 | } | ||
481 | |||
482 | /** | ||
483 | * Retrieve the set of values that occur in matches for o2. | ||
484 | * @return the Set of all values or empty set if there are no matches | ||
485 | * | ||
486 | */ | ||
487 | public Stream<FSObject> streamAllValuesOfo2() { | ||
488 | return rawStreamAllValuesOfo2(emptyArray()); | ||
489 | } | ||
490 | |||
491 | /** | ||
492 | * Retrieve the set of values that occur in matches for o2. | ||
493 | * </p> | ||
494 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
495 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
496 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
497 | * | ||
498 | * @return the Stream of all values or empty set if there are no matches | ||
499 | * | ||
500 | */ | ||
501 | public Stream<FSObject> streamAllValuesOfo2(final PatternContent.Match partialMatch) { | ||
502 | return rawStreamAllValuesOfo2(partialMatch.toArray()); | ||
503 | } | ||
504 | |||
505 | /** | ||
506 | * Retrieve the set of values that occur in matches for o2. | ||
507 | * </p> | ||
508 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
509 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
510 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
511 | * | ||
512 | * @return the Stream of all values or empty set if there are no matches | ||
513 | * | ||
514 | */ | ||
515 | public Stream<FSObject> streamAllValuesOfo2(final FSObject pO1) { | ||
516 | return rawStreamAllValuesOfo2(new Object[]{pO1, null}); | ||
517 | } | ||
518 | |||
519 | /** | ||
520 | * Retrieve the set of values that occur in matches for o2. | ||
521 | * @return the Set of all values or empty set if there are no matches | ||
522 | * | ||
523 | */ | ||
524 | public Set<FSObject> getAllValuesOfo2(final PatternContent.Match partialMatch) { | ||
525 | return rawStreamAllValuesOfo2(partialMatch.toArray()).collect(Collectors.toSet()); | ||
526 | } | ||
527 | |||
528 | /** | ||
529 | * Retrieve the set of values that occur in matches for o2. | ||
530 | * @return the Set of all values or empty set if there are no matches | ||
531 | * | ||
532 | */ | ||
533 | public Set<FSObject> getAllValuesOfo2(final FSObject pO1) { | ||
534 | return rawStreamAllValuesOfo2(new Object[]{pO1, null}).collect(Collectors.toSet()); | ||
535 | } | ||
536 | |||
537 | @Override | ||
538 | protected PatternContent.Match tupleToMatch(final Tuple t) { | ||
539 | try { | ||
540 | return PatternContent.Match.newMatch((FSObject) t.get(POSITION_O1), (FSObject) t.get(POSITION_O2)); | ||
541 | } catch(ClassCastException e) { | ||
542 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
543 | return null; | ||
544 | } | ||
545 | } | ||
546 | |||
547 | @Override | ||
548 | protected PatternContent.Match arrayToMatch(final Object[] match) { | ||
549 | try { | ||
550 | return PatternContent.Match.newMatch((FSObject) match[POSITION_O1], (FSObject) match[POSITION_O2]); | ||
551 | } catch(ClassCastException e) { | ||
552 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
553 | return null; | ||
554 | } | ||
555 | } | ||
556 | |||
557 | @Override | ||
558 | protected PatternContent.Match arrayToMatchMutable(final Object[] match) { | ||
559 | try { | ||
560 | return PatternContent.Match.newMutableMatch((FSObject) match[POSITION_O1], (FSObject) match[POSITION_O2]); | ||
561 | } catch(ClassCastException e) { | ||
562 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
563 | return null; | ||
564 | } | ||
565 | } | ||
566 | |||
567 | /** | ||
568 | * @return the singleton instance of the query specification of this pattern | ||
569 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
570 | * | ||
571 | */ | ||
572 | public static IQuerySpecification<PatternContent.Matcher> querySpecification() { | ||
573 | return PatternContent.instance(); | ||
574 | } | ||
575 | } | ||
576 | |||
577 | private PatternContent() { | ||
578 | super(GeneratedPQuery.INSTANCE); | ||
579 | } | ||
580 | |||
581 | /** | ||
582 | * @return the singleton instance of the query specification | ||
583 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
584 | * | ||
585 | */ | ||
586 | public static PatternContent instance() { | ||
587 | try{ | ||
588 | return LazyHolder.INSTANCE; | ||
589 | } catch (ExceptionInInitializerError err) { | ||
590 | throw processInitializerError(err); | ||
591 | } | ||
592 | } | ||
593 | |||
594 | @Override | ||
595 | protected PatternContent.Matcher instantiate(final ViatraQueryEngine engine) { | ||
596 | return PatternContent.Matcher.on(engine); | ||
597 | } | ||
598 | |||
599 | @Override | ||
600 | public PatternContent.Matcher instantiate() { | ||
601 | return PatternContent.Matcher.create(); | ||
602 | } | ||
603 | |||
604 | @Override | ||
605 | public PatternContent.Match newEmptyMatch() { | ||
606 | return PatternContent.Match.newEmptyMatch(); | ||
607 | } | ||
608 | |||
609 | @Override | ||
610 | public PatternContent.Match newMatch(final Object... parameters) { | ||
611 | return PatternContent.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject) parameters[0], (hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject) parameters[1]); | ||
612 | } | ||
613 | |||
614 | /** | ||
615 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.PatternContent (visibility: PUBLIC, simpleName: PatternContent, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.PatternContent, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
616 | * <b>not</b> at the class load time of the outer class, | ||
617 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.PatternContent (visibility: PUBLIC, simpleName: PatternContent, identifier: hu.bme.mit.inf.dslreasoner.domains.alloyexamples.PatternContent, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.alloyexamples) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
618 | * | ||
619 | * <p> This workaround is required e.g. to support recursion. | ||
620 | * | ||
621 | */ | ||
622 | private static class LazyHolder { | ||
623 | private static final PatternContent INSTANCE = new PatternContent(); | ||
624 | |||
625 | /** | ||
626 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
627 | * This initialization order is required to support indirect recursion. | ||
628 | * | ||
629 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
630 | * | ||
631 | */ | ||
632 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
633 | |||
634 | public static Object ensureInitialized() { | ||
635 | INSTANCE.ensureInitializedInternal(); | ||
636 | return null; | ||
637 | } | ||
638 | } | ||
639 | |||
640 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
641 | private static final PatternContent.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
642 | |||
643 | private final PParameter parameter_o1 = new PParameter("o1", "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FS", "FSObject")), PParameterDirection.INOUT); | ||
644 | |||
645 | private final PParameter parameter_o2 = new PParameter("o2", "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.Filesystem.FSObject", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FS", "FSObject")), PParameterDirection.INOUT); | ||
646 | |||
647 | private final List<PParameter> parameters = Arrays.asList(parameter_o1, parameter_o2); | ||
648 | |||
649 | private GeneratedPQuery() { | ||
650 | super(PVisibility.PUBLIC); | ||
651 | } | ||
652 | |||
653 | @Override | ||
654 | public String getFullyQualifiedName() { | ||
655 | return "hu.bme.mit.inf.dslreasoner.domains.alloyexamples.patternContent"; | ||
656 | } | ||
657 | |||
658 | @Override | ||
659 | public List<String> getParameterNames() { | ||
660 | return Arrays.asList("o1","o2"); | ||
661 | } | ||
662 | |||
663 | @Override | ||
664 | public List<PParameter> getParameters() { | ||
665 | return parameters; | ||
666 | } | ||
667 | |||
668 | @Override | ||
669 | public Set<PBody> doGetContainedBodies() { | ||
670 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
671 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
672 | { | ||
673 | PBody body = new PBody(this); | ||
674 | PVariable var_o1 = body.getOrCreateVariableByName("o1"); | ||
675 | PVariable var_o2 = body.getOrCreateVariableByName("o2"); | ||
676 | new TypeConstraint(body, Tuples.flatTupleOf(var_o1), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
677 | new TypeConstraint(body, Tuples.flatTupleOf(var_o2), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
678 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
679 | new ExportedParameter(body, var_o1, parameter_o1), | ||
680 | new ExportedParameter(body, var_o2, parameter_o2) | ||
681 | )); | ||
682 | // Dir.contents(o1,o2) | ||
683 | new TypeConstraint(body, Tuples.flatTupleOf(var_o1), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "Dir"))); | ||
684 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
685 | new TypeConstraint(body, Tuples.flatTupleOf(var_o1, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FS", "Dir", "contents"))); | ||
686 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FS", "FSObject"))); | ||
687 | new Equality(body, var__virtual_0_, var_o2); | ||
688 | bodies.add(body); | ||
689 | } | ||
690 | return bodies; | ||
691 | } | ||
692 | } | ||
693 | } | ||
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 @@ | |||
1 | Manifest-Version: 1.0 | ||
2 | Bundle-ManifestVersion: 2 | ||
3 | Bundle-Name: hu.bme.mit.inf.dslreasoner.domains.cps | ||
4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.domains.cps; singleton:=true | ||
5 | Bundle-Version: 0.1.0.qualifier | ||
6 | Require-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..39b038d2 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF | |||
@@ -0,0 +1,25 @@ | |||
1 | Manifest-Version: 1.0 | ||
2 | Bundle-ManifestVersion: 2 | ||
3 | Bundle-Name: %pluginName | ||
4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.domains.satellite;singleton:=true | ||
5 | Bundle-Version: 0.1.0.qualifier | ||
6 | Bundle-ClassPath: . | ||
7 | Bundle-Vendor: %providerName | ||
8 | Bundle-Localization: plugin | ||
9 | Export-Package: hu.bme.mit.inf.dslreasoner.domains.satellite, | ||
10 | hu.bme.mit.inf.dslreasoner.domains.satellite.impl, | ||
11 | hu.bme.mit.inf.dslreasoner.domains.satellite.metrics, | ||
12 | hu.bme.mit.inf.dslreasoner.domains.satellite.queries, | ||
13 | hu.bme.mit.inf.dslreasoner.domains.satellite.runner, | ||
14 | hu.bme.mit.inf.dslreasoner.domains.satellite.util | ||
15 | Require-Bundle: org.eclipse.viatra.query.runtime, | ||
16 | org.eclipse.viatra.query.runtime.rete, | ||
17 | org.eclipse.viatra.query.runtime.localsearch, | ||
18 | org.eclipse.xtext.xbase.lib, | ||
19 | org.eclipse.emf.ecore;visibility:=reexport, | ||
20 | org.eclipse.core.runtime, | ||
21 | hu.bme.mit.inf.dslreasoner.application | ||
22 | Import-Package: org.apache.log4j | ||
23 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite | ||
24 | Bundle-ActivationPolicy: lazy | ||
25 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | ||
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 @@ | |||
1 | bin.includes = .,\ | ||
2 | model/,\ | ||
3 | META-INF/,\ | ||
4 | plugin.xml,\ | ||
5 | plugin.properties | ||
6 | jars.compile.order = . | ||
7 | source.. = ecore-gen/,\ | ||
8 | src-gen/,\ | ||
9 | src/,\ | ||
10 | xtend-gen/ | ||
11 | output.. = 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 @@ | |||
1 | import epackage "model/satellite.ecore" | ||
2 | import viatra "src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql" | ||
3 | |||
4 | generate { | ||
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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import java.util.Arrays; | ||
6 | import java.util.Collections; | ||
7 | import java.util.List; | ||
8 | |||
9 | import 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 | */ | ||
20 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import 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 | */ | ||
24 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import 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 | */ | ||
26 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import 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 | */ | ||
26 | public 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 | */ | ||
3 | package 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 | */ | ||
15 | public 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 | */ | ||
3 | package 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 | */ | ||
15 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import 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 | */ | ||
24 | public 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 | */ | ||
3 | package 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 | */ | ||
15 | public 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 | */ | ||
3 | package 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 | */ | ||
21 | public 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 | */ | ||
3 | package 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 | */ | ||
15 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import 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 | */ | ||
17 | public 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..958bbc08 --- /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,78 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import 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 | */ | ||
15 | public 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>Comm Subsystem</em>'. | ||
44 | * <!-- begin-user-doc --> | ||
45 | * <!-- end-user-doc --> | ||
46 | * @return a new object of class '<em>Comm Subsystem</em>'. | ||
47 | * @generated | ||
48 | */ | ||
49 | CommSubsystem createCommSubsystem(); | ||
50 | |||
51 | /** | ||
52 | * Returns a new object of class '<em>Directed Communication Link</em>'. | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <!-- end-user-doc --> | ||
55 | * @return a new object of class '<em>Directed Communication Link</em>'. | ||
56 | * @generated | ||
57 | */ | ||
58 | DirectedCommunicationLink createDirectedCommunicationLink(); | ||
59 | |||
60 | /** | ||
61 | * Returns a new object of class '<em>Interferometry Payload</em>'. | ||
62 | * <!-- begin-user-doc --> | ||
63 | * <!-- end-user-doc --> | ||
64 | * @return a new object of class '<em>Interferometry Payload</em>'. | ||
65 | * @generated | ||
66 | */ | ||
67 | InterferometryPayload createInterferometryPayload(); | ||
68 | |||
69 | /** | ||
70 | * Returns the package supported by this factory. | ||
71 | * <!-- begin-user-doc --> | ||
72 | * <!-- end-user-doc --> | ||
73 | * @return the package supported by this factory. | ||
74 | * @generated | ||
75 | */ | ||
76 | SatellitePackage getSatellitePackage(); | ||
77 | |||
78 | } //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..61da12a0 --- /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,970 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EAttribute; | ||
6 | import org.eclipse.emf.ecore.EClass; | ||
7 | import org.eclipse.emf.ecore.EEnum; | ||
8 | import org.eclipse.emf.ecore.EPackage; | ||
9 | import 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 | */ | ||
27 | public 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 feature id for the '<em><b>Kind</b></em>' attribute. | ||
292 | * <!-- begin-user-doc --> | ||
293 | * <!-- end-user-doc --> | ||
294 | * @generated | ||
295 | * @ordered | ||
296 | */ | ||
297 | int SPACECRAFT__KIND = COMMUNICATING_ELEMENT_FEATURE_COUNT + 1; | ||
298 | |||
299 | /** | ||
300 | * The number of structural features of the '<em>Spacecraft</em>' class. | ||
301 | * <!-- begin-user-doc --> | ||
302 | * <!-- end-user-doc --> | ||
303 | * @generated | ||
304 | * @ordered | ||
305 | */ | ||
306 | int SPACECRAFT_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 2; | ||
307 | |||
308 | /** | ||
309 | * The number of operations of the '<em>Spacecraft</em>' class. | ||
310 | * <!-- begin-user-doc --> | ||
311 | * <!-- end-user-doc --> | ||
312 | * @generated | ||
313 | * @ordered | ||
314 | */ | ||
315 | int SPACECRAFT_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0; | ||
316 | |||
317 | /** | ||
318 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class. | ||
319 | * <!-- begin-user-doc --> | ||
320 | * <!-- end-user-doc --> | ||
321 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl | ||
322 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommSubsystem() | ||
323 | * @generated | ||
324 | */ | ||
325 | int COMM_SUBSYSTEM = 5; | ||
326 | |||
327 | /** | ||
328 | * The feature id for the '<em><b>Band</b></em>' attribute. | ||
329 | * <!-- begin-user-doc --> | ||
330 | * <!-- end-user-doc --> | ||
331 | * @generated | ||
332 | * @ordered | ||
333 | */ | ||
334 | int COMM_SUBSYSTEM__BAND = 0; | ||
335 | |||
336 | /** | ||
337 | * The feature id for the '<em><b>Gain</b></em>' attribute. | ||
338 | * <!-- begin-user-doc --> | ||
339 | * <!-- end-user-doc --> | ||
340 | * @generated | ||
341 | * @ordered | ||
342 | */ | ||
343 | int COMM_SUBSYSTEM__GAIN = 1; | ||
344 | |||
345 | /** | ||
346 | * The number of structural features of the '<em>Comm Subsystem</em>' class. | ||
347 | * <!-- begin-user-doc --> | ||
348 | * <!-- end-user-doc --> | ||
349 | * @generated | ||
350 | * @ordered | ||
351 | */ | ||
352 | int COMM_SUBSYSTEM_FEATURE_COUNT = 2; | ||
353 | |||
354 | /** | ||
355 | * The number of operations of the '<em>Comm Subsystem</em>' class. | ||
356 | * <!-- begin-user-doc --> | ||
357 | * <!-- end-user-doc --> | ||
358 | * @generated | ||
359 | * @ordered | ||
360 | */ | ||
361 | int COMM_SUBSYSTEM_OPERATION_COUNT = 0; | ||
362 | |||
363 | /** | ||
364 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class. | ||
365 | * <!-- begin-user-doc --> | ||
366 | * <!-- end-user-doc --> | ||
367 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl | ||
368 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink() | ||
369 | * @generated | ||
370 | */ | ||
371 | int DIRECTED_COMMUNICATION_LINK = 6; | ||
372 | |||
373 | /** | ||
374 | * The feature id for the '<em><b>Source</b></em>' reference. | ||
375 | * <!-- begin-user-doc --> | ||
376 | * <!-- end-user-doc --> | ||
377 | * @generated | ||
378 | * @ordered | ||
379 | */ | ||
380 | int DIRECTED_COMMUNICATION_LINK__SOURCE = 0; | ||
381 | |||
382 | /** | ||
383 | * The feature id for the '<em><b>Target</b></em>' reference. | ||
384 | * <!-- begin-user-doc --> | ||
385 | * <!-- end-user-doc --> | ||
386 | * @generated | ||
387 | * @ordered | ||
388 | */ | ||
389 | int DIRECTED_COMMUNICATION_LINK__TARGET = 1; | ||
390 | |||
391 | /** | ||
392 | * The number of structural features of the '<em>Directed Communication Link</em>' class. | ||
393 | * <!-- begin-user-doc --> | ||
394 | * <!-- end-user-doc --> | ||
395 | * @generated | ||
396 | * @ordered | ||
397 | */ | ||
398 | int DIRECTED_COMMUNICATION_LINK_FEATURE_COUNT = 2; | ||
399 | |||
400 | /** | ||
401 | * The number of operations of the '<em>Directed Communication Link</em>' class. | ||
402 | * <!-- begin-user-doc --> | ||
403 | * <!-- end-user-doc --> | ||
404 | * @generated | ||
405 | * @ordered | ||
406 | */ | ||
407 | int DIRECTED_COMMUNICATION_LINK_OPERATION_COUNT = 0; | ||
408 | |||
409 | /** | ||
410 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl <em>Payload</em>}' class. | ||
411 | * <!-- begin-user-doc --> | ||
412 | * <!-- end-user-doc --> | ||
413 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl | ||
414 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getPayload() | ||
415 | * @generated | ||
416 | */ | ||
417 | int PAYLOAD = 7; | ||
418 | |||
419 | /** | ||
420 | * The number of structural features of the '<em>Payload</em>' class. | ||
421 | * <!-- begin-user-doc --> | ||
422 | * <!-- end-user-doc --> | ||
423 | * @generated | ||
424 | * @ordered | ||
425 | */ | ||
426 | int PAYLOAD_FEATURE_COUNT = 0; | ||
427 | |||
428 | /** | ||
429 | * The number of operations of the '<em>Payload</em>' class. | ||
430 | * <!-- begin-user-doc --> | ||
431 | * <!-- end-user-doc --> | ||
432 | * @generated | ||
433 | * @ordered | ||
434 | */ | ||
435 | int PAYLOAD_OPERATION_COUNT = 0; | ||
436 | |||
437 | /** | ||
438 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class. | ||
439 | * <!-- begin-user-doc --> | ||
440 | * <!-- end-user-doc --> | ||
441 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl | ||
442 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryPayload() | ||
443 | * @generated | ||
444 | */ | ||
445 | int INTERFEROMETRY_PAYLOAD = 8; | ||
446 | |||
447 | /** | ||
448 | * The number of structural features of the '<em>Interferometry Payload</em>' class. | ||
449 | * <!-- begin-user-doc --> | ||
450 | * <!-- end-user-doc --> | ||
451 | * @generated | ||
452 | * @ordered | ||
453 | */ | ||
454 | int INTERFEROMETRY_PAYLOAD_FEATURE_COUNT = PAYLOAD_FEATURE_COUNT + 0; | ||
455 | |||
456 | /** | ||
457 | * The number of operations of the '<em>Interferometry Payload</em>' class. | ||
458 | * <!-- begin-user-doc --> | ||
459 | * <!-- end-user-doc --> | ||
460 | * @generated | ||
461 | * @ordered | ||
462 | */ | ||
463 | int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0; | ||
464 | |||
465 | /** | ||
466 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum. | ||
467 | * <!-- begin-user-doc --> | ||
468 | * <!-- end-user-doc --> | ||
469 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand | ||
470 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand() | ||
471 | * @generated | ||
472 | */ | ||
473 | int TRANSCEIVER_BAND = 9; | ||
474 | |||
475 | /** | ||
476 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum. | ||
477 | * <!-- begin-user-doc --> | ||
478 | * <!-- end-user-doc --> | ||
479 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain | ||
480 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain() | ||
481 | * @generated | ||
482 | */ | ||
483 | int ANTENNA_GAIN = 10; | ||
484 | |||
485 | /** | ||
486 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. | ||
487 | * <!-- begin-user-doc --> | ||
488 | * <!-- end-user-doc --> | ||
489 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
490 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraftKind() | ||
491 | * @generated | ||
492 | */ | ||
493 | int SPACECRAFT_KIND = 11; | ||
494 | |||
495 | /** | ||
496 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'. | ||
497 | * <!-- begin-user-doc --> | ||
498 | * <!-- end-user-doc --> | ||
499 | * @return the meta object for class '<em>Constellation Mission</em>'. | ||
500 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission | ||
501 | * @generated | ||
502 | */ | ||
503 | EClass getConstellationMission(); | ||
504 | |||
505 | /** | ||
506 | * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}'. | ||
507 | * <!-- begin-user-doc --> | ||
508 | * <!-- end-user-doc --> | ||
509 | * @return the meta object for the containment reference '<em>Ground Station Network</em>'. | ||
510 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork() | ||
511 | * @see #getConstellationMission() | ||
512 | * @generated | ||
513 | */ | ||
514 | EReference getConstellationMission_GroundStationNetwork(); | ||
515 | |||
516 | /** | ||
517 | * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}'. | ||
518 | * <!-- begin-user-doc --> | ||
519 | * <!-- end-user-doc --> | ||
520 | * @return the meta object for the containment reference list '<em>Spacecraft</em>'. | ||
521 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft() | ||
522 | * @see #getConstellationMission() | ||
523 | * @generated | ||
524 | */ | ||
525 | EReference getConstellationMission_Spacecraft(); | ||
526 | |||
527 | /** | ||
528 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission <em>Interferometry Mission</em>}'. | ||
529 | * <!-- begin-user-doc --> | ||
530 | * <!-- end-user-doc --> | ||
531 | * @return the meta object for class '<em>Interferometry Mission</em>'. | ||
532 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission | ||
533 | * @generated | ||
534 | */ | ||
535 | EClass getInterferometryMission(); | ||
536 | |||
537 | /** | ||
538 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'. | ||
539 | * <!-- begin-user-doc --> | ||
540 | * <!-- end-user-doc --> | ||
541 | * @return the meta object for the attribute '<em>Observation Time</em>'. | ||
542 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime() | ||
543 | * @see #getInterferometryMission() | ||
544 | * @generated | ||
545 | */ | ||
546 | EAttribute getInterferometryMission_ObservationTime(); | ||
547 | |||
548 | /** | ||
549 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement <em>Communicating Element</em>}'. | ||
550 | * <!-- begin-user-doc --> | ||
551 | * <!-- end-user-doc --> | ||
552 | * @return the meta object for class '<em>Communicating Element</em>'. | ||
553 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement | ||
554 | * @generated | ||
555 | */ | ||
556 | EClass getCommunicatingElement(); | ||
557 | |||
558 | /** | ||
559 | * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}'. | ||
560 | * <!-- begin-user-doc --> | ||
561 | * <!-- end-user-doc --> | ||
562 | * @return the meta object for the containment reference list '<em>Comm Subsystem</em>'. | ||
563 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem() | ||
564 | * @see #getCommunicatingElement() | ||
565 | * @generated | ||
566 | */ | ||
567 | EReference getCommunicatingElement_CommSubsystem(); | ||
568 | |||
569 | /** | ||
570 | * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}'. | ||
571 | * <!-- begin-user-doc --> | ||
572 | * <!-- end-user-doc --> | ||
573 | * @return the meta object for the containment reference '<em>Communication Link</em>'. | ||
574 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink() | ||
575 | * @see #getCommunicatingElement() | ||
576 | * @generated | ||
577 | */ | ||
578 | EReference getCommunicatingElement_CommunicationLink(); | ||
579 | |||
580 | /** | ||
581 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork <em>Ground Station Network</em>}'. | ||
582 | * <!-- begin-user-doc --> | ||
583 | * <!-- end-user-doc --> | ||
584 | * @return the meta object for class '<em>Ground Station Network</em>'. | ||
585 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork | ||
586 | * @generated | ||
587 | */ | ||
588 | EClass getGroundStationNetwork(); | ||
589 | |||
590 | /** | ||
591 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft <em>Spacecraft</em>}'. | ||
592 | * <!-- begin-user-doc --> | ||
593 | * <!-- end-user-doc --> | ||
594 | * @return the meta object for class '<em>Spacecraft</em>'. | ||
595 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft | ||
596 | * @generated | ||
597 | */ | ||
598 | EClass getSpacecraft(); | ||
599 | |||
600 | /** | ||
601 | * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload <em>Payload</em>}'. | ||
602 | * <!-- begin-user-doc --> | ||
603 | * <!-- end-user-doc --> | ||
604 | * @return the meta object for the containment reference '<em>Payload</em>'. | ||
605 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload() | ||
606 | * @see #getSpacecraft() | ||
607 | * @generated | ||
608 | */ | ||
609 | EReference getSpacecraft_Payload(); | ||
610 | |||
611 | /** | ||
612 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind <em>Kind</em>}'. | ||
613 | * <!-- begin-user-doc --> | ||
614 | * <!-- end-user-doc --> | ||
615 | * @return the meta object for the attribute '<em>Kind</em>'. | ||
616 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind() | ||
617 | * @see #getSpacecraft() | ||
618 | * @generated | ||
619 | */ | ||
620 | EAttribute getSpacecraft_Kind(); | ||
621 | |||
622 | /** | ||
623 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem <em>Comm Subsystem</em>}'. | ||
624 | * <!-- begin-user-doc --> | ||
625 | * <!-- end-user-doc --> | ||
626 | * @return the meta object for class '<em>Comm Subsystem</em>'. | ||
627 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem | ||
628 | * @generated | ||
629 | */ | ||
630 | EClass getCommSubsystem(); | ||
631 | |||
632 | /** | ||
633 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand <em>Band</em>}'. | ||
634 | * <!-- begin-user-doc --> | ||
635 | * <!-- end-user-doc --> | ||
636 | * @return the meta object for the attribute '<em>Band</em>'. | ||
637 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand() | ||
638 | * @see #getCommSubsystem() | ||
639 | * @generated | ||
640 | */ | ||
641 | EAttribute getCommSubsystem_Band(); | ||
642 | |||
643 | /** | ||
644 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain <em>Gain</em>}'. | ||
645 | * <!-- begin-user-doc --> | ||
646 | * <!-- end-user-doc --> | ||
647 | * @return the meta object for the attribute '<em>Gain</em>'. | ||
648 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain() | ||
649 | * @see #getCommSubsystem() | ||
650 | * @generated | ||
651 | */ | ||
652 | EAttribute getCommSubsystem_Gain(); | ||
653 | |||
654 | /** | ||
655 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'. | ||
656 | * <!-- begin-user-doc --> | ||
657 | * <!-- end-user-doc --> | ||
658 | * @return the meta object for class '<em>Directed Communication Link</em>'. | ||
659 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink | ||
660 | * @generated | ||
661 | */ | ||
662 | EClass getDirectedCommunicationLink(); | ||
663 | |||
664 | /** | ||
665 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource <em>Source</em>}'. | ||
666 | * <!-- begin-user-doc --> | ||
667 | * <!-- end-user-doc --> | ||
668 | * @return the meta object for the reference '<em>Source</em>'. | ||
669 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource() | ||
670 | * @see #getDirectedCommunicationLink() | ||
671 | * @generated | ||
672 | */ | ||
673 | EReference getDirectedCommunicationLink_Source(); | ||
674 | |||
675 | /** | ||
676 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget <em>Target</em>}'. | ||
677 | * <!-- begin-user-doc --> | ||
678 | * <!-- end-user-doc --> | ||
679 | * @return the meta object for the reference '<em>Target</em>'. | ||
680 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget() | ||
681 | * @see #getDirectedCommunicationLink() | ||
682 | * @generated | ||
683 | */ | ||
684 | EReference getDirectedCommunicationLink_Target(); | ||
685 | |||
686 | /** | ||
687 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Payload <em>Payload</em>}'. | ||
688 | * <!-- begin-user-doc --> | ||
689 | * <!-- end-user-doc --> | ||
690 | * @return the meta object for class '<em>Payload</em>'. | ||
691 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Payload | ||
692 | * @generated | ||
693 | */ | ||
694 | EClass getPayload(); | ||
695 | |||
696 | /** | ||
697 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload <em>Interferometry Payload</em>}'. | ||
698 | * <!-- begin-user-doc --> | ||
699 | * <!-- end-user-doc --> | ||
700 | * @return the meta object for class '<em>Interferometry Payload</em>'. | ||
701 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload | ||
702 | * @generated | ||
703 | */ | ||
704 | EClass getInterferometryPayload(); | ||
705 | |||
706 | /** | ||
707 | * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}'. | ||
708 | * <!-- begin-user-doc --> | ||
709 | * <!-- end-user-doc --> | ||
710 | * @return the meta object for enum '<em>Transceiver Band</em>'. | ||
711 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand | ||
712 | * @generated | ||
713 | */ | ||
714 | EEnum getTransceiverBand(); | ||
715 | |||
716 | /** | ||
717 | * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}'. | ||
718 | * <!-- begin-user-doc --> | ||
719 | * <!-- end-user-doc --> | ||
720 | * @return the meta object for enum '<em>Antenna Gain</em>'. | ||
721 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain | ||
722 | * @generated | ||
723 | */ | ||
724 | EEnum getAntennaGain(); | ||
725 | |||
726 | /** | ||
727 | * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}'. | ||
728 | * <!-- begin-user-doc --> | ||
729 | * <!-- end-user-doc --> | ||
730 | * @return the meta object for enum '<em>Spacecraft Kind</em>'. | ||
731 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
732 | * @generated | ||
733 | */ | ||
734 | EEnum getSpacecraftKind(); | ||
735 | |||
736 | /** | ||
737 | * Returns the factory that creates the instances of the model. | ||
738 | * <!-- begin-user-doc --> | ||
739 | * <!-- end-user-doc --> | ||
740 | * @return the factory that creates the instances of the model. | ||
741 | * @generated | ||
742 | */ | ||
743 | SatelliteFactory getSatelliteFactory(); | ||
744 | |||
745 | /** | ||
746 | * <!-- begin-user-doc --> | ||
747 | * Defines literals for the meta objects that represent | ||
748 | * <ul> | ||
749 | * <li>each class,</li> | ||
750 | * <li>each feature of each class,</li> | ||
751 | * <li>each operation of each class,</li> | ||
752 | * <li>each enum,</li> | ||
753 | * <li>and each data type</li> | ||
754 | * </ul> | ||
755 | * <!-- end-user-doc --> | ||
756 | * @generated | ||
757 | */ | ||
758 | interface Literals { | ||
759 | /** | ||
760 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class. | ||
761 | * <!-- begin-user-doc --> | ||
762 | * <!-- end-user-doc --> | ||
763 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl | ||
764 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getConstellationMission() | ||
765 | * @generated | ||
766 | */ | ||
767 | EClass CONSTELLATION_MISSION = eINSTANCE.getConstellationMission(); | ||
768 | |||
769 | /** | ||
770 | * The meta object literal for the '<em><b>Ground Station Network</b></em>' containment reference feature. | ||
771 | * <!-- begin-user-doc --> | ||
772 | * <!-- end-user-doc --> | ||
773 | * @generated | ||
774 | */ | ||
775 | EReference CONSTELLATION_MISSION__GROUND_STATION_NETWORK = eINSTANCE | ||
776 | .getConstellationMission_GroundStationNetwork(); | ||
777 | |||
778 | /** | ||
779 | * The meta object literal for the '<em><b>Spacecraft</b></em>' containment reference list feature. | ||
780 | * <!-- begin-user-doc --> | ||
781 | * <!-- end-user-doc --> | ||
782 | * @generated | ||
783 | */ | ||
784 | EReference CONSTELLATION_MISSION__SPACECRAFT = eINSTANCE.getConstellationMission_Spacecraft(); | ||
785 | |||
786 | /** | ||
787 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class. | ||
788 | * <!-- begin-user-doc --> | ||
789 | * <!-- end-user-doc --> | ||
790 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl | ||
791 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryMission() | ||
792 | * @generated | ||
793 | */ | ||
794 | EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission(); | ||
795 | |||
796 | /** | ||
797 | * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature. | ||
798 | * <!-- begin-user-doc --> | ||
799 | * <!-- end-user-doc --> | ||
800 | * @generated | ||
801 | */ | ||
802 | EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime(); | ||
803 | |||
804 | /** | ||
805 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class. | ||
806 | * <!-- begin-user-doc --> | ||
807 | * <!-- end-user-doc --> | ||
808 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl | ||
809 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommunicatingElement() | ||
810 | * @generated | ||
811 | */ | ||
812 | EClass COMMUNICATING_ELEMENT = eINSTANCE.getCommunicatingElement(); | ||
813 | |||
814 | /** | ||
815 | * The meta object literal for the '<em><b>Comm Subsystem</b></em>' containment reference list feature. | ||
816 | * <!-- begin-user-doc --> | ||
817 | * <!-- end-user-doc --> | ||
818 | * @generated | ||
819 | */ | ||
820 | EReference COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = eINSTANCE.getCommunicatingElement_CommSubsystem(); | ||
821 | |||
822 | /** | ||
823 | * The meta object literal for the '<em><b>Communication Link</b></em>' containment reference feature. | ||
824 | * <!-- begin-user-doc --> | ||
825 | * <!-- end-user-doc --> | ||
826 | * @generated | ||
827 | */ | ||
828 | EReference COMMUNICATING_ELEMENT__COMMUNICATION_LINK = eINSTANCE.getCommunicatingElement_CommunicationLink(); | ||
829 | |||
830 | /** | ||
831 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class. | ||
832 | * <!-- begin-user-doc --> | ||
833 | * <!-- end-user-doc --> | ||
834 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl | ||
835 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getGroundStationNetwork() | ||
836 | * @generated | ||
837 | */ | ||
838 | EClass GROUND_STATION_NETWORK = eINSTANCE.getGroundStationNetwork(); | ||
839 | |||
840 | /** | ||
841 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class. | ||
842 | * <!-- begin-user-doc --> | ||
843 | * <!-- end-user-doc --> | ||
844 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl | ||
845 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraft() | ||
846 | * @generated | ||
847 | */ | ||
848 | EClass SPACECRAFT = eINSTANCE.getSpacecraft(); | ||
849 | |||
850 | /** | ||
851 | * The meta object literal for the '<em><b>Payload</b></em>' containment reference feature. | ||
852 | * <!-- begin-user-doc --> | ||
853 | * <!-- end-user-doc --> | ||
854 | * @generated | ||
855 | */ | ||
856 | EReference SPACECRAFT__PAYLOAD = eINSTANCE.getSpacecraft_Payload(); | ||
857 | |||
858 | /** | ||
859 | * The meta object literal for the '<em><b>Kind</b></em>' attribute feature. | ||
860 | * <!-- begin-user-doc --> | ||
861 | * <!-- end-user-doc --> | ||
862 | * @generated | ||
863 | */ | ||
864 | EAttribute SPACECRAFT__KIND = eINSTANCE.getSpacecraft_Kind(); | ||
865 | |||
866 | /** | ||
867 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class. | ||
868 | * <!-- begin-user-doc --> | ||
869 | * <!-- end-user-doc --> | ||
870 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl | ||
871 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommSubsystem() | ||
872 | * @generated | ||
873 | */ | ||
874 | EClass COMM_SUBSYSTEM = eINSTANCE.getCommSubsystem(); | ||
875 | |||
876 | /** | ||
877 | * The meta object literal for the '<em><b>Band</b></em>' attribute feature. | ||
878 | * <!-- begin-user-doc --> | ||
879 | * <!-- end-user-doc --> | ||
880 | * @generated | ||
881 | */ | ||
882 | EAttribute COMM_SUBSYSTEM__BAND = eINSTANCE.getCommSubsystem_Band(); | ||
883 | |||
884 | /** | ||
885 | * The meta object literal for the '<em><b>Gain</b></em>' attribute feature. | ||
886 | * <!-- begin-user-doc --> | ||
887 | * <!-- end-user-doc --> | ||
888 | * @generated | ||
889 | */ | ||
890 | EAttribute COMM_SUBSYSTEM__GAIN = eINSTANCE.getCommSubsystem_Gain(); | ||
891 | |||
892 | /** | ||
893 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class. | ||
894 | * <!-- begin-user-doc --> | ||
895 | * <!-- end-user-doc --> | ||
896 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl | ||
897 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink() | ||
898 | * @generated | ||
899 | */ | ||
900 | EClass DIRECTED_COMMUNICATION_LINK = eINSTANCE.getDirectedCommunicationLink(); | ||
901 | |||
902 | /** | ||
903 | * The meta object literal for the '<em><b>Source</b></em>' reference feature. | ||
904 | * <!-- begin-user-doc --> | ||
905 | * <!-- end-user-doc --> | ||
906 | * @generated | ||
907 | */ | ||
908 | EReference DIRECTED_COMMUNICATION_LINK__SOURCE = eINSTANCE.getDirectedCommunicationLink_Source(); | ||
909 | |||
910 | /** | ||
911 | * The meta object literal for the '<em><b>Target</b></em>' reference feature. | ||
912 | * <!-- begin-user-doc --> | ||
913 | * <!-- end-user-doc --> | ||
914 | * @generated | ||
915 | */ | ||
916 | EReference DIRECTED_COMMUNICATION_LINK__TARGET = eINSTANCE.getDirectedCommunicationLink_Target(); | ||
917 | |||
918 | /** | ||
919 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl <em>Payload</em>}' class. | ||
920 | * <!-- begin-user-doc --> | ||
921 | * <!-- end-user-doc --> | ||
922 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl | ||
923 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getPayload() | ||
924 | * @generated | ||
925 | */ | ||
926 | EClass PAYLOAD = eINSTANCE.getPayload(); | ||
927 | |||
928 | /** | ||
929 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class. | ||
930 | * <!-- begin-user-doc --> | ||
931 | * <!-- end-user-doc --> | ||
932 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl | ||
933 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryPayload() | ||
934 | * @generated | ||
935 | */ | ||
936 | EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload(); | ||
937 | |||
938 | /** | ||
939 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum. | ||
940 | * <!-- begin-user-doc --> | ||
941 | * <!-- end-user-doc --> | ||
942 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand | ||
943 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand() | ||
944 | * @generated | ||
945 | */ | ||
946 | EEnum TRANSCEIVER_BAND = eINSTANCE.getTransceiverBand(); | ||
947 | |||
948 | /** | ||
949 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum. | ||
950 | * <!-- begin-user-doc --> | ||
951 | * <!-- end-user-doc --> | ||
952 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain | ||
953 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain() | ||
954 | * @generated | ||
955 | */ | ||
956 | EEnum ANTENNA_GAIN = eINSTANCE.getAntennaGain(); | ||
957 | |||
958 | /** | ||
959 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. | ||
960 | * <!-- begin-user-doc --> | ||
961 | * <!-- end-user-doc --> | ||
962 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
963 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraftKind() | ||
964 | * @generated | ||
965 | */ | ||
966 | EEnum SPACECRAFT_KIND = eINSTANCE.getSpacecraftKind(); | ||
967 | |||
968 | } | ||
969 | |||
970 | } //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 | */ | ||
3 | package 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 | */ | ||
15 | public 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..cc4b85a1 --- /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,78 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 | * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind <em>Kind</em>}</li> | ||
16 | * </ul> | ||
17 | * | ||
18 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft() | ||
19 | * @model abstract="true" | ||
20 | * @generated | ||
21 | */ | ||
22 | public interface Spacecraft extends CommunicatingElement { | ||
23 | /** | ||
24 | * Returns the value of the '<em><b>Payload</b></em>' containment reference. | ||
25 | * <!-- begin-user-doc --> | ||
26 | * <p> | ||
27 | * If the meaning of the '<em>Payload</em>' containment reference isn't clear, | ||
28 | * there really should be more of a description here... | ||
29 | * </p> | ||
30 | * <!-- end-user-doc --> | ||
31 | * @return the value of the '<em>Payload</em>' containment reference. | ||
32 | * @see #setPayload(Payload) | ||
33 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft_Payload() | ||
34 | * @model containment="true" | ||
35 | * @generated | ||
36 | */ | ||
37 | Payload getPayload(); | ||
38 | |||
39 | /** | ||
40 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload <em>Payload</em>}' containment reference. | ||
41 | * <!-- begin-user-doc --> | ||
42 | * <!-- end-user-doc --> | ||
43 | * @param value the new value of the '<em>Payload</em>' containment reference. | ||
44 | * @see #getPayload() | ||
45 | * @generated | ||
46 | */ | ||
47 | void setPayload(Payload value); | ||
48 | |||
49 | /** | ||
50 | * Returns the value of the '<em><b>Kind</b></em>' attribute. | ||
51 | * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind}. | ||
52 | * <!-- begin-user-doc --> | ||
53 | * <p> | ||
54 | * If the meaning of the '<em>Kind</em>' attribute isn't clear, | ||
55 | * there really should be more of a description here... | ||
56 | * </p> | ||
57 | * <!-- end-user-doc --> | ||
58 | * @return the value of the '<em>Kind</em>' attribute. | ||
59 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
60 | * @see #setKind(SpacecraftKind) | ||
61 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft_Kind() | ||
62 | * @model required="true" | ||
63 | * @generated | ||
64 | */ | ||
65 | SpacecraftKind getKind(); | ||
66 | |||
67 | /** | ||
68 | * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind <em>Kind</em>}' attribute. | ||
69 | * <!-- begin-user-doc --> | ||
70 | * <!-- end-user-doc --> | ||
71 | * @param value the new value of the '<em>Kind</em>' attribute. | ||
72 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
73 | * @see #getKind() | ||
74 | * @generated | ||
75 | */ | ||
76 | void setKind(SpacecraftKind value); | ||
77 | |||
78 | } // Spacecraft | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java new file mode 100644 index 00000000..8be6abc1 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java | |||
@@ -0,0 +1,241 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import java.util.Arrays; | ||
6 | import java.util.Collections; | ||
7 | import java.util.List; | ||
8 | |||
9 | import org.eclipse.emf.common.util.Enumerator; | ||
10 | |||
11 | /** | ||
12 | * <!-- begin-user-doc --> | ||
13 | * A representation of the literals of the enumeration '<em><b>Spacecraft Kind</b></em>', | ||
14 | * and utility methods for working with them. | ||
15 | * <!-- end-user-doc --> | ||
16 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraftKind() | ||
17 | * @model | ||
18 | * @generated | ||
19 | */ | ||
20 | public enum SpacecraftKind implements Enumerator { | ||
21 | /** | ||
22 | * The '<em><b>Cube Sat3 U</b></em>' literal object. | ||
23 | * <!-- begin-user-doc --> | ||
24 | * <!-- end-user-doc --> | ||
25 | * @see #CUBE_SAT3_U_VALUE | ||
26 | * @generated | ||
27 | * @ordered | ||
28 | */ | ||
29 | CUBE_SAT3_U(0, "CubeSat3U", "CubeSat3U"), | ||
30 | |||
31 | /** | ||
32 | * The '<em><b>Cube Sat6 U</b></em>' literal object. | ||
33 | * <!-- begin-user-doc --> | ||
34 | * <!-- end-user-doc --> | ||
35 | * @see #CUBE_SAT6_U_VALUE | ||
36 | * @generated | ||
37 | * @ordered | ||
38 | */ | ||
39 | CUBE_SAT6_U(1, "CubeSat6U", "CubeSat6U"), | ||
40 | /** | ||
41 | * The '<em><b>Small Sat</b></em>' literal object. | ||
42 | * <!-- begin-user-doc --> | ||
43 | * <!-- end-user-doc --> | ||
44 | * @see #SMALL_SAT_VALUE | ||
45 | * @generated | ||
46 | * @ordered | ||
47 | */ | ||
48 | SMALL_SAT(2, "SmallSat", "SmallSat"); | ||
49 | |||
50 | /** | ||
51 | * The '<em><b>Cube Sat3 U</b></em>' literal value. | ||
52 | * <!-- begin-user-doc --> | ||
53 | * <p> | ||
54 | * If the meaning of '<em><b>Cube Sat3 U</b></em>' literal object isn't clear, | ||
55 | * there really should be more of a description here... | ||
56 | * </p> | ||
57 | * <!-- end-user-doc --> | ||
58 | * @see #CUBE_SAT3_U | ||
59 | * @model name="CubeSat3U" | ||
60 | * @generated | ||
61 | * @ordered | ||
62 | */ | ||
63 | public static final int CUBE_SAT3_U_VALUE = 0; | ||
64 | |||
65 | /** | ||
66 | * The '<em><b>Cube Sat6 U</b></em>' literal value. | ||
67 | * <!-- begin-user-doc --> | ||
68 | * <p> | ||
69 | * If the meaning of '<em><b>Cube Sat6 U</b></em>' literal object isn't clear, | ||
70 | * there really should be more of a description here... | ||
71 | * </p> | ||
72 | * <!-- end-user-doc --> | ||
73 | * @see #CUBE_SAT6_U | ||
74 | * @model name="CubeSat6U" | ||
75 | * @generated | ||
76 | * @ordered | ||
77 | */ | ||
78 | public static final int CUBE_SAT6_U_VALUE = 1; | ||
79 | |||
80 | /** | ||
81 | * The '<em><b>Small Sat</b></em>' literal value. | ||
82 | * <!-- begin-user-doc --> | ||
83 | * <p> | ||
84 | * If the meaning of '<em><b>Small Sat</b></em>' literal object isn't clear, | ||
85 | * there really should be more of a description here... | ||
86 | * </p> | ||
87 | * <!-- end-user-doc --> | ||
88 | * @see #SMALL_SAT | ||
89 | * @model name="SmallSat" | ||
90 | * @generated | ||
91 | * @ordered | ||
92 | */ | ||
93 | public static final int SMALL_SAT_VALUE = 2; | ||
94 | |||
95 | /** | ||
96 | * An array of all the '<em><b>Spacecraft Kind</b></em>' enumerators. | ||
97 | * <!-- begin-user-doc --> | ||
98 | * <!-- end-user-doc --> | ||
99 | * @generated | ||
100 | */ | ||
101 | private static final SpacecraftKind[] VALUES_ARRAY = new SpacecraftKind[] { CUBE_SAT3_U, CUBE_SAT6_U, SMALL_SAT, }; | ||
102 | |||
103 | /** | ||
104 | * A public read-only list of all the '<em><b>Spacecraft Kind</b></em>' enumerators. | ||
105 | * <!-- begin-user-doc --> | ||
106 | * <!-- end-user-doc --> | ||
107 | * @generated | ||
108 | */ | ||
109 | public static final List<SpacecraftKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); | ||
110 | |||
111 | /** | ||
112 | * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified literal value. | ||
113 | * <!-- begin-user-doc --> | ||
114 | * <!-- end-user-doc --> | ||
115 | * @param literal the literal. | ||
116 | * @return the matching enumerator or <code>null</code>. | ||
117 | * @generated | ||
118 | */ | ||
119 | public static SpacecraftKind get(String literal) { | ||
120 | for (int i = 0; i < VALUES_ARRAY.length; ++i) { | ||
121 | SpacecraftKind result = VALUES_ARRAY[i]; | ||
122 | if (result.toString().equals(literal)) { | ||
123 | return result; | ||
124 | } | ||
125 | } | ||
126 | return null; | ||
127 | } | ||
128 | |||
129 | /** | ||
130 | * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified name. | ||
131 | * <!-- begin-user-doc --> | ||
132 | * <!-- end-user-doc --> | ||
133 | * @param name the name. | ||
134 | * @return the matching enumerator or <code>null</code>. | ||
135 | * @generated | ||
136 | */ | ||
137 | public static SpacecraftKind getByName(String name) { | ||
138 | for (int i = 0; i < VALUES_ARRAY.length; ++i) { | ||
139 | SpacecraftKind result = VALUES_ARRAY[i]; | ||
140 | if (result.getName().equals(name)) { | ||
141 | return result; | ||
142 | } | ||
143 | } | ||
144 | return null; | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified integer value. | ||
149 | * <!-- begin-user-doc --> | ||
150 | * <!-- end-user-doc --> | ||
151 | * @param value the integer value. | ||
152 | * @return the matching enumerator or <code>null</code>. | ||
153 | * @generated | ||
154 | */ | ||
155 | public static SpacecraftKind get(int value) { | ||
156 | switch (value) { | ||
157 | case CUBE_SAT3_U_VALUE: | ||
158 | return CUBE_SAT3_U; | ||
159 | case CUBE_SAT6_U_VALUE: | ||
160 | return CUBE_SAT6_U; | ||
161 | case SMALL_SAT_VALUE: | ||
162 | return SMALL_SAT; | ||
163 | } | ||
164 | return null; | ||
165 | } | ||
166 | |||
167 | /** | ||
168 | * <!-- begin-user-doc --> | ||
169 | * <!-- end-user-doc --> | ||
170 | * @generated | ||
171 | */ | ||
172 | private final int value; | ||
173 | |||
174 | /** | ||
175 | * <!-- begin-user-doc --> | ||
176 | * <!-- end-user-doc --> | ||
177 | * @generated | ||
178 | */ | ||
179 | private final String name; | ||
180 | |||
181 | /** | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @generated | ||
185 | */ | ||
186 | private final String literal; | ||
187 | |||
188 | /** | ||
189 | * Only this class can construct instances. | ||
190 | * <!-- begin-user-doc --> | ||
191 | * <!-- end-user-doc --> | ||
192 | * @generated | ||
193 | */ | ||
194 | private SpacecraftKind(int value, String name, String literal) { | ||
195 | this.value = value; | ||
196 | this.name = name; | ||
197 | this.literal = literal; | ||
198 | } | ||
199 | |||
200 | /** | ||
201 | * <!-- begin-user-doc --> | ||
202 | * <!-- end-user-doc --> | ||
203 | * @generated | ||
204 | */ | ||
205 | @Override | ||
206 | public int getValue() { | ||
207 | return value; | ||
208 | } | ||
209 | |||
210 | /** | ||
211 | * <!-- begin-user-doc --> | ||
212 | * <!-- end-user-doc --> | ||
213 | * @generated | ||
214 | */ | ||
215 | @Override | ||
216 | public String getName() { | ||
217 | return name; | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * <!-- begin-user-doc --> | ||
222 | * <!-- end-user-doc --> | ||
223 | * @generated | ||
224 | */ | ||
225 | @Override | ||
226 | public String getLiteral() { | ||
227 | return literal; | ||
228 | } | ||
229 | |||
230 | /** | ||
231 | * Returns the literal value of the enumerator, which is its string representation. | ||
232 | * <!-- begin-user-doc --> | ||
233 | * <!-- end-user-doc --> | ||
234 | * @generated | ||
235 | */ | ||
236 | @Override | ||
237 | public String toString() { | ||
238 | return literal; | ||
239 | } | ||
240 | |||
241 | } //SpacecraftKind | ||
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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite; | ||
4 | |||
5 | import java.util.Arrays; | ||
6 | import java.util.Collections; | ||
7 | import java.util.List; | ||
8 | |||
9 | import 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 | */ | ||
20 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand; | ||
9 | |||
10 | import org.eclipse.emf.common.notify.Notification; | ||
11 | |||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | |||
14 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
15 | import 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 | */ | ||
31 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
9 | |||
10 | import java.util.Collection; | ||
11 | |||
12 | import org.eclipse.emf.common.notify.Notification; | ||
13 | import org.eclipse.emf.common.notify.NotificationChain; | ||
14 | |||
15 | import org.eclipse.emf.common.util.EList; | ||
16 | |||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.InternalEObject; | ||
19 | |||
20 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
21 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
22 | |||
23 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
24 | import 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 | */ | ||
40 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
9 | |||
10 | import java.util.Collection; | ||
11 | |||
12 | import org.eclipse.emf.common.notify.Notification; | ||
13 | import org.eclipse.emf.common.notify.NotificationChain; | ||
14 | |||
15 | import org.eclipse.emf.common.util.EList; | ||
16 | |||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.InternalEObject; | ||
19 | |||
20 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
21 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
22 | |||
23 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
24 | import 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 | */ | ||
40 | public 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/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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
8 | |||
9 | import org.eclipse.emf.common.notify.Notification; | ||
10 | |||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.emf.ecore.InternalEObject; | ||
13 | |||
14 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
15 | import 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 | */ | ||
31 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
7 | |||
8 | import org.eclipse.emf.common.notify.Notification; | ||
9 | |||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | |||
12 | import 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 | */ | ||
27 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
7 | |||
8 | import org.eclipse.emf.ecore.EClass; | ||
9 | |||
10 | import 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 | */ | ||
19 | public 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..0cb07cfa --- /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,255 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.*; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EClass; | ||
8 | import org.eclipse.emf.ecore.EDataType; | ||
9 | import org.eclipse.emf.ecore.EObject; | ||
10 | import org.eclipse.emf.ecore.EPackage; | ||
11 | |||
12 | import org.eclipse.emf.ecore.impl.EFactoryImpl; | ||
13 | |||
14 | import 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 | */ | ||
22 | public class SatelliteFactoryImpl extends EFactoryImpl implements SatelliteFactory { | ||
23 | /** | ||
24 | * Creates the default factory implementation. | ||
25 | * <!-- begin-user-doc --> | ||
26 | * <!-- end-user-doc --> | ||
27 | * @generated | ||
28 | */ | ||
29 | public static SatelliteFactory init() { | ||
30 | try { | ||
31 | SatelliteFactory theSatelliteFactory = (SatelliteFactory) EPackage.Registry.INSTANCE | ||
32 | .getEFactory(SatellitePackage.eNS_URI); | ||
33 | if (theSatelliteFactory != null) { | ||
34 | return theSatelliteFactory; | ||
35 | } | ||
36 | } catch (Exception exception) { | ||
37 | EcorePlugin.INSTANCE.log(exception); | ||
38 | } | ||
39 | return new SatelliteFactoryImpl(); | ||
40 | } | ||
41 | |||
42 | /** | ||
43 | * Creates an instance of the factory. | ||
44 | * <!-- begin-user-doc --> | ||
45 | * <!-- end-user-doc --> | ||
46 | * @generated | ||
47 | */ | ||
48 | public SatelliteFactoryImpl() { | ||
49 | super(); | ||
50 | } | ||
51 | |||
52 | /** | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <!-- end-user-doc --> | ||
55 | * @generated | ||
56 | */ | ||
57 | @Override | ||
58 | public EObject create(EClass eClass) { | ||
59 | switch (eClass.getClassifierID()) { | ||
60 | case SatellitePackage.INTERFEROMETRY_MISSION: | ||
61 | return createInterferometryMission(); | ||
62 | case SatellitePackage.GROUND_STATION_NETWORK: | ||
63 | return createGroundStationNetwork(); | ||
64 | case SatellitePackage.COMM_SUBSYSTEM: | ||
65 | return createCommSubsystem(); | ||
66 | case SatellitePackage.DIRECTED_COMMUNICATION_LINK: | ||
67 | return createDirectedCommunicationLink(); | ||
68 | case SatellitePackage.INTERFEROMETRY_PAYLOAD: | ||
69 | return createInterferometryPayload(); | ||
70 | default: | ||
71 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | /** | ||
76 | * <!-- begin-user-doc --> | ||
77 | * <!-- end-user-doc --> | ||
78 | * @generated | ||
79 | */ | ||
80 | @Override | ||
81 | public Object createFromString(EDataType eDataType, String initialValue) { | ||
82 | switch (eDataType.getClassifierID()) { | ||
83 | case SatellitePackage.TRANSCEIVER_BAND: | ||
84 | return createTransceiverBandFromString(eDataType, initialValue); | ||
85 | case SatellitePackage.ANTENNA_GAIN: | ||
86 | return createAntennaGainFromString(eDataType, initialValue); | ||
87 | case SatellitePackage.SPACECRAFT_KIND: | ||
88 | return createSpacecraftKindFromString(eDataType, initialValue); | ||
89 | default: | ||
90 | throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); | ||
91 | } | ||
92 | } | ||
93 | |||
94 | /** | ||
95 | * <!-- begin-user-doc --> | ||
96 | * <!-- end-user-doc --> | ||
97 | * @generated | ||
98 | */ | ||
99 | @Override | ||
100 | public String convertToString(EDataType eDataType, Object instanceValue) { | ||
101 | switch (eDataType.getClassifierID()) { | ||
102 | case SatellitePackage.TRANSCEIVER_BAND: | ||
103 | return convertTransceiverBandToString(eDataType, instanceValue); | ||
104 | case SatellitePackage.ANTENNA_GAIN: | ||
105 | return convertAntennaGainToString(eDataType, instanceValue); | ||
106 | case SatellitePackage.SPACECRAFT_KIND: | ||
107 | return convertSpacecraftKindToString(eDataType, instanceValue); | ||
108 | default: | ||
109 | throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); | ||
110 | } | ||
111 | } | ||
112 | |||
113 | /** | ||
114 | * <!-- begin-user-doc --> | ||
115 | * <!-- end-user-doc --> | ||
116 | * @generated | ||
117 | */ | ||
118 | @Override | ||
119 | public InterferometryMission createInterferometryMission() { | ||
120 | InterferometryMissionImpl interferometryMission = new InterferometryMissionImpl(); | ||
121 | return interferometryMission; | ||
122 | } | ||
123 | |||
124 | /** | ||
125 | * <!-- begin-user-doc --> | ||
126 | * <!-- end-user-doc --> | ||
127 | * @generated | ||
128 | */ | ||
129 | @Override | ||
130 | public GroundStationNetwork createGroundStationNetwork() { | ||
131 | GroundStationNetworkImpl groundStationNetwork = new GroundStationNetworkImpl(); | ||
132 | return groundStationNetwork; | ||
133 | } | ||
134 | |||
135 | /** | ||
136 | * <!-- begin-user-doc --> | ||
137 | * <!-- end-user-doc --> | ||
138 | * @generated | ||
139 | */ | ||
140 | @Override | ||
141 | public CommSubsystem createCommSubsystem() { | ||
142 | CommSubsystemImpl commSubsystem = new CommSubsystemImpl(); | ||
143 | return commSubsystem; | ||
144 | } | ||
145 | |||
146 | /** | ||
147 | * <!-- begin-user-doc --> | ||
148 | * <!-- end-user-doc --> | ||
149 | * @generated | ||
150 | */ | ||
151 | @Override | ||
152 | public DirectedCommunicationLink createDirectedCommunicationLink() { | ||
153 | DirectedCommunicationLinkImpl directedCommunicationLink = new DirectedCommunicationLinkImpl(); | ||
154 | return directedCommunicationLink; | ||
155 | } | ||
156 | |||
157 | /** | ||
158 | * <!-- begin-user-doc --> | ||
159 | * <!-- end-user-doc --> | ||
160 | * @generated | ||
161 | */ | ||
162 | @Override | ||
163 | public InterferometryPayload createInterferometryPayload() { | ||
164 | InterferometryPayloadImpl interferometryPayload = new InterferometryPayloadImpl(); | ||
165 | return interferometryPayload; | ||
166 | } | ||
167 | |||
168 | /** | ||
169 | * <!-- begin-user-doc --> | ||
170 | * <!-- end-user-doc --> | ||
171 | * @generated | ||
172 | */ | ||
173 | public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) { | ||
174 | TransceiverBand result = TransceiverBand.get(initialValue); | ||
175 | if (result == null) | ||
176 | throw new IllegalArgumentException( | ||
177 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
178 | return result; | ||
179 | } | ||
180 | |||
181 | /** | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @generated | ||
185 | */ | ||
186 | public String convertTransceiverBandToString(EDataType eDataType, Object instanceValue) { | ||
187 | return instanceValue == null ? null : instanceValue.toString(); | ||
188 | } | ||
189 | |||
190 | /** | ||
191 | * <!-- begin-user-doc --> | ||
192 | * <!-- end-user-doc --> | ||
193 | * @generated | ||
194 | */ | ||
195 | public AntennaGain createAntennaGainFromString(EDataType eDataType, String initialValue) { | ||
196 | AntennaGain result = AntennaGain.get(initialValue); | ||
197 | if (result == null) | ||
198 | throw new IllegalArgumentException( | ||
199 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
200 | return result; | ||
201 | } | ||
202 | |||
203 | /** | ||
204 | * <!-- begin-user-doc --> | ||
205 | * <!-- end-user-doc --> | ||
206 | * @generated | ||
207 | */ | ||
208 | public String convertAntennaGainToString(EDataType eDataType, Object instanceValue) { | ||
209 | return instanceValue == null ? null : instanceValue.toString(); | ||
210 | } | ||
211 | |||
212 | /** | ||
213 | * <!-- begin-user-doc --> | ||
214 | * <!-- end-user-doc --> | ||
215 | * @generated | ||
216 | */ | ||
217 | public SpacecraftKind createSpacecraftKindFromString(EDataType eDataType, String initialValue) { | ||
218 | SpacecraftKind result = SpacecraftKind.get(initialValue); | ||
219 | if (result == null) | ||
220 | throw new IllegalArgumentException( | ||
221 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
222 | return result; | ||
223 | } | ||
224 | |||
225 | /** | ||
226 | * <!-- begin-user-doc --> | ||
227 | * <!-- end-user-doc --> | ||
228 | * @generated | ||
229 | */ | ||
230 | public String convertSpacecraftKindToString(EDataType eDataType, Object instanceValue) { | ||
231 | return instanceValue == null ? null : instanceValue.toString(); | ||
232 | } | ||
233 | |||
234 | /** | ||
235 | * <!-- begin-user-doc --> | ||
236 | * <!-- end-user-doc --> | ||
237 | * @generated | ||
238 | */ | ||
239 | @Override | ||
240 | public SatellitePackage getSatellitePackage() { | ||
241 | return (SatellitePackage) getEPackage(); | ||
242 | } | ||
243 | |||
244 | /** | ||
245 | * <!-- begin-user-doc --> | ||
246 | * <!-- end-user-doc --> | ||
247 | * @deprecated | ||
248 | * @generated | ||
249 | */ | ||
250 | @Deprecated | ||
251 | public static SatellitePackage getPackage() { | ||
252 | return SatellitePackage.eINSTANCE; | ||
253 | } | ||
254 | |||
255 | } //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..48ba32b8 --- /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,589 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork; | ||
11 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission; | ||
12 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload; | ||
13 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload; | ||
14 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatelliteFactory; | ||
15 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
16 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
17 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind; | ||
18 | import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand; | ||
19 | |||
20 | import org.eclipse.emf.ecore.EAttribute; | ||
21 | import org.eclipse.emf.ecore.EClass; | ||
22 | import org.eclipse.emf.ecore.EEnum; | ||
23 | import org.eclipse.emf.ecore.EPackage; | ||
24 | import org.eclipse.emf.ecore.EReference; | ||
25 | |||
26 | import org.eclipse.emf.ecore.impl.EPackageImpl; | ||
27 | |||
28 | /** | ||
29 | * <!-- begin-user-doc --> | ||
30 | * An implementation of the model <b>Package</b>. | ||
31 | * <!-- end-user-doc --> | ||
32 | * @generated | ||
33 | */ | ||
34 | public class SatellitePackageImpl extends EPackageImpl implements SatellitePackage { | ||
35 | /** | ||
36 | * <!-- begin-user-doc --> | ||
37 | * <!-- end-user-doc --> | ||
38 | * @generated | ||
39 | */ | ||
40 | private EClass constellationMissionEClass = null; | ||
41 | |||
42 | /** | ||
43 | * <!-- begin-user-doc --> | ||
44 | * <!-- end-user-doc --> | ||
45 | * @generated | ||
46 | */ | ||
47 | private EClass interferometryMissionEClass = null; | ||
48 | |||
49 | /** | ||
50 | * <!-- begin-user-doc --> | ||
51 | * <!-- end-user-doc --> | ||
52 | * @generated | ||
53 | */ | ||
54 | private EClass communicatingElementEClass = null; | ||
55 | |||
56 | /** | ||
57 | * <!-- begin-user-doc --> | ||
58 | * <!-- end-user-doc --> | ||
59 | * @generated | ||
60 | */ | ||
61 | private EClass groundStationNetworkEClass = null; | ||
62 | |||
63 | /** | ||
64 | * <!-- begin-user-doc --> | ||
65 | * <!-- end-user-doc --> | ||
66 | * @generated | ||
67 | */ | ||
68 | private EClass spacecraftEClass = null; | ||
69 | |||
70 | /** | ||
71 | * <!-- begin-user-doc --> | ||
72 | * <!-- end-user-doc --> | ||
73 | * @generated | ||
74 | */ | ||
75 | private EClass commSubsystemEClass = null; | ||
76 | |||
77 | /** | ||
78 | * <!-- begin-user-doc --> | ||
79 | * <!-- end-user-doc --> | ||
80 | * @generated | ||
81 | */ | ||
82 | private EClass directedCommunicationLinkEClass = null; | ||
83 | |||
84 | /** | ||
85 | * <!-- begin-user-doc --> | ||
86 | * <!-- end-user-doc --> | ||
87 | * @generated | ||
88 | */ | ||
89 | private EClass payloadEClass = null; | ||
90 | |||
91 | /** | ||
92 | * <!-- begin-user-doc --> | ||
93 | * <!-- end-user-doc --> | ||
94 | * @generated | ||
95 | */ | ||
96 | private EClass interferometryPayloadEClass = null; | ||
97 | |||
98 | /** | ||
99 | * <!-- begin-user-doc --> | ||
100 | * <!-- end-user-doc --> | ||
101 | * @generated | ||
102 | */ | ||
103 | private EEnum transceiverBandEEnum = null; | ||
104 | |||
105 | /** | ||
106 | * <!-- begin-user-doc --> | ||
107 | * <!-- end-user-doc --> | ||
108 | * @generated | ||
109 | */ | ||
110 | private EEnum antennaGainEEnum = null; | ||
111 | |||
112 | /** | ||
113 | * <!-- begin-user-doc --> | ||
114 | * <!-- end-user-doc --> | ||
115 | * @generated | ||
116 | */ | ||
117 | private EEnum spacecraftKindEEnum = null; | ||
118 | |||
119 | /** | ||
120 | * Creates an instance of the model <b>Package</b>, registered with | ||
121 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package | ||
122 | * package URI value. | ||
123 | * <p>Note: the correct way to create the package is via the static | ||
124 | * factory method {@link #init init()}, which also performs | ||
125 | * initialization of the package, or returns the registered package, | ||
126 | * if one already exists. | ||
127 | * <!-- begin-user-doc --> | ||
128 | * <!-- end-user-doc --> | ||
129 | * @see org.eclipse.emf.ecore.EPackage.Registry | ||
130 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#eNS_URI | ||
131 | * @see #init() | ||
132 | * @generated | ||
133 | */ | ||
134 | private SatellitePackageImpl() { | ||
135 | super(eNS_URI, SatelliteFactory.eINSTANCE); | ||
136 | } | ||
137 | |||
138 | /** | ||
139 | * <!-- begin-user-doc --> | ||
140 | * <!-- end-user-doc --> | ||
141 | * @generated | ||
142 | */ | ||
143 | private static boolean isInited = false; | ||
144 | |||
145 | /** | ||
146 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. | ||
147 | * | ||
148 | * <p>This method is used to initialize {@link SatellitePackage#eINSTANCE} when that field is accessed. | ||
149 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. | ||
150 | * <!-- begin-user-doc --> | ||
151 | * <!-- end-user-doc --> | ||
152 | * @see #eNS_URI | ||
153 | * @see #createPackageContents() | ||
154 | * @see #initializePackageContents() | ||
155 | * @generated | ||
156 | */ | ||
157 | public static SatellitePackage init() { | ||
158 | if (isInited) | ||
159 | return (SatellitePackage) EPackage.Registry.INSTANCE.getEPackage(SatellitePackage.eNS_URI); | ||
160 | |||
161 | // Obtain or create and register package | ||
162 | Object registeredSatellitePackage = EPackage.Registry.INSTANCE.get(eNS_URI); | ||
163 | SatellitePackageImpl theSatellitePackage = registeredSatellitePackage instanceof SatellitePackageImpl | ||
164 | ? (SatellitePackageImpl) registeredSatellitePackage | ||
165 | : new SatellitePackageImpl(); | ||
166 | |||
167 | isInited = true; | ||
168 | |||
169 | // Create package meta-data objects | ||
170 | theSatellitePackage.createPackageContents(); | ||
171 | |||
172 | // Initialize created meta-data | ||
173 | theSatellitePackage.initializePackageContents(); | ||
174 | |||
175 | // Mark meta-data to indicate it can't be changed | ||
176 | theSatellitePackage.freeze(); | ||
177 | |||
178 | // Update the registry and return the package | ||
179 | EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, theSatellitePackage); | ||
180 | return theSatellitePackage; | ||
181 | } | ||
182 | |||
183 | /** | ||
184 | * <!-- begin-user-doc --> | ||
185 | * <!-- end-user-doc --> | ||
186 | * @generated | ||
187 | */ | ||
188 | @Override | ||
189 | public EClass getConstellationMission() { | ||
190 | return constellationMissionEClass; | ||
191 | } | ||
192 | |||
193 | /** | ||
194 | * <!-- begin-user-doc --> | ||
195 | * <!-- end-user-doc --> | ||
196 | * @generated | ||
197 | */ | ||
198 | @Override | ||
199 | public EReference getConstellationMission_GroundStationNetwork() { | ||
200 | return (EReference) constellationMissionEClass.getEStructuralFeatures().get(0); | ||
201 | } | ||
202 | |||
203 | /** | ||
204 | * <!-- begin-user-doc --> | ||
205 | * <!-- end-user-doc --> | ||
206 | * @generated | ||
207 | */ | ||
208 | @Override | ||
209 | public EReference getConstellationMission_Spacecraft() { | ||
210 | return (EReference) constellationMissionEClass.getEStructuralFeatures().get(1); | ||
211 | } | ||
212 | |||
213 | /** | ||
214 | * <!-- begin-user-doc --> | ||
215 | * <!-- end-user-doc --> | ||
216 | * @generated | ||
217 | */ | ||
218 | @Override | ||
219 | public EClass getInterferometryMission() { | ||
220 | return interferometryMissionEClass; | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * <!-- begin-user-doc --> | ||
225 | * <!-- end-user-doc --> | ||
226 | * @generated | ||
227 | */ | ||
228 | @Override | ||
229 | public EAttribute getInterferometryMission_ObservationTime() { | ||
230 | return (EAttribute) interferometryMissionEClass.getEStructuralFeatures().get(0); | ||
231 | } | ||
232 | |||
233 | /** | ||
234 | * <!-- begin-user-doc --> | ||
235 | * <!-- end-user-doc --> | ||
236 | * @generated | ||
237 | */ | ||
238 | @Override | ||
239 | public EClass getCommunicatingElement() { | ||
240 | return communicatingElementEClass; | ||
241 | } | ||
242 | |||
243 | /** | ||
244 | * <!-- begin-user-doc --> | ||
245 | * <!-- end-user-doc --> | ||
246 | * @generated | ||
247 | */ | ||
248 | @Override | ||
249 | public EReference getCommunicatingElement_CommSubsystem() { | ||
250 | return (EReference) communicatingElementEClass.getEStructuralFeatures().get(0); | ||
251 | } | ||
252 | |||
253 | /** | ||
254 | * <!-- begin-user-doc --> | ||
255 | * <!-- end-user-doc --> | ||
256 | * @generated | ||
257 | */ | ||
258 | @Override | ||
259 | public EReference getCommunicatingElement_CommunicationLink() { | ||
260 | return (EReference) communicatingElementEClass.getEStructuralFeatures().get(1); | ||
261 | } | ||
262 | |||
263 | /** | ||
264 | * <!-- begin-user-doc --> | ||
265 | * <!-- end-user-doc --> | ||
266 | * @generated | ||
267 | */ | ||
268 | @Override | ||
269 | public EClass getGroundStationNetwork() { | ||
270 | return groundStationNetworkEClass; | ||
271 | } | ||
272 | |||
273 | /** | ||
274 | * <!-- begin-user-doc --> | ||
275 | * <!-- end-user-doc --> | ||
276 | * @generated | ||
277 | */ | ||
278 | @Override | ||
279 | public EClass getSpacecraft() { | ||
280 | return spacecraftEClass; | ||
281 | } | ||
282 | |||
283 | /** | ||
284 | * <!-- begin-user-doc --> | ||
285 | * <!-- end-user-doc --> | ||
286 | * @generated | ||
287 | */ | ||
288 | @Override | ||
289 | public EReference getSpacecraft_Payload() { | ||
290 | return (EReference) spacecraftEClass.getEStructuralFeatures().get(0); | ||
291 | } | ||
292 | |||
293 | /** | ||
294 | * <!-- begin-user-doc --> | ||
295 | * <!-- end-user-doc --> | ||
296 | * @generated | ||
297 | */ | ||
298 | @Override | ||
299 | public EAttribute getSpacecraft_Kind() { | ||
300 | return (EAttribute) spacecraftEClass.getEStructuralFeatures().get(1); | ||
301 | } | ||
302 | |||
303 | /** | ||
304 | * <!-- begin-user-doc --> | ||
305 | * <!-- end-user-doc --> | ||
306 | * @generated | ||
307 | */ | ||
308 | @Override | ||
309 | public EClass getCommSubsystem() { | ||
310 | return commSubsystemEClass; | ||
311 | } | ||
312 | |||
313 | /** | ||
314 | * <!-- begin-user-doc --> | ||
315 | * <!-- end-user-doc --> | ||
316 | * @generated | ||
317 | */ | ||
318 | @Override | ||
319 | public EAttribute getCommSubsystem_Band() { | ||
320 | return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(0); | ||
321 | } | ||
322 | |||
323 | /** | ||
324 | * <!-- begin-user-doc --> | ||
325 | * <!-- end-user-doc --> | ||
326 | * @generated | ||
327 | */ | ||
328 | @Override | ||
329 | public EAttribute getCommSubsystem_Gain() { | ||
330 | return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(1); | ||
331 | } | ||
332 | |||
333 | /** | ||
334 | * <!-- begin-user-doc --> | ||
335 | * <!-- end-user-doc --> | ||
336 | * @generated | ||
337 | */ | ||
338 | @Override | ||
339 | public EClass getDirectedCommunicationLink() { | ||
340 | return directedCommunicationLinkEClass; | ||
341 | } | ||
342 | |||
343 | /** | ||
344 | * <!-- begin-user-doc --> | ||
345 | * <!-- end-user-doc --> | ||
346 | * @generated | ||
347 | */ | ||
348 | @Override | ||
349 | public EReference getDirectedCommunicationLink_Source() { | ||
350 | return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(0); | ||
351 | } | ||
352 | |||
353 | /** | ||
354 | * <!-- begin-user-doc --> | ||
355 | * <!-- end-user-doc --> | ||
356 | * @generated | ||
357 | */ | ||
358 | @Override | ||
359 | public EReference getDirectedCommunicationLink_Target() { | ||
360 | return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(1); | ||
361 | } | ||
362 | |||
363 | /** | ||
364 | * <!-- begin-user-doc --> | ||
365 | * <!-- end-user-doc --> | ||
366 | * @generated | ||
367 | */ | ||
368 | @Override | ||
369 | public EClass getPayload() { | ||
370 | return payloadEClass; | ||
371 | } | ||
372 | |||
373 | /** | ||
374 | * <!-- begin-user-doc --> | ||
375 | * <!-- end-user-doc --> | ||
376 | * @generated | ||
377 | */ | ||
378 | @Override | ||
379 | public EClass getInterferometryPayload() { | ||
380 | return interferometryPayloadEClass; | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * <!-- begin-user-doc --> | ||
385 | * <!-- end-user-doc --> | ||
386 | * @generated | ||
387 | */ | ||
388 | @Override | ||
389 | public EEnum getTransceiverBand() { | ||
390 | return transceiverBandEEnum; | ||
391 | } | ||
392 | |||
393 | /** | ||
394 | * <!-- begin-user-doc --> | ||
395 | * <!-- end-user-doc --> | ||
396 | * @generated | ||
397 | */ | ||
398 | @Override | ||
399 | public EEnum getAntennaGain() { | ||
400 | return antennaGainEEnum; | ||
401 | } | ||
402 | |||
403 | /** | ||
404 | * <!-- begin-user-doc --> | ||
405 | * <!-- end-user-doc --> | ||
406 | * @generated | ||
407 | */ | ||
408 | @Override | ||
409 | public EEnum getSpacecraftKind() { | ||
410 | return spacecraftKindEEnum; | ||
411 | } | ||
412 | |||
413 | /** | ||
414 | * <!-- begin-user-doc --> | ||
415 | * <!-- end-user-doc --> | ||
416 | * @generated | ||
417 | */ | ||
418 | @Override | ||
419 | public SatelliteFactory getSatelliteFactory() { | ||
420 | return (SatelliteFactory) getEFactoryInstance(); | ||
421 | } | ||
422 | |||
423 | /** | ||
424 | * <!-- begin-user-doc --> | ||
425 | * <!-- end-user-doc --> | ||
426 | * @generated | ||
427 | */ | ||
428 | private boolean isCreated = false; | ||
429 | |||
430 | /** | ||
431 | * Creates the meta-model objects for the package. This method is | ||
432 | * guarded to have no affect on any invocation but its first. | ||
433 | * <!-- begin-user-doc --> | ||
434 | * <!-- end-user-doc --> | ||
435 | * @generated | ||
436 | */ | ||
437 | public void createPackageContents() { | ||
438 | if (isCreated) | ||
439 | return; | ||
440 | isCreated = true; | ||
441 | |||
442 | // Create classes and their features | ||
443 | constellationMissionEClass = createEClass(CONSTELLATION_MISSION); | ||
444 | createEReference(constellationMissionEClass, CONSTELLATION_MISSION__GROUND_STATION_NETWORK); | ||
445 | createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT); | ||
446 | |||
447 | interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION); | ||
448 | createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME); | ||
449 | |||
450 | communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT); | ||
451 | createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM); | ||
452 | createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMMUNICATION_LINK); | ||
453 | |||
454 | groundStationNetworkEClass = createEClass(GROUND_STATION_NETWORK); | ||
455 | |||
456 | spacecraftEClass = createEClass(SPACECRAFT); | ||
457 | createEReference(spacecraftEClass, SPACECRAFT__PAYLOAD); | ||
458 | createEAttribute(spacecraftEClass, SPACECRAFT__KIND); | ||
459 | |||
460 | commSubsystemEClass = createEClass(COMM_SUBSYSTEM); | ||
461 | createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__BAND); | ||
462 | createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__GAIN); | ||
463 | |||
464 | directedCommunicationLinkEClass = createEClass(DIRECTED_COMMUNICATION_LINK); | ||
465 | createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__SOURCE); | ||
466 | createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__TARGET); | ||
467 | |||
468 | payloadEClass = createEClass(PAYLOAD); | ||
469 | |||
470 | interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD); | ||
471 | |||
472 | // Create enums | ||
473 | transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND); | ||
474 | antennaGainEEnum = createEEnum(ANTENNA_GAIN); | ||
475 | spacecraftKindEEnum = createEEnum(SPACECRAFT_KIND); | ||
476 | } | ||
477 | |||
478 | /** | ||
479 | * <!-- begin-user-doc --> | ||
480 | * <!-- end-user-doc --> | ||
481 | * @generated | ||
482 | */ | ||
483 | private boolean isInitialized = false; | ||
484 | |||
485 | /** | ||
486 | * Complete the initialization of the package and its meta-model. This | ||
487 | * method is guarded to have no affect on any invocation but its first. | ||
488 | * <!-- begin-user-doc --> | ||
489 | * <!-- end-user-doc --> | ||
490 | * @generated | ||
491 | */ | ||
492 | public void initializePackageContents() { | ||
493 | if (isInitialized) | ||
494 | return; | ||
495 | isInitialized = true; | ||
496 | |||
497 | // Initialize package | ||
498 | setName(eNAME); | ||
499 | setNsPrefix(eNS_PREFIX); | ||
500 | setNsURI(eNS_URI); | ||
501 | |||
502 | // Create type parameters | ||
503 | |||
504 | // Set bounds for type parameters | ||
505 | |||
506 | // Add supertypes to classes | ||
507 | interferometryMissionEClass.getESuperTypes().add(this.getConstellationMission()); | ||
508 | groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement()); | ||
509 | spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement()); | ||
510 | interferometryPayloadEClass.getESuperTypes().add(this.getPayload()); | ||
511 | |||
512 | // Initialize classes, features, and operations; add parameters | ||
513 | initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT, | ||
514 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
515 | initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null, | ||
516 | "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, | ||
517 | IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
518 | initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, 50, | ||
519 | ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, | ||
520 | !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
521 | |||
522 | initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT, | ||
523 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
524 | initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEFloat(), "observationTime", "2.0", | ||
525 | 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, | ||
526 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
527 | |||
528 | initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT, | ||
529 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
530 | initEReference(getCommunicatingElement_CommSubsystem(), this.getCommSubsystem(), null, "commSubsystem", null, 1, | ||
531 | 2, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, | ||
532 | !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
533 | initEReference(getCommunicatingElement_CommunicationLink(), this.getDirectedCommunicationLink(), null, | ||
534 | "communicationLink", null, 0, 1, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, | ||
535 | IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
536 | |||
537 | initEClass(groundStationNetworkEClass, GroundStationNetwork.class, "GroundStationNetwork", !IS_ABSTRACT, | ||
538 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
539 | |||
540 | initEClass(spacecraftEClass, Spacecraft.class, "Spacecraft", IS_ABSTRACT, !IS_INTERFACE, | ||
541 | IS_GENERATED_INSTANCE_CLASS); | ||
542 | initEReference(getSpacecraft_Payload(), this.getPayload(), null, "payload", null, 0, 1, Spacecraft.class, | ||
543 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, | ||
544 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
545 | initEAttribute(getSpacecraft_Kind(), this.getSpacecraftKind(), "kind", null, 1, 1, Spacecraft.class, | ||
546 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
547 | |||
548 | initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, | ||
549 | IS_GENERATED_INSTANCE_CLASS); | ||
550 | initEAttribute(getCommSubsystem_Band(), this.getTransceiverBand(), "band", null, 1, 1, CommSubsystem.class, | ||
551 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
552 | initEAttribute(getCommSubsystem_Gain(), this.getAntennaGain(), "gain", null, 1, 1, CommSubsystem.class, | ||
553 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
554 | |||
555 | initEClass(directedCommunicationLinkEClass, DirectedCommunicationLink.class, "DirectedCommunicationLink", | ||
556 | !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
557 | initEReference(getDirectedCommunicationLink_Source(), this.getCommSubsystem(), null, "source", null, 1, 1, | ||
558 | DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, | ||
559 | IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
560 | initEReference(getDirectedCommunicationLink_Target(), this.getCommSubsystem(), null, "target", null, 1, 1, | ||
561 | DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, | ||
562 | IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
563 | |||
564 | initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
565 | |||
566 | initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT, | ||
567 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
568 | |||
569 | // Initialize enums and add enum literals | ||
570 | initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand"); | ||
571 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF); | ||
572 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.X); | ||
573 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.KA); | ||
574 | |||
575 | initEEnum(antennaGainEEnum, AntennaGain.class, "AntennaGain"); | ||
576 | addEEnumLiteral(antennaGainEEnum, AntennaGain.LOW); | ||
577 | addEEnumLiteral(antennaGainEEnum, AntennaGain.MEDIUM); | ||
578 | addEEnumLiteral(antennaGainEEnum, AntennaGain.HIGH); | ||
579 | |||
580 | initEEnum(spacecraftKindEEnum, SpacecraftKind.class, "SpacecraftKind"); | ||
581 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT3_U); | ||
582 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT6_U); | ||
583 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.SMALL_SAT); | ||
584 | |||
585 | // Create resource | ||
586 | createResource(eNS_URI); | ||
587 | } | ||
588 | |||
589 | } //SatellitePackageImpl | ||
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..2135af2c --- /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,255 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
8 | |||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind; | ||
10 | import org.eclipse.emf.common.notify.Notification; | ||
11 | import org.eclipse.emf.common.notify.NotificationChain; | ||
12 | |||
13 | import org.eclipse.emf.ecore.EClass; | ||
14 | import org.eclipse.emf.ecore.InternalEObject; | ||
15 | |||
16 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
17 | |||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * An implementation of the model object '<em><b>Spacecraft</b></em>'. | ||
21 | * <!-- end-user-doc --> | ||
22 | * <p> | ||
23 | * The following features are implemented: | ||
24 | * </p> | ||
25 | * <ul> | ||
26 | * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl#getPayload <em>Payload</em>}</li> | ||
27 | * <li>{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl#getKind <em>Kind</em>}</li> | ||
28 | * </ul> | ||
29 | * | ||
30 | * @generated | ||
31 | */ | ||
32 | public abstract class SpacecraftImpl extends CommunicatingElementImpl implements Spacecraft { | ||
33 | /** | ||
34 | * The cached value of the '{@link #getPayload() <em>Payload</em>}' containment reference. | ||
35 | * <!-- begin-user-doc --> | ||
36 | * <!-- end-user-doc --> | ||
37 | * @see #getPayload() | ||
38 | * @generated | ||
39 | * @ordered | ||
40 | */ | ||
41 | protected Payload payload; | ||
42 | |||
43 | /** | ||
44 | * The default value of the '{@link #getKind() <em>Kind</em>}' attribute. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * <!-- end-user-doc --> | ||
47 | * @see #getKind() | ||
48 | * @generated | ||
49 | * @ordered | ||
50 | */ | ||
51 | protected static final SpacecraftKind KIND_EDEFAULT = SpacecraftKind.CUBE_SAT3_U; | ||
52 | /** | ||
53 | * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute. | ||
54 | * <!-- begin-user-doc --> | ||
55 | * <!-- end-user-doc --> | ||
56 | * @see #getKind() | ||
57 | * @generated | ||
58 | * @ordered | ||
59 | */ | ||
60 | protected SpacecraftKind kind = KIND_EDEFAULT; | ||
61 | |||
62 | /** | ||
63 | * <!-- begin-user-doc --> | ||
64 | * <!-- end-user-doc --> | ||
65 | * @generated | ||
66 | */ | ||
67 | protected SpacecraftImpl() { | ||
68 | super(); | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * <!-- begin-user-doc --> | ||
73 | * <!-- end-user-doc --> | ||
74 | * @generated | ||
75 | */ | ||
76 | @Override | ||
77 | protected EClass eStaticClass() { | ||
78 | return SatellitePackage.Literals.SPACECRAFT; | ||
79 | } | ||
80 | |||
81 | /** | ||
82 | * <!-- begin-user-doc --> | ||
83 | * <!-- end-user-doc --> | ||
84 | * @generated | ||
85 | */ | ||
86 | @Override | ||
87 | public Payload getPayload() { | ||
88 | return payload; | ||
89 | } | ||
90 | |||
91 | /** | ||
92 | * <!-- begin-user-doc --> | ||
93 | * <!-- end-user-doc --> | ||
94 | * @generated | ||
95 | */ | ||
96 | public NotificationChain basicSetPayload(Payload newPayload, NotificationChain msgs) { | ||
97 | Payload oldPayload = payload; | ||
98 | payload = newPayload; | ||
99 | if (eNotificationRequired()) { | ||
100 | ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, | ||
101 | SatellitePackage.SPACECRAFT__PAYLOAD, oldPayload, newPayload); | ||
102 | if (msgs == null) | ||
103 | msgs = notification; | ||
104 | else | ||
105 | msgs.add(notification); | ||
106 | } | ||
107 | return msgs; | ||
108 | } | ||
109 | |||
110 | /** | ||
111 | * <!-- begin-user-doc --> | ||
112 | * <!-- end-user-doc --> | ||
113 | * @generated | ||
114 | */ | ||
115 | @Override | ||
116 | public void setPayload(Payload newPayload) { | ||
117 | if (newPayload != payload) { | ||
118 | NotificationChain msgs = null; | ||
119 | if (payload != null) | ||
120 | msgs = ((InternalEObject) payload).eInverseRemove(this, | ||
121 | EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs); | ||
122 | if (newPayload != null) | ||
123 | msgs = ((InternalEObject) newPayload).eInverseAdd(this, | ||
124 | EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs); | ||
125 | msgs = basicSetPayload(newPayload, msgs); | ||
126 | if (msgs != null) | ||
127 | msgs.dispatch(); | ||
128 | } else if (eNotificationRequired()) | ||
129 | eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, newPayload, | ||
130 | newPayload)); | ||
131 | } | ||
132 | |||
133 | /** | ||
134 | * <!-- begin-user-doc --> | ||
135 | * <!-- end-user-doc --> | ||
136 | * @generated | ||
137 | */ | ||
138 | @Override | ||
139 | public SpacecraftKind getKind() { | ||
140 | return kind; | ||
141 | } | ||
142 | |||
143 | /** | ||
144 | * <!-- begin-user-doc --> | ||
145 | * <!-- end-user-doc --> | ||
146 | * @generated | ||
147 | */ | ||
148 | @Override | ||
149 | public void setKind(SpacecraftKind newKind) { | ||
150 | SpacecraftKind oldKind = kind; | ||
151 | kind = newKind == null ? KIND_EDEFAULT : newKind; | ||
152 | if (eNotificationRequired()) | ||
153 | eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__KIND, oldKind, kind)); | ||
154 | } | ||
155 | |||
156 | /** | ||
157 | * <!-- begin-user-doc --> | ||
158 | * <!-- end-user-doc --> | ||
159 | * @generated | ||
160 | */ | ||
161 | @Override | ||
162 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | ||
163 | switch (featureID) { | ||
164 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
165 | return basicSetPayload(null, msgs); | ||
166 | } | ||
167 | return super.eInverseRemove(otherEnd, featureID, msgs); | ||
168 | } | ||
169 | |||
170 | /** | ||
171 | * <!-- begin-user-doc --> | ||
172 | * <!-- end-user-doc --> | ||
173 | * @generated | ||
174 | */ | ||
175 | @Override | ||
176 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
177 | switch (featureID) { | ||
178 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
179 | return getPayload(); | ||
180 | case SatellitePackage.SPACECRAFT__KIND: | ||
181 | return getKind(); | ||
182 | } | ||
183 | return super.eGet(featureID, resolve, coreType); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * <!-- begin-user-doc --> | ||
188 | * <!-- end-user-doc --> | ||
189 | * @generated | ||
190 | */ | ||
191 | @Override | ||
192 | public void eSet(int featureID, Object newValue) { | ||
193 | switch (featureID) { | ||
194 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
195 | setPayload((Payload) newValue); | ||
196 | return; | ||
197 | case SatellitePackage.SPACECRAFT__KIND: | ||
198 | setKind((SpacecraftKind) newValue); | ||
199 | return; | ||
200 | } | ||
201 | super.eSet(featureID, newValue); | ||
202 | } | ||
203 | |||
204 | /** | ||
205 | * <!-- begin-user-doc --> | ||
206 | * <!-- end-user-doc --> | ||
207 | * @generated | ||
208 | */ | ||
209 | @Override | ||
210 | public void eUnset(int featureID) { | ||
211 | switch (featureID) { | ||
212 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
213 | setPayload((Payload) null); | ||
214 | return; | ||
215 | case SatellitePackage.SPACECRAFT__KIND: | ||
216 | setKind(KIND_EDEFAULT); | ||
217 | return; | ||
218 | } | ||
219 | super.eUnset(featureID); | ||
220 | } | ||
221 | |||
222 | /** | ||
223 | * <!-- begin-user-doc --> | ||
224 | * <!-- end-user-doc --> | ||
225 | * @generated | ||
226 | */ | ||
227 | @Override | ||
228 | public boolean eIsSet(int featureID) { | ||
229 | switch (featureID) { | ||
230 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
231 | return payload != null; | ||
232 | case SatellitePackage.SPACECRAFT__KIND: | ||
233 | return kind != KIND_EDEFAULT; | ||
234 | } | ||
235 | return super.eIsSet(featureID); | ||
236 | } | ||
237 | |||
238 | /** | ||
239 | * <!-- begin-user-doc --> | ||
240 | * <!-- end-user-doc --> | ||
241 | * @generated | ||
242 | */ | ||
243 | @Override | ||
244 | public String toString() { | ||
245 | if (eIsProxy()) | ||
246 | return super.toString(); | ||
247 | |||
248 | StringBuilder result = new StringBuilder(super.toString()); | ||
249 | result.append(" (kind: "); | ||
250 | result.append(kind); | ||
251 | result.append(')'); | ||
252 | return result.toString(); | ||
253 | } | ||
254 | |||
255 | } //SpacecraftImpl | ||
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..639a40b7 --- /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,271 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.util; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.*; | ||
6 | |||
7 | import org.eclipse.emf.common.notify.Adapter; | ||
8 | import org.eclipse.emf.common.notify.Notifier; | ||
9 | |||
10 | import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; | ||
11 | |||
12 | import 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 | */ | ||
22 | public class SatelliteAdapterFactory extends AdapterFactoryImpl { | ||
23 | /** | ||
24 | * The cached model package. | ||
25 | * <!-- begin-user-doc --> | ||
26 | * <!-- end-user-doc --> | ||
27 | * @generated | ||
28 | */ | ||
29 | protected static SatellitePackage modelPackage; | ||
30 | |||
31 | /** | ||
32 | * Creates an instance of the adapter factory. | ||
33 | * <!-- begin-user-doc --> | ||
34 | * <!-- end-user-doc --> | ||
35 | * @generated | ||
36 | */ | ||
37 | public SatelliteAdapterFactory() { | ||
38 | if (modelPackage == null) { | ||
39 | modelPackage = SatellitePackage.eINSTANCE; | ||
40 | } | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * Returns whether this factory is applicable for the type of the object. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. | ||
47 | * <!-- end-user-doc --> | ||
48 | * @return whether this factory is applicable for the type of the object. | ||
49 | * @generated | ||
50 | */ | ||
51 | @Override | ||
52 | public boolean isFactoryForType(Object object) { | ||
53 | if (object == modelPackage) { | ||
54 | return true; | ||
55 | } | ||
56 | if (object instanceof EObject) { | ||
57 | return ((EObject) object).eClass().getEPackage() == modelPackage; | ||
58 | } | ||
59 | return false; | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * The switch that delegates to the <code>createXXX</code> methods. | ||
64 | * <!-- begin-user-doc --> | ||
65 | * <!-- end-user-doc --> | ||
66 | * @generated | ||
67 | */ | ||
68 | protected SatelliteSwitch<Adapter> modelSwitch = new SatelliteSwitch<Adapter>() { | ||
69 | @Override | ||
70 | public Adapter caseConstellationMission(ConstellationMission object) { | ||
71 | return createConstellationMissionAdapter(); | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public Adapter caseInterferometryMission(InterferometryMission object) { | ||
76 | return createInterferometryMissionAdapter(); | ||
77 | } | ||
78 | |||
79 | @Override | ||
80 | public Adapter caseCommunicatingElement(CommunicatingElement object) { | ||
81 | return createCommunicatingElementAdapter(); | ||
82 | } | ||
83 | |||
84 | @Override | ||
85 | public Adapter caseGroundStationNetwork(GroundStationNetwork object) { | ||
86 | return createGroundStationNetworkAdapter(); | ||
87 | } | ||
88 | |||
89 | @Override | ||
90 | public Adapter caseSpacecraft(Spacecraft object) { | ||
91 | return createSpacecraftAdapter(); | ||
92 | } | ||
93 | |||
94 | @Override | ||
95 | public Adapter caseCommSubsystem(CommSubsystem object) { | ||
96 | return createCommSubsystemAdapter(); | ||
97 | } | ||
98 | |||
99 | @Override | ||
100 | public Adapter caseDirectedCommunicationLink(DirectedCommunicationLink object) { | ||
101 | return createDirectedCommunicationLinkAdapter(); | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public Adapter casePayload(Payload object) { | ||
106 | return createPayloadAdapter(); | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public Adapter caseInterferometryPayload(InterferometryPayload object) { | ||
111 | return createInterferometryPayloadAdapter(); | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public Adapter defaultCase(EObject object) { | ||
116 | return createEObjectAdapter(); | ||
117 | } | ||
118 | }; | ||
119 | |||
120 | /** | ||
121 | * Creates an adapter for the <code>target</code>. | ||
122 | * <!-- begin-user-doc --> | ||
123 | * <!-- end-user-doc --> | ||
124 | * @param target the object to adapt. | ||
125 | * @return the adapter for the <code>target</code>. | ||
126 | * @generated | ||
127 | */ | ||
128 | @Override | ||
129 | public Adapter createAdapter(Notifier target) { | ||
130 | return modelSwitch.doSwitch((EObject) target); | ||
131 | } | ||
132 | |||
133 | /** | ||
134 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'. | ||
135 | * <!-- begin-user-doc --> | ||
136 | * This default implementation returns null so that we can easily ignore cases; | ||
137 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
138 | * <!-- end-user-doc --> | ||
139 | * @return the new adapter. | ||
140 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission | ||
141 | * @generated | ||
142 | */ | ||
143 | public Adapter createConstellationMissionAdapter() { | ||
144 | return null; | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission <em>Interferometry Mission</em>}'. | ||
149 | * <!-- begin-user-doc --> | ||
150 | * This default implementation returns null so that we can easily ignore cases; | ||
151 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
152 | * <!-- end-user-doc --> | ||
153 | * @return the new adapter. | ||
154 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission | ||
155 | * @generated | ||
156 | */ | ||
157 | public Adapter createInterferometryMissionAdapter() { | ||
158 | return null; | ||
159 | } | ||
160 | |||
161 | /** | ||
162 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement <em>Communicating Element</em>}'. | ||
163 | * <!-- begin-user-doc --> | ||
164 | * This default implementation returns null so that we can easily ignore cases; | ||
165 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
166 | * <!-- end-user-doc --> | ||
167 | * @return the new adapter. | ||
168 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement | ||
169 | * @generated | ||
170 | */ | ||
171 | public Adapter createCommunicatingElementAdapter() { | ||
172 | return null; | ||
173 | } | ||
174 | |||
175 | /** | ||
176 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork <em>Ground Station Network</em>}'. | ||
177 | * <!-- begin-user-doc --> | ||
178 | * This default implementation returns null so that we can easily ignore cases; | ||
179 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
180 | * <!-- end-user-doc --> | ||
181 | * @return the new adapter. | ||
182 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork | ||
183 | * @generated | ||
184 | */ | ||
185 | public Adapter createGroundStationNetworkAdapter() { | ||
186 | return null; | ||
187 | } | ||
188 | |||
189 | /** | ||
190 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft <em>Spacecraft</em>}'. | ||
191 | * <!-- begin-user-doc --> | ||
192 | * This default implementation returns null so that we can easily ignore cases; | ||
193 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
194 | * <!-- end-user-doc --> | ||
195 | * @return the new adapter. | ||
196 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft | ||
197 | * @generated | ||
198 | */ | ||
199 | public Adapter createSpacecraftAdapter() { | ||
200 | return null; | ||
201 | } | ||
202 | |||
203 | /** | ||
204 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem <em>Comm Subsystem</em>}'. | ||
205 | * <!-- begin-user-doc --> | ||
206 | * This default implementation returns null so that we can easily ignore cases; | ||
207 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
208 | * <!-- end-user-doc --> | ||
209 | * @return the new adapter. | ||
210 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem | ||
211 | * @generated | ||
212 | */ | ||
213 | public Adapter createCommSubsystemAdapter() { | ||
214 | return null; | ||
215 | } | ||
216 | |||
217 | /** | ||
218 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'. | ||
219 | * <!-- begin-user-doc --> | ||
220 | * This default implementation returns null so that we can easily ignore cases; | ||
221 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
222 | * <!-- end-user-doc --> | ||
223 | * @return the new adapter. | ||
224 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink | ||
225 | * @generated | ||
226 | */ | ||
227 | public Adapter createDirectedCommunicationLinkAdapter() { | ||
228 | return null; | ||
229 | } | ||
230 | |||
231 | /** | ||
232 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Payload <em>Payload</em>}'. | ||
233 | * <!-- begin-user-doc --> | ||
234 | * This default implementation returns null so that we can easily ignore cases; | ||
235 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
236 | * <!-- end-user-doc --> | ||
237 | * @return the new adapter. | ||
238 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Payload | ||
239 | * @generated | ||
240 | */ | ||
241 | public Adapter createPayloadAdapter() { | ||
242 | return null; | ||
243 | } | ||
244 | |||
245 | /** | ||
246 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload <em>Interferometry Payload</em>}'. | ||
247 | * <!-- begin-user-doc --> | ||
248 | * This default implementation returns null so that we can easily ignore cases; | ||
249 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
250 | * <!-- end-user-doc --> | ||
251 | * @return the new adapter. | ||
252 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload | ||
253 | * @generated | ||
254 | */ | ||
255 | public Adapter createInterferometryPayloadAdapter() { | ||
256 | return null; | ||
257 | } | ||
258 | |||
259 | /** | ||
260 | * Creates a new adapter for the default case. | ||
261 | * <!-- begin-user-doc --> | ||
262 | * This default implementation returns null. | ||
263 | * <!-- end-user-doc --> | ||
264 | * @return the new adapter. | ||
265 | * @generated | ||
266 | */ | ||
267 | public Adapter createEObjectAdapter() { | ||
268 | return null; | ||
269 | } | ||
270 | |||
271 | } //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..e78a1cd2 --- /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,296 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.util; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.*; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | import org.eclipse.emf.ecore.EPackage; | ||
9 | |||
10 | import 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 | */ | ||
25 | public class SatelliteSwitch<T> extends Switch<T> { | ||
26 | /** | ||
27 | * The cached model package | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | protected static SatellitePackage modelPackage; | ||
33 | |||
34 | /** | ||
35 | * Creates an instance of the switch. | ||
36 | * <!-- begin-user-doc --> | ||
37 | * <!-- end-user-doc --> | ||
38 | * @generated | ||
39 | */ | ||
40 | public SatelliteSwitch() { | ||
41 | if (modelPackage == null) { | ||
42 | modelPackage = SatellitePackage.eINSTANCE; | ||
43 | } | ||
44 | } | ||
45 | |||
46 | /** | ||
47 | * Checks whether this is a switch for the given package. | ||
48 | * <!-- begin-user-doc --> | ||
49 | * <!-- end-user-doc --> | ||
50 | * @param ePackage the package in question. | ||
51 | * @return whether this is a switch for the given package. | ||
52 | * @generated | ||
53 | */ | ||
54 | @Override | ||
55 | protected boolean isSwitchFor(EPackage ePackage) { | ||
56 | return ePackage == modelPackage; | ||
57 | } | ||
58 | |||
59 | /** | ||
60 | * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. | ||
61 | * <!-- begin-user-doc --> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @return the first non-null result returned by a <code>caseXXX</code> call. | ||
64 | * @generated | ||
65 | */ | ||
66 | @Override | ||
67 | protected T doSwitch(int classifierID, EObject theEObject) { | ||
68 | switch (classifierID) { | ||
69 | case SatellitePackage.CONSTELLATION_MISSION: { | ||
70 | ConstellationMission constellationMission = (ConstellationMission) theEObject; | ||
71 | T result = caseConstellationMission(constellationMission); | ||
72 | if (result == null) | ||
73 | result = defaultCase(theEObject); | ||
74 | return result; | ||
75 | } | ||
76 | case SatellitePackage.INTERFEROMETRY_MISSION: { | ||
77 | InterferometryMission interferometryMission = (InterferometryMission) theEObject; | ||
78 | T result = caseInterferometryMission(interferometryMission); | ||
79 | if (result == null) | ||
80 | result = caseConstellationMission(interferometryMission); | ||
81 | if (result == null) | ||
82 | result = defaultCase(theEObject); | ||
83 | return result; | ||
84 | } | ||
85 | case SatellitePackage.COMMUNICATING_ELEMENT: { | ||
86 | CommunicatingElement communicatingElement = (CommunicatingElement) theEObject; | ||
87 | T result = caseCommunicatingElement(communicatingElement); | ||
88 | if (result == null) | ||
89 | result = defaultCase(theEObject); | ||
90 | return result; | ||
91 | } | ||
92 | case SatellitePackage.GROUND_STATION_NETWORK: { | ||
93 | GroundStationNetwork groundStationNetwork = (GroundStationNetwork) theEObject; | ||
94 | T result = caseGroundStationNetwork(groundStationNetwork); | ||
95 | if (result == null) | ||
96 | result = caseCommunicatingElement(groundStationNetwork); | ||
97 | if (result == null) | ||
98 | result = defaultCase(theEObject); | ||
99 | return result; | ||
100 | } | ||
101 | case SatellitePackage.SPACECRAFT: { | ||
102 | Spacecraft spacecraft = (Spacecraft) theEObject; | ||
103 | T result = caseSpacecraft(spacecraft); | ||
104 | if (result == null) | ||
105 | result = caseCommunicatingElement(spacecraft); | ||
106 | if (result == null) | ||
107 | result = defaultCase(theEObject); | ||
108 | return result; | ||
109 | } | ||
110 | case SatellitePackage.COMM_SUBSYSTEM: { | ||
111 | CommSubsystem commSubsystem = (CommSubsystem) theEObject; | ||
112 | T result = caseCommSubsystem(commSubsystem); | ||
113 | if (result == null) | ||
114 | result = defaultCase(theEObject); | ||
115 | return result; | ||
116 | } | ||
117 | case SatellitePackage.DIRECTED_COMMUNICATION_LINK: { | ||
118 | DirectedCommunicationLink directedCommunicationLink = (DirectedCommunicationLink) theEObject; | ||
119 | T result = caseDirectedCommunicationLink(directedCommunicationLink); | ||
120 | if (result == null) | ||
121 | result = defaultCase(theEObject); | ||
122 | return result; | ||
123 | } | ||
124 | case SatellitePackage.PAYLOAD: { | ||
125 | Payload payload = (Payload) theEObject; | ||
126 | T result = casePayload(payload); | ||
127 | if (result == null) | ||
128 | result = defaultCase(theEObject); | ||
129 | return result; | ||
130 | } | ||
131 | case SatellitePackage.INTERFEROMETRY_PAYLOAD: { | ||
132 | InterferometryPayload interferometryPayload = (InterferometryPayload) theEObject; | ||
133 | T result = caseInterferometryPayload(interferometryPayload); | ||
134 | if (result == null) | ||
135 | result = casePayload(interferometryPayload); | ||
136 | if (result == null) | ||
137 | result = defaultCase(theEObject); | ||
138 | return result; | ||
139 | } | ||
140 | default: | ||
141 | return defaultCase(theEObject); | ||
142 | } | ||
143 | } | ||
144 | |||
145 | /** | ||
146 | * Returns the result of interpreting the object as an instance of '<em>Constellation Mission</em>'. | ||
147 | * <!-- begin-user-doc --> | ||
148 | * This implementation returns null; | ||
149 | * returning a non-null result will terminate the switch. | ||
150 | * <!-- end-user-doc --> | ||
151 | * @param object the target of the switch. | ||
152 | * @return the result of interpreting the object as an instance of '<em>Constellation Mission</em>'. | ||
153 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
154 | * @generated | ||
155 | */ | ||
156 | public T caseConstellationMission(ConstellationMission object) { | ||
157 | return null; | ||
158 | } | ||
159 | |||
160 | /** | ||
161 | * Returns the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'. | ||
162 | * <!-- begin-user-doc --> | ||
163 | * This implementation returns null; | ||
164 | * returning a non-null result will terminate the switch. | ||
165 | * <!-- end-user-doc --> | ||
166 | * @param object the target of the switch. | ||
167 | * @return the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'. | ||
168 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
169 | * @generated | ||
170 | */ | ||
171 | public T caseInterferometryMission(InterferometryMission object) { | ||
172 | return null; | ||
173 | } | ||
174 | |||
175 | /** | ||
176 | * Returns the result of interpreting the object as an instance of '<em>Communicating Element</em>'. | ||
177 | * <!-- begin-user-doc --> | ||
178 | * This implementation returns null; | ||
179 | * returning a non-null result will terminate the switch. | ||
180 | * <!-- end-user-doc --> | ||
181 | * @param object the target of the switch. | ||
182 | * @return the result of interpreting the object as an instance of '<em>Communicating Element</em>'. | ||
183 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
184 | * @generated | ||
185 | */ | ||
186 | public T caseCommunicatingElement(CommunicatingElement object) { | ||
187 | return null; | ||
188 | } | ||
189 | |||
190 | /** | ||
191 | * Returns the result of interpreting the object as an instance of '<em>Ground Station Network</em>'. | ||
192 | * <!-- begin-user-doc --> | ||
193 | * This implementation returns null; | ||
194 | * returning a non-null result will terminate the switch. | ||
195 | * <!-- end-user-doc --> | ||
196 | * @param object the target of the switch. | ||
197 | * @return the result of interpreting the object as an instance of '<em>Ground Station Network</em>'. | ||
198 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
199 | * @generated | ||
200 | */ | ||
201 | public T caseGroundStationNetwork(GroundStationNetwork object) { | ||
202 | return null; | ||
203 | } | ||
204 | |||
205 | /** | ||
206 | * Returns the result of interpreting the object as an instance of '<em>Spacecraft</em>'. | ||
207 | * <!-- begin-user-doc --> | ||
208 | * This implementation returns null; | ||
209 | * returning a non-null result will terminate the switch. | ||
210 | * <!-- end-user-doc --> | ||
211 | * @param object the target of the switch. | ||
212 | * @return the result of interpreting the object as an instance of '<em>Spacecraft</em>'. | ||
213 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
214 | * @generated | ||
215 | */ | ||
216 | public T caseSpacecraft(Spacecraft object) { | ||
217 | return null; | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * Returns the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'. | ||
222 | * <!-- begin-user-doc --> | ||
223 | * This implementation returns null; | ||
224 | * returning a non-null result will terminate the switch. | ||
225 | * <!-- end-user-doc --> | ||
226 | * @param object the target of the switch. | ||
227 | * @return the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'. | ||
228 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
229 | * @generated | ||
230 | */ | ||
231 | public T caseCommSubsystem(CommSubsystem object) { | ||
232 | return null; | ||
233 | } | ||
234 | |||
235 | /** | ||
236 | * Returns the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'. | ||
237 | * <!-- begin-user-doc --> | ||
238 | * This implementation returns null; | ||
239 | * returning a non-null result will terminate the switch. | ||
240 | * <!-- end-user-doc --> | ||
241 | * @param object the target of the switch. | ||
242 | * @return the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'. | ||
243 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
244 | * @generated | ||
245 | */ | ||
246 | public T caseDirectedCommunicationLink(DirectedCommunicationLink object) { | ||
247 | return null; | ||
248 | } | ||
249 | |||
250 | /** | ||
251 | * Returns the result of interpreting the object as an instance of '<em>Payload</em>'. | ||
252 | * <!-- begin-user-doc --> | ||
253 | * This implementation returns null; | ||
254 | * returning a non-null result will terminate the switch. | ||
255 | * <!-- end-user-doc --> | ||
256 | * @param object the target of the switch. | ||
257 | * @return the result of interpreting the object as an instance of '<em>Payload</em>'. | ||
258 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
259 | * @generated | ||
260 | */ | ||
261 | public T casePayload(Payload object) { | ||
262 | return null; | ||
263 | } | ||
264 | |||
265 | /** | ||
266 | * Returns the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'. | ||
267 | * <!-- begin-user-doc --> | ||
268 | * This implementation returns null; | ||
269 | * returning a non-null result will terminate the switch. | ||
270 | * <!-- end-user-doc --> | ||
271 | * @param object the target of the switch. | ||
272 | * @return the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'. | ||
273 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
274 | * @generated | ||
275 | */ | ||
276 | public T caseInterferometryPayload(InterferometryPayload object) { | ||
277 | return null; | ||
278 | } | ||
279 | |||
280 | /** | ||
281 | * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
282 | * <!-- begin-user-doc --> | ||
283 | * This implementation returns null; | ||
284 | * returning a non-null result will terminate the switch, but this is the last case anyway. | ||
285 | * <!-- end-user-doc --> | ||
286 | * @param object the target of the switch. | ||
287 | * @return the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
288 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) | ||
289 | * @generated | ||
290 | */ | ||
291 | @Override | ||
292 | public T defaultCase(EObject object) { | ||
293 | return null; | ||
294 | } | ||
295 | |||
296 | } //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..569089d8 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird | |||
@@ -0,0 +1,2074 @@ | |||
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 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor</semanticResources> | ||
1281 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.ScriptConsole</semanticResources> | ||
1282 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.ScriptConsoleDecorator</semanticResources> | ||
1283 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationStandaloneSetup</semanticResources> | ||
1284 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.StandardOutputBasedScriptConsole</semanticResources> | ||
1285 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor</semanticResources> | ||
1286 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.util.ApplicationConfigurationParser</semanticResources> | ||
1287 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.PatternLanguageWithRSSetup</semanticResources> | ||
1288 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.PatternLanguageWithRSModule</semanticResources> | ||
1289 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationStandaloneRuntimeModule</semanticResources> | ||
1290 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.validation.ApplicationConfigurationValidator</semanticResources> | ||
1291 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor</semanticResources> | ||
1292 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.MetamodelLoader</semanticResources> | ||
1293 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.validation.MetamodelValidator</semanticResources> | ||
1294 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.ModelLoader</semanticResources> | ||
1295 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.validation.QueryAndMetamodelValidator</semanticResources> | ||
1296 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.QueryLoader</semanticResources> | ||
1297 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.ScopeLoader</semanticResources> | ||
1298 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.SolverLoader</semanticResources> | ||
1299 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.valueconverter.QualifiedNameValueConverter</semanticResources> | ||
1300 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.NullWorkspace</semanticResources> | ||
1301 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.application.execution.EclipseBasedProgressMonitor</semanticResources> | ||
1302 | <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.count</semanticResources> | ||
1303 | <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.AggregatorType</semanticResources> | ||
1304 | <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IAggregatorFactory</semanticResources> | ||
1305 | <semanticResources>java:/Objects/java.lang.annotation.Inherited</semanticResources> | ||
1306 | <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.min</semanticResources> | ||
1307 | <semanticResources>../src/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/SatelliteMetrics.vql</semanticResources> | ||
1308 | <semanticResources>java:/Objects/org.eclipse.viatra.query.runtime.matchers.aggregators.max</semanticResources> | ||
1309 | <ownedViews xmi:type="viewpoint:DView" uid="_reOHEF0qEemRYLyXht2IrQ"> | ||
1310 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | ||
1311 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_re1yIF0qEemRYLyXht2IrQ" name="satellite" repPath="#_rel6gF0qEemRYLyXht2IrQ"> | ||
1312 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
1313 | <target xmi:type="ecore:EPackage" href="satellite.ecore#/"/> | ||
1314 | </ownedRepresentationDescriptors> | ||
1315 | </ownedViews> | ||
1316 | </viewpoint:DAnalysis> | ||
1317 | <diagram:DSemanticDiagram uid="_rel6gF0qEemRYLyXht2IrQ" name="satellite"> | ||
1318 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rew5oF0qEemRYLyXht2IrQ" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
1319 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_rexgsF0qEemRYLyXht2IrQ"> | ||
1320 | <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_028-wF0vEemRYLyXht2IrQ" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> | ||
1321 | <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1322 | <labelFormat>bold</labelFormat> | ||
1323 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1324 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1325 | </computedStyleDescriptions> | ||
1326 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
1327 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1328 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_6kODkV0vEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render"> | ||
1329 | <labelFormat>bold</labelFormat> | ||
1330 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1331 | </centerLabelStyleDescription> | ||
1332 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_6kODkl0vEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
1333 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1334 | </endLabelStyleDescription> | ||
1335 | </computedStyleDescriptions> | ||
1336 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
1337 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1338 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ccHLEV0wEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render"> | ||
1339 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1340 | </centerLabelStyleDescription> | ||
1341 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ccHLEl0wEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
1342 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1343 | </endLabelStyleDescription> | ||
1344 | </computedStyleDescriptions> | ||
1345 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan"> | ||
1346 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1347 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_fDAfYV0xEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render"> | ||
1348 | <labelFormat>bold</labelFormat> | ||
1349 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1350 | </centerLabelStyleDescription> | ||
1351 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_fDAfYl0xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
1352 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1353 | </endLabelStyleDescription> | ||
1354 | </computedStyleDescriptions> | ||
1355 | </data> | ||
1356 | </ownedAnnotationEntries> | ||
1357 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rfAxQF0qEemRYLyXht2IrQ" source="GMF_DIAGRAMS"> | ||
1358 | <data xmi:type="notation:Diagram" xmi:id="_rfAxQV0qEemRYLyXht2IrQ" type="Sirius" element="_rel6gF0qEemRYLyXht2IrQ" measurementUnit="Pixel"> | ||
1359 | <children xmi:type="notation:Node" xmi:id="_tNH44F0qEemRYLyXht2IrQ" type="2003" element="_tM4oUF0qEemRYLyXht2IrQ"> | ||
1360 | <children xmi:type="notation:Node" xmi:id="_tNK8MF0qEemRYLyXht2IrQ" type="5007"/> | ||
1361 | <children xmi:type="notation:Node" xmi:id="_tNLjQF0qEemRYLyXht2IrQ" type="7004"> | ||
1362 | <styles xmi:type="notation:SortingStyle" xmi:id="_tNLjQV0qEemRYLyXht2IrQ"/> | ||
1363 | <styles xmi:type="notation:FilteringStyle" xmi:id="_tNLjQl0qEemRYLyXht2IrQ"/> | ||
1364 | </children> | ||
1365 | <styles xmi:type="notation:ShapeStyle" xmi:id="_tNH44V0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1366 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tNH44l0qEemRYLyXht2IrQ" x="39" y="39" width="146" height="100"/> | ||
1367 | </children> | ||
1368 | <children xmi:type="notation:Node" xmi:id="_vlcbIF0qEemRYLyXht2IrQ" type="2003" element="_vlPm0F0qEemRYLyXht2IrQ"> | ||
1369 | <children xmi:type="notation:Node" xmi:id="_vldpQF0qEemRYLyXht2IrQ" type="5007"/> | ||
1370 | <children xmi:type="notation:Node" xmi:id="_vldpQV0qEemRYLyXht2IrQ" type="7004"> | ||
1371 | <children xmi:type="notation:Node" xmi:id="_zCslIF0qEemRYLyXht2IrQ" type="3010" element="_zChmAF0qEemRYLyXht2IrQ"> | ||
1372 | <styles xmi:type="notation:FontStyle" xmi:id="_zCslIV0qEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1373 | <layoutConstraint xmi:type="notation:Location" xmi:id="_zCslIl0qEemRYLyXht2IrQ"/> | ||
1374 | </children> | ||
1375 | <styles xmi:type="notation:SortingStyle" xmi:id="_vldpQl0qEemRYLyXht2IrQ"/> | ||
1376 | <styles xmi:type="notation:FilteringStyle" xmi:id="_vldpQ10qEemRYLyXht2IrQ"/> | ||
1377 | </children> | ||
1378 | <styles xmi:type="notation:ShapeStyle" xmi:id="_vlcbIV0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1379 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vlcbIl0qEemRYLyXht2IrQ" x="39" y="182" width="146" height="100"/> | ||
1380 | </children> | ||
1381 | <children xmi:type="notation:Node" xmi:id="_3UIIoF0rEemRYLyXht2IrQ" type="2003" element="_3T7UUF0rEemRYLyXht2IrQ"> | ||
1382 | <children xmi:type="notation:Node" xmi:id="_3UJWwF0rEemRYLyXht2IrQ" type="5007"/> | ||
1383 | <children xmi:type="notation:Node" xmi:id="_3UJWwV0rEemRYLyXht2IrQ" type="7004"> | ||
1384 | <styles xmi:type="notation:SortingStyle" xmi:id="_3UJWwl0rEemRYLyXht2IrQ"/> | ||
1385 | <styles xmi:type="notation:FilteringStyle" xmi:id="_3UJWw10rEemRYLyXht2IrQ"/> | ||
1386 | </children> | ||
1387 | <styles xmi:type="notation:ShapeStyle" xmi:id="_3UIIoV0rEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1388 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3UIIol0rEemRYLyXht2IrQ" x="390" y="182" width="172" height="100"/> | ||
1389 | </children> | ||
1390 | <children xmi:type="notation:Node" xmi:id="__OldwF0rEemRYLyXht2IrQ" type="2003" element="__OYCYF0rEemRYLyXht2IrQ"> | ||
1391 | <children xmi:type="notation:Node" xmi:id="__OmE0F0rEemRYLyXht2IrQ" type="5007"/> | ||
1392 | <children xmi:type="notation:Node" xmi:id="__Omr4F0rEemRYLyXht2IrQ" type="7004"> | ||
1393 | <styles xmi:type="notation:SortingStyle" xmi:id="__Omr4V0rEemRYLyXht2IrQ"/> | ||
1394 | <styles xmi:type="notation:FilteringStyle" xmi:id="__Omr4l0rEemRYLyXht2IrQ"/> | ||
1395 | </children> | ||
1396 | <styles xmi:type="notation:ShapeStyle" xmi:id="__OldwV0rEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1397 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Oldwl0rEemRYLyXht2IrQ" x="507" y="325" width="159" height="100"/> | ||
1398 | </children> | ||
1399 | <children xmi:type="notation:Node" xmi:id="_Aq3OgF0sEemRYLyXht2IrQ" type="2003" element="_AqsPYF0sEemRYLyXht2IrQ"> | ||
1400 | <children xmi:type="notation:Node" xmi:id="_Aq31kF0sEemRYLyXht2IrQ" type="5007"/> | ||
1401 | <children xmi:type="notation:Node" xmi:id="_Aq31kV0sEemRYLyXht2IrQ" type="7004"> | ||
1402 | <children xmi:type="notation:Node" xmi:id="_-9pX8G60Eem3gIPdAp40Tw" type="3010" element="_-9TZsG60Eem3gIPdAp40Tw"> | ||
1403 | <styles xmi:type="notation:FontStyle" xmi:id="_-9pX8W60Eem3gIPdAp40Tw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1404 | <layoutConstraint xmi:type="notation:Location" xmi:id="_-9pX8m60Eem3gIPdAp40Tw"/> | ||
1405 | </children> | ||
1406 | <styles xmi:type="notation:SortingStyle" xmi:id="_Aq31kl0sEemRYLyXht2IrQ"/> | ||
1407 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Aq31k10sEemRYLyXht2IrQ"/> | ||
1408 | </children> | ||
1409 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Aq3OgV0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1410 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aq3Ogl0sEemRYLyXht2IrQ" x="338" y="325" width="120" height="100"/> | ||
1411 | </children> | ||
1412 | <children xmi:type="notation:Node" xmi:id="_j0vs4F0tEemRYLyXht2IrQ" type="2003" element="_j0eAEF0tEemRYLyXht2IrQ"> | ||
1413 | <children xmi:type="notation:Node" xmi:id="_j0wT8F0tEemRYLyXht2IrQ" type="5007"/> | ||
1414 | <children xmi:type="notation:Node" xmi:id="_j0wT8V0tEemRYLyXht2IrQ" type="7004"> | ||
1415 | <children xmi:type="notation:Node" xmi:id="_zugwAF0vEemRYLyXht2IrQ" type="3010" element="_zuaCUF0vEemRYLyXht2IrQ"> | ||
1416 | <styles xmi:type="notation:FontStyle" xmi:id="_zugwAV0vEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1417 | <layoutConstraint xmi:type="notation:Location" xmi:id="_zugwAl0vEemRYLyXht2IrQ"/> | ||
1418 | </children> | ||
1419 | <children xmi:type="notation:Node" xmi:id="_Q89nMF0wEemRYLyXht2IrQ" type="3010" element="_Q8yBAF0wEemRYLyXht2IrQ"> | ||
1420 | <styles xmi:type="notation:FontStyle" xmi:id="_Q89nMV0wEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1421 | <layoutConstraint xmi:type="notation:Location" xmi:id="_Q89nMl0wEemRYLyXht2IrQ"/> | ||
1422 | </children> | ||
1423 | <styles xmi:type="notation:SortingStyle" xmi:id="_j0wT8l0tEemRYLyXht2IrQ"/> | ||
1424 | <styles xmi:type="notation:FilteringStyle" xmi:id="_j0wT810tEemRYLyXht2IrQ"/> | ||
1425 | </children> | ||
1426 | <styles xmi:type="notation:ShapeStyle" xmi:id="_j0vs4V0tEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1427 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j0vs4l0tEemRYLyXht2IrQ" x="754" y="182" width="198" height="100"/> | ||
1428 | </children> | ||
1429 | <children xmi:type="notation:Node" xmi:id="_vyrzoF0vEemRYLyXht2IrQ" type="2003" element="_vyhbkF0vEemRYLyXht2IrQ"> | ||
1430 | <children xmi:type="notation:Node" xmi:id="_vysasF0vEemRYLyXht2IrQ" type="5007"/> | ||
1431 | <children xmi:type="notation:Node" xmi:id="_vysasV0vEemRYLyXht2IrQ" type="7004"> | ||
1432 | <children xmi:type="notation:Node" xmi:id="_x32JUF0vEemRYLyXht2IrQ" type="3010" element="_x3rKMF0vEemRYLyXht2IrQ"> | ||
1433 | <styles xmi:type="notation:FontStyle" xmi:id="_x32JUV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1434 | <layoutConstraint xmi:type="notation:Location" xmi:id="_x32JUl0vEemRYLyXht2IrQ"/> | ||
1435 | </children> | ||
1436 | <children xmi:type="notation:Node" xmi:id="_yhHIwF0vEemRYLyXht2IrQ" type="3010" element="_yg2DAF0vEemRYLyXht2IrQ"> | ||
1437 | <styles xmi:type="notation:FontStyle" xmi:id="_yhHIwV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1438 | <layoutConstraint xmi:type="notation:Location" xmi:id="_yhHIwl0vEemRYLyXht2IrQ"/> | ||
1439 | </children> | ||
1440 | <children xmi:type="notation:Node" xmi:id="_zAX3oF0vEemRYLyXht2IrQ" type="3010" element="_zAInEF0vEemRYLyXht2IrQ"> | ||
1441 | <styles xmi:type="notation:FontStyle" xmi:id="_zAX3oV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1442 | <layoutConstraint xmi:type="notation:Location" xmi:id="_zAX3ol0vEemRYLyXht2IrQ"/> | ||
1443 | </children> | ||
1444 | <styles xmi:type="notation:SortingStyle" xmi:id="_vysasl0vEemRYLyXht2IrQ"/> | ||
1445 | <styles xmi:type="notation:FilteringStyle" xmi:id="_vysas10vEemRYLyXht2IrQ"/> | ||
1446 | </children> | ||
1447 | <styles xmi:type="notation:ShapeStyle" xmi:id="_vyrzoV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1448 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vyrzol0vEemRYLyXht2IrQ" x="988" y="39" width="120" height="100"/> | ||
1449 | </children> | ||
1450 | <children xmi:type="notation:Node" xmi:id="_Ct-Y8F0wEemRYLyXht2IrQ" type="2003" element="_Ctw9kF0wEemRYLyXht2IrQ"> | ||
1451 | <children xmi:type="notation:Node" xmi:id="_Ct_AAF0wEemRYLyXht2IrQ" type="5007"/> | ||
1452 | <children xmi:type="notation:Node" xmi:id="_Ct_nEF0wEemRYLyXht2IrQ" type="7004"> | ||
1453 | <styles xmi:type="notation:SortingStyle" xmi:id="_Ct_nEV0wEemRYLyXht2IrQ"/> | ||
1454 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Ct_nEl0wEemRYLyXht2IrQ"/> | ||
1455 | </children> | ||
1456 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Ct-Y8V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1457 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ct-Y8l0wEemRYLyXht2IrQ" x="754" y="325" width="198" height="100"/> | ||
1458 | </children> | ||
1459 | <children xmi:type="notation:Node" xmi:id="_M5X18F0wEemRYLyXht2IrQ" type="2003" element="_M5OsAF0wEemRYLyXht2IrQ"> | ||
1460 | <children xmi:type="notation:Node" xmi:id="_M5YdAF0wEemRYLyXht2IrQ" type="5007"/> | ||
1461 | <children xmi:type="notation:Node" xmi:id="_M5YdAV0wEemRYLyXht2IrQ" type="7004"> | ||
1462 | <children xmi:type="notation:Node" xmi:id="_OBrh0F0wEemRYLyXht2IrQ" type="3010" element="_OBacEF0wEemRYLyXht2IrQ"> | ||
1463 | <styles xmi:type="notation:FontStyle" xmi:id="_OBrh0V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1464 | <layoutConstraint xmi:type="notation:Location" xmi:id="_OBrh0l0wEemRYLyXht2IrQ"/> | ||
1465 | </children> | ||
1466 | <children xmi:type="notation:Node" xmi:id="_Oca9EF0wEemRYLyXht2IrQ" type="3010" element="_OcLsgF0wEemRYLyXht2IrQ"> | ||
1467 | <styles xmi:type="notation:FontStyle" xmi:id="_Oca9EV0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1468 | <layoutConstraint xmi:type="notation:Location" xmi:id="_Oca9El0wEemRYLyXht2IrQ"/> | ||
1469 | </children> | ||
1470 | <children xmi:type="notation:Node" xmi:id="_O9880F0wEemRYLyXht2IrQ" type="3010" element="_O9wIgF0wEemRYLyXht2IrQ"> | ||
1471 | <styles xmi:type="notation:FontStyle" xmi:id="_O9880V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1472 | <layoutConstraint xmi:type="notation:Location" xmi:id="_O9880l0wEemRYLyXht2IrQ"/> | ||
1473 | </children> | ||
1474 | <styles xmi:type="notation:SortingStyle" xmi:id="_M5YdAl0wEemRYLyXht2IrQ"/> | ||
1475 | <styles xmi:type="notation:FilteringStyle" xmi:id="_M5YdA10wEemRYLyXht2IrQ"/> | ||
1476 | </children> | ||
1477 | <styles xmi:type="notation:ShapeStyle" xmi:id="_M5X18V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1478 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5X18l0wEemRYLyXht2IrQ" x="988" y="182" width="120" height="100"/> | ||
1479 | </children> | ||
1480 | <children xmi:type="notation:Node" xmi:id="_0aeMMF0xEemRYLyXht2IrQ" type="2003" element="_0aW3cF0xEemRYLyXht2IrQ"> | ||
1481 | <children xmi:type="notation:Node" xmi:id="_0aeMM10xEemRYLyXht2IrQ" type="5007"/> | ||
1482 | <children xmi:type="notation:Node" xmi:id="_0aezQF0xEemRYLyXht2IrQ" type="7004"> | ||
1483 | <styles xmi:type="notation:SortingStyle" xmi:id="_0aezQV0xEemRYLyXht2IrQ"/> | ||
1484 | <styles xmi:type="notation:FilteringStyle" xmi:id="_0aezQl0xEemRYLyXht2IrQ"/> | ||
1485 | </children> | ||
1486 | <styles xmi:type="notation:ShapeStyle" xmi:id="_0aeMMV0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1487 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0aeMMl0xEemRYLyXht2IrQ" x="52" y="325" width="120" height="100"/> | ||
1488 | </children> | ||
1489 | <children xmi:type="notation:Node" xmi:id="_45PdkF0xEemRYLyXht2IrQ" type="2003" element="_45FskF0xEemRYLyXht2IrQ"> | ||
1490 | <children xmi:type="notation:Node" xmi:id="_45QEoF0xEemRYLyXht2IrQ" type="5007"/> | ||
1491 | <children xmi:type="notation:Node" xmi:id="_45QEoV0xEemRYLyXht2IrQ" type="7004"> | ||
1492 | <styles xmi:type="notation:SortingStyle" xmi:id="_45QEol0xEemRYLyXht2IrQ"/> | ||
1493 | <styles xmi:type="notation:FilteringStyle" xmi:id="_45QEo10xEemRYLyXht2IrQ"/> | ||
1494 | </children> | ||
1495 | <styles xmi:type="notation:ShapeStyle" xmi:id="_45PdkV0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1496 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_45Pdkl0xEemRYLyXht2IrQ" x="39" y="481" width="146" height="100"/> | ||
1497 | </children> | ||
1498 | <children xmi:type="notation:Node" xmi:id="_2omYkG60Eem3gIPdAp40Tw" type="2003" element="_2oBw0G60Eem3gIPdAp40Tw"> | ||
1499 | <children xmi:type="notation:Node" xmi:id="_2orREG60Eem3gIPdAp40Tw" type="5007"/> | ||
1500 | <children xmi:type="notation:Node" xmi:id="_2or4IG60Eem3gIPdAp40Tw" type="7004"> | ||
1501 | <children xmi:type="notation:Node" xmi:id="_5QV24G60Eem3gIPdAp40Tw" type="3010" element="_5P_4oG60Eem3gIPdAp40Tw"> | ||
1502 | <styles xmi:type="notation:FontStyle" xmi:id="_5QV24W60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1503 | <layoutConstraint xmi:type="notation:Location" xmi:id="_5QV24m60Eem3gIPdAp40Tw"/> | ||
1504 | </children> | ||
1505 | <children xmi:type="notation:Node" xmi:id="_6f0hwG60Eem3gIPdAp40Tw" type="3010" element="_6fjcAG60Eem3gIPdAp40Tw"> | ||
1506 | <styles xmi:type="notation:FontStyle" xmi:id="_6f0hwW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1507 | <layoutConstraint xmi:type="notation:Location" xmi:id="_6f0hwm60Eem3gIPdAp40Tw"/> | ||
1508 | </children> | ||
1509 | <children xmi:type="notation:Node" xmi:id="_7SZ1QG60Eem3gIPdAp40Tw" type="3010" element="_7R9JUG60Eem3gIPdAp40Tw"> | ||
1510 | <styles xmi:type="notation:FontStyle" xmi:id="_7SZ1QW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1511 | <layoutConstraint xmi:type="notation:Location" xmi:id="_7SZ1Qm60Eem3gIPdAp40Tw"/> | ||
1512 | </children> | ||
1513 | <styles xmi:type="notation:SortingStyle" xmi:id="_2or4IW60Eem3gIPdAp40Tw"/> | ||
1514 | <styles xmi:type="notation:FilteringStyle" xmi:id="_2or4Im60Eem3gIPdAp40Tw"/> | ||
1515 | </children> | ||
1516 | <styles xmi:type="notation:ShapeStyle" xmi:id="_2omYkW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1517 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2omYkm60Eem3gIPdAp40Tw" x="990" y="325" width="120" height="100"/> | ||
1518 | </children> | ||
1519 | <styles xmi:type="notation:DiagramStyle" xmi:id="_rfAxQl0qEemRYLyXht2IrQ"/> | ||
1520 | <edges xmi:type="notation:Edge" xmi:id="_0jV4gF0qEemRYLyXht2IrQ" type="4001" element="_0jIdIF0qEemRYLyXht2IrQ" source="_vlcbIF0qEemRYLyXht2IrQ" target="_tNH44F0qEemRYLyXht2IrQ"> | ||
1521 | <children xmi:type="notation:Node" xmi:id="_0jXGoF0qEemRYLyXht2IrQ" type="6001"> | ||
1522 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jXGoV0qEemRYLyXht2IrQ" y="-10"/> | ||
1523 | </children> | ||
1524 | <children xmi:type="notation:Node" xmi:id="_0jXtsF0qEemRYLyXht2IrQ" type="6002"> | ||
1525 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jXtsV0qEemRYLyXht2IrQ" y="10"/> | ||
1526 | </children> | ||
1527 | <children xmi:type="notation:Node" xmi:id="_0jYUwF0qEemRYLyXht2IrQ" type="6003"> | ||
1528 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jYUwV0qEemRYLyXht2IrQ" y="10"/> | ||
1529 | </children> | ||
1530 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_0jV4gV0qEemRYLyXht2IrQ" routing="Tree"/> | ||
1531 | <styles xmi:type="notation:FontStyle" xmi:id="_0jV4gl0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1532 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0jV4g10qEemRYLyXht2IrQ" points="[0, 0, 0, 45]$[0, -45, 0, 0]"/> | ||
1533 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jaxAF0qEemRYLyXht2IrQ" id="(0.410958904109589,0.01)"/> | ||
1534 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jaxAV0qEemRYLyXht2IrQ" id="(0.4548611111111111,0.5)"/> | ||
1535 | </edges> | ||
1536 | <edges xmi:type="notation:Edge" xmi:id="_Npck0F0sEemRYLyXht2IrQ" type="4001" element="_NpQ-pl0sEemRYLyXht2IrQ" source="__OldwF0rEemRYLyXht2IrQ" target="_3UIIoF0rEemRYLyXht2IrQ"> | ||
1537 | <children xmi:type="notation:Node" xmi:id="_NpdL4F0sEemRYLyXht2IrQ" type="6001"> | ||
1538 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL4V0sEemRYLyXht2IrQ" y="-10"/> | ||
1539 | </children> | ||
1540 | <children xmi:type="notation:Node" xmi:id="_NpdL4l0sEemRYLyXht2IrQ" type="6002"> | ||
1541 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL410sEemRYLyXht2IrQ" y="10"/> | ||
1542 | </children> | ||
1543 | <children xmi:type="notation:Node" xmi:id="_NpdL5F0sEemRYLyXht2IrQ" type="6003"> | ||
1544 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL5V0sEemRYLyXht2IrQ" y="10"/> | ||
1545 | </children> | ||
1546 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_Npck0V0sEemRYLyXht2IrQ" routing="Tree"/> | ||
1547 | <styles xmi:type="notation:FontStyle" xmi:id="_Npck0l0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1548 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Npck010sEemRYLyXht2IrQ" points="[0, 0, -103, 45]$[103, -45, 0, 0]"/> | ||
1549 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpdL5l0sEemRYLyXht2IrQ" id="(0.5031847133757962,0.0)"/> | ||
1550 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpdL510sEemRYLyXht2IrQ" id="(0.5,0.5)"/> | ||
1551 | </edges> | ||
1552 | <edges xmi:type="notation:Edge" xmi:id="_PE8ScF0sEemRYLyXht2IrQ" type="4001" element="_PEp-k10sEemRYLyXht2IrQ" source="_Aq3OgF0sEemRYLyXht2IrQ" target="_3UIIoF0rEemRYLyXht2IrQ"> | ||
1553 | <children xmi:type="notation:Node" xmi:id="_PE8SdF0sEemRYLyXht2IrQ" type="6001"> | ||
1554 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE8SdV0sEemRYLyXht2IrQ" y="-10"/> | ||
1555 | </children> | ||
1556 | <children xmi:type="notation:Node" xmi:id="_PE8Sdl0sEemRYLyXht2IrQ" type="6002"> | ||
1557 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE8Sd10sEemRYLyXht2IrQ" y="10"/> | ||
1558 | </children> | ||
1559 | <children xmi:type="notation:Node" xmi:id="_PE85gF0sEemRYLyXht2IrQ" type="6003"> | ||
1560 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE85gV0sEemRYLyXht2IrQ" y="10"/> | ||
1561 | </children> | ||
1562 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_PE8ScV0sEemRYLyXht2IrQ" routing="Tree"/> | ||
1563 | <styles xmi:type="notation:FontStyle" xmi:id="_PE8Scl0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1564 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PE8Sc10sEemRYLyXht2IrQ" points="[0, 0, 97, 45]$[-97, -45, 0, 0]"/> | ||
1565 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PE85gl0sEemRYLyXht2IrQ" id="(0.5508474576271186,0.0)"/> | ||
1566 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PE85g10sEemRYLyXht2IrQ" id="(0.5,0.5)"/> | ||
1567 | </edges> | ||
1568 | <edges xmi:type="notation:Edge" xmi:id="_4CEP4F0vEemRYLyXht2IrQ" type="4001" element="_4B9iMF0vEemRYLyXht2IrQ" source="_3UIIoF0rEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ"> | ||
1569 | <children xmi:type="notation:Node" xmi:id="_4CEP5F0vEemRYLyXht2IrQ" type="6001"> | ||
1570 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CEP5V0vEemRYLyXht2IrQ" x="13" y="-18"/> | ||
1571 | </children> | ||
1572 | <children xmi:type="notation:Node" xmi:id="_4CE28F0vEemRYLyXht2IrQ" type="6002"> | ||
1573 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CE28V0vEemRYLyXht2IrQ" x="54" y="10"/> | ||
1574 | </children> | ||
1575 | <children xmi:type="notation:Node" xmi:id="_4CE28l0vEemRYLyXht2IrQ" type="6003"> | ||
1576 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CE2810vEemRYLyXht2IrQ" x="28" y="10"/> | ||
1577 | </children> | ||
1578 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_4CEP4V0vEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1579 | <styles xmi:type="notation:FontStyle" xmi:id="_4CEP4l0vEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1580 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4CEP410vEemRYLyXht2IrQ" points="[0, -26, -194, -52]$[194, -26, 0, -52]"/> | ||
1581 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4CE29F0vEemRYLyXht2IrQ" id="(1.0,0.5306122448979592)"/> | ||
1582 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4CE29V0vEemRYLyXht2IrQ" id="(0.0,0.7959183673469388)"/> | ||
1583 | </edges> | ||
1584 | <edges xmi:type="notation:Edge" xmi:id="_ccT_YF0wEemRYLyXht2IrQ" type="4001" element="_ccF89l0wEemRYLyXht2IrQ" source="_3UIIoF0rEemRYLyXht2IrQ" target="_Ct-Y8F0wEemRYLyXht2IrQ"> | ||
1585 | <children xmi:type="notation:Node" xmi:id="_ccT_ZF0wEemRYLyXht2IrQ" type="6001"> | ||
1586 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccT_ZV0wEemRYLyXht2IrQ" x="-32" y="39"/> | ||
1587 | </children> | ||
1588 | <children xmi:type="notation:Node" xmi:id="_ccUmcF0wEemRYLyXht2IrQ" type="6002"> | ||
1589 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccUmcV0wEemRYLyXht2IrQ" x="48" y="10"/> | ||
1590 | </children> | ||
1591 | <children xmi:type="notation:Node" xmi:id="_ccUmcl0wEemRYLyXht2IrQ" type="6003"> | ||
1592 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccUmc10wEemRYLyXht2IrQ" x="22" y="-8"/> | ||
1593 | </children> | ||
1594 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_ccT_YV0wEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1595 | <styles xmi:type="notation:FontStyle" xmi:id="_ccT_Yl0wEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1596 | <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]"/> | ||
1597 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccUmdF0wEemRYLyXht2IrQ" id="(0.8411764705882353,1.0)"/> | ||
1598 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccUmdV0wEemRYLyXht2IrQ" id="(0.0,0.6632653061224489)"/> | ||
1599 | </edges> | ||
1600 | <edges xmi:type="notation:Edge" xmi:id="_db1tQF0xEemRYLyXht2IrQ" type="4001" element="_dbuYhl0xEemRYLyXht2IrQ" source="_Ct-Y8F0wEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ"> | ||
1601 | <children xmi:type="notation:Node" xmi:id="_db2UUF0xEemRYLyXht2IrQ" type="6001"> | ||
1602 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UUV0xEemRYLyXht2IrQ" x="-5" y="-44"/> | ||
1603 | </children> | ||
1604 | <children xmi:type="notation:Node" xmi:id="_db2UUl0xEemRYLyXht2IrQ" type="6002"> | ||
1605 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UU10xEemRYLyXht2IrQ" y="10"/> | ||
1606 | </children> | ||
1607 | <children xmi:type="notation:Node" xmi:id="_db2UVF0xEemRYLyXht2IrQ" type="6003"> | ||
1608 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UVV0xEemRYLyXht2IrQ" y="10"/> | ||
1609 | </children> | ||
1610 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_db1tQV0xEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1611 | <styles xmi:type="notation:FontStyle" xmi:id="_db1tQl0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1612 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_db1tQ10xEemRYLyXht2IrQ" points="[14, 0, 14, 45]$[14, -45, 14, 0]"/> | ||
1613 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_db2UVl0xEemRYLyXht2IrQ" id="(0.19387755102040816,0.0)"/> | ||
1614 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_db2UV10xEemRYLyXht2IrQ" id="(0.19387755102040816,1.0)"/> | ||
1615 | </edges> | ||
1616 | <edges xmi:type="notation:Edge" xmi:id="_i2ZRcF0xEemRYLyXht2IrQ" type="4001" element="_i2PgeV0xEemRYLyXht2IrQ" source="_Ct-Y8F0wEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ"> | ||
1617 | <children xmi:type="notation:Node" xmi:id="_i2ZRdF0xEemRYLyXht2IrQ" type="6001"> | ||
1618 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZRdV0xEemRYLyXht2IrQ" x="-5" y="46"/> | ||
1619 | </children> | ||
1620 | <children xmi:type="notation:Node" xmi:id="_i2ZRdl0xEemRYLyXht2IrQ" type="6002"> | ||
1621 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZRd10xEemRYLyXht2IrQ" y="10"/> | ||
1622 | </children> | ||
1623 | <children xmi:type="notation:Node" xmi:id="_i2ZReF0xEemRYLyXht2IrQ" type="6003"> | ||
1624 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZReV0xEemRYLyXht2IrQ" y="10"/> | ||
1625 | </children> | ||
1626 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_i2ZRcV0xEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1627 | <styles xmi:type="notation:FontStyle" xmi:id="_i2ZRcl0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1628 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i2ZRc10xEemRYLyXht2IrQ" points="[0, 0, 0, 45]$[0, -45, 0, 0]"/> | ||
1629 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i2ZRel0xEemRYLyXht2IrQ" id="(0.7193877551020408,0.0)"/> | ||
1630 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i2ZRe10xEemRYLyXht2IrQ" id="(0.7193877551020408,1.0)"/> | ||
1631 | </edges> | ||
1632 | <edges xmi:type="notation:Edge" xmi:id="_3HAq8F0xEemRYLyXht2IrQ" type="4001" element="_3GzPll0xEemRYLyXht2IrQ" source="_Aq3OgF0sEemRYLyXht2IrQ" target="_0aeMMF0xEemRYLyXht2IrQ"> | ||
1633 | <children xmi:type="notation:Node" xmi:id="_3HBSAF0xEemRYLyXht2IrQ" type="6001"> | ||
1634 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HBSAV0xEemRYLyXht2IrQ" y="-10"/> | ||
1635 | </children> | ||
1636 | <children xmi:type="notation:Node" xmi:id="_3HBSAl0xEemRYLyXht2IrQ" type="6002"> | ||
1637 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HBSA10xEemRYLyXht2IrQ" y="10"/> | ||
1638 | </children> | ||
1639 | <children xmi:type="notation:Node" xmi:id="_3HB5EF0xEemRYLyXht2IrQ" type="6003"> | ||
1640 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HB5EV0xEemRYLyXht2IrQ" y="10"/> | ||
1641 | </children> | ||
1642 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_3HAq8V0xEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1643 | <styles xmi:type="notation:FontStyle" xmi:id="_3HAq8l0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1644 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3HAq810xEemRYLyXht2IrQ" points="[0, 0, 168, 0]$[-168, 0, 0, 0]"/> | ||
1645 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3HB5El0xEemRYLyXht2IrQ" id="(0.0,0.5)"/> | ||
1646 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3HB5E10xEemRYLyXht2IrQ" id="(1.0,0.5)"/> | ||
1647 | </edges> | ||
1648 | <edges xmi:type="notation:Edge" xmi:id="_8iOWcF0xEemRYLyXht2IrQ" type="4001" element="_8iFzll0xEemRYLyXht2IrQ" source="_45PdkF0xEemRYLyXht2IrQ" target="_0aeMMF0xEemRYLyXht2IrQ"> | ||
1649 | <children xmi:type="notation:Node" xmi:id="_8iOWdF0xEemRYLyXht2IrQ" type="6001"> | ||
1650 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iOWdV0xEemRYLyXht2IrQ" y="-10"/> | ||
1651 | </children> | ||
1652 | <children xmi:type="notation:Node" xmi:id="_8iO9gF0xEemRYLyXht2IrQ" type="6002"> | ||
1653 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iO9gV0xEemRYLyXht2IrQ" y="10"/> | ||
1654 | </children> | ||
1655 | <children xmi:type="notation:Node" xmi:id="_8iO9gl0xEemRYLyXht2IrQ" type="6003"> | ||
1656 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iO9g10xEemRYLyXht2IrQ" y="10"/> | ||
1657 | </children> | ||
1658 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_8iOWcV0xEemRYLyXht2IrQ" routing="Tree"/> | ||
1659 | <styles xmi:type="notation:FontStyle" xmi:id="_8iOWcl0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1660 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8iOWc10xEemRYLyXht2IrQ" points="[0, 0, 0, 58]$[0, -58, 0, 0]"/> | ||
1661 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8iO9hF0xEemRYLyXht2IrQ" id="(0.4246575342465753,0.01)"/> | ||
1662 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8iO9hV0xEemRYLyXht2IrQ" id="(0.5,0.5)"/> | ||
1663 | </edges> | ||
1664 | <edges xmi:type="notation:Edge" xmi:id="_Kzrp4F0yEemRYLyXht2IrQ" type="4001" element="_KzljXl0yEemRYLyXht2IrQ" source="_tNH44F0qEemRYLyXht2IrQ" target="__OldwF0rEemRYLyXht2IrQ"> | ||
1665 | <children xmi:type="notation:Node" xmi:id="_Kzrp5F0yEemRYLyXht2IrQ" type="6001"> | ||
1666 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp5V0yEemRYLyXht2IrQ" x="-11" y="-10"/> | ||
1667 | </children> | ||
1668 | <children xmi:type="notation:Node" xmi:id="_Kzrp5l0yEemRYLyXht2IrQ" type="6002"> | ||
1669 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp510yEemRYLyXht2IrQ" x="-3" y="10"/> | ||
1670 | </children> | ||
1671 | <children xmi:type="notation:Node" xmi:id="_Kzrp6F0yEemRYLyXht2IrQ" type="6003"> | ||
1672 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp6V0yEemRYLyXht2IrQ" x="3" y="10"/> | ||
1673 | </children> | ||
1674 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_Kzrp4V0yEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1675 | <styles xmi:type="notation:FontStyle" xmi:id="_Kzrp4l0yEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1676 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kzrp410yEemRYLyXht2IrQ" points="[0, -57, -419, -265]$[418, -57, -1, -265]$[418, 208, -1, 0]"/> | ||
1677 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Kzrp6l0yEemRYLyXht2IrQ" id="(1.0,0.7959183673469388)"/> | ||
1678 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Kzrp610yEemRYLyXht2IrQ" id="(0.610062893081761,0.0)"/> | ||
1679 | </edges> | ||
1680 | <edges xmi:type="notation:Edge" xmi:id="_PdUugF0yEemRYLyXht2IrQ" type="4001" element="_PdH6PF0yEemRYLyXht2IrQ" source="_tNH44F0qEemRYLyXht2IrQ" target="_Aq3OgF0sEemRYLyXht2IrQ"> | ||
1681 | <children xmi:type="notation:Node" xmi:id="_PdUuhF0yEemRYLyXht2IrQ" type="6001"> | ||
1682 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdUuhV0yEemRYLyXht2IrQ" x="-30" y="104"/> | ||
1683 | </children> | ||
1684 | <children xmi:type="notation:Node" xmi:id="_PdUuhl0yEemRYLyXht2IrQ" type="6002"> | ||
1685 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdUuh10yEemRYLyXht2IrQ" y="10"/> | ||
1686 | </children> | ||
1687 | <children xmi:type="notation:Node" xmi:id="_PdVVkF0yEemRYLyXht2IrQ" type="6003"> | ||
1688 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdVVkV0yEemRYLyXht2IrQ" x="-4" y="10"/> | ||
1689 | </children> | ||
1690 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_PdUugV0yEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1691 | <styles xmi:type="notation:FontStyle" xmi:id="_PdUugl0yEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1692 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PdUug10yEemRYLyXht2IrQ" points="[40, -32, -194, -220]$[221, -32, -13, -220]$[221, 188, -13, 0]"/> | ||
1693 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVkl0yEemRYLyXht2IrQ" id="(0.7222222222222222,1.0)"/> | ||
1694 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVk10yEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/> | ||
1695 | </edges> | ||
1696 | </data> | ||
1697 | </ownedAnnotationEntries> | ||
1698 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tM4oUF0qEemRYLyXht2IrQ" name="ConstellationMission" tooltipText="" outgoingEdges="_KzljXl0yEemRYLyXht2IrQ _PdH6PF0yEemRYLyXht2IrQ" incomingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10"> | ||
1699 | <target xmi:type="ecore:EClass" href="satellite.ecore#//ConstellationMission"/> | ||
1700 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//ConstellationMission"/> | ||
1701 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1702 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1703 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1704 | <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"> | ||
1705 | <labelFormat>italic</labelFormat> | ||
1706 | <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"/> | ||
1707 | </ownedStyle> | ||
1708 | <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']"/> | ||
1709 | </ownedDiagramElements> | ||
1710 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vlPm0F0qEemRYLyXht2IrQ" name="InterferometryMission" tooltipText="" outgoingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10"> | ||
1711 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1712 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1713 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1714 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1715 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1716 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_0ECtY10qEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1717 | <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"/> | ||
1718 | </ownedStyle> | ||
1719 | <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']"/> | ||
1720 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_zChmAF0qEemRYLyXht2IrQ" name="observationTime : EFloat = 2.0" tooltipText=""> | ||
1721 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//InterferometryMission/observationTime"/> | ||
1722 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//InterferometryMission/observationTime"/> | ||
1723 | <ownedStyle xmi:type="diagram:BundledImage" uid="_1awPYV0vEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1724 | <labelFormat>bold</labelFormat> | ||
1725 | </ownedStyle> | ||
1726 | <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']"/> | ||
1727 | </ownedElements> | ||
1728 | </ownedDiagramElements> | ||
1729 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_0jIdIF0qEemRYLyXht2IrQ" sourceNode="_vlPm0F0qEemRYLyXht2IrQ" targetNode="_tM4oUF0qEemRYLyXht2IrQ"> | ||
1730 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1731 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1732 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0jK5YF0qEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
1733 | <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"/> | ||
1734 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_0jK5YV0qEemRYLyXht2IrQ" showIcon="false"> | ||
1735 | <labelFormat>italic</labelFormat> | ||
1736 | </beginLabelStyle> | ||
1737 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0jK5Yl0qEemRYLyXht2IrQ" showIcon="false"/> | ||
1738 | </ownedStyle> | ||
1739 | <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']"/> | ||
1740 | </ownedDiagramElements> | ||
1741 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_3T7UUF0rEemRYLyXht2IrQ" name="CommunicatingElement" tooltipText="" outgoingEdges="_4B9iMF0vEemRYLyXht2IrQ _ccF89l0wEemRYLyXht2IrQ" incomingEdges="_NpQ-pl0sEemRYLyXht2IrQ _PEp-k10sEemRYLyXht2IrQ" width="12" height="10"> | ||
1742 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CommunicatingElement"/> | ||
1743 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CommunicatingElement"/> | ||
1744 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1745 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1746 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1747 | <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"> | ||
1748 | <labelFormat>italic</labelFormat> | ||
1749 | <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"/> | ||
1750 | </ownedStyle> | ||
1751 | <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']"/> | ||
1752 | </ownedDiagramElements> | ||
1753 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__OYCYF0rEemRYLyXht2IrQ" name="GroundStationNetwork" tooltipText="" outgoingEdges="_NpQ-pl0sEemRYLyXht2IrQ" incomingEdges="_KzljXl0yEemRYLyXht2IrQ" width="12" height="10"> | ||
1754 | <target xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1755 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1756 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1757 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1758 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1759 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__B6W510vEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1760 | <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"/> | ||
1761 | </ownedStyle> | ||
1762 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
1763 | </ownedDiagramElements> | ||
1764 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_AqsPYF0sEemRYLyXht2IrQ" name="Spacecraft" tooltipText="" outgoingEdges="_PEp-k10sEemRYLyXht2IrQ _3GzPll0xEemRYLyXht2IrQ" incomingEdges="_PdH6PF0yEemRYLyXht2IrQ" width="12" height="10"> | ||
1765 | <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1766 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1767 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1768 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1769 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1770 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ApvGVG61Eem3gIPdAp40Tw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
1771 | <labelFormat>italic</labelFormat> | ||
1772 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | ||
1773 | </ownedStyle> | ||
1774 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
1775 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_-9TZsG60Eem3gIPdAp40Tw" name="kind : SpacecraftKind = CubeSat3U" tooltipText=""> | ||
1776 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/> | ||
1777 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/> | ||
1778 | <ownedStyle xmi:type="diagram:BundledImage" uid="_BUQqAW61Eem3gIPdAp40Tw" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1779 | <labelFormat>bold</labelFormat> | ||
1780 | </ownedStyle> | ||
1781 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
1782 | </ownedElements> | ||
1783 | </ownedDiagramElements> | ||
1784 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NpQ-pl0sEemRYLyXht2IrQ" sourceNode="__OYCYF0rEemRYLyXht2IrQ" targetNode="_3T7UUF0rEemRYLyXht2IrQ"> | ||
1785 | <target xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1786 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1787 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NpRlsF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
1788 | <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"/> | ||
1789 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_NpRlsV0sEemRYLyXht2IrQ" showIcon="false"> | ||
1790 | <labelFormat>italic</labelFormat> | ||
1791 | </beginLabelStyle> | ||
1792 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NpRlsl0sEemRYLyXht2IrQ" showIcon="false"/> | ||
1793 | </ownedStyle> | ||
1794 | <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']"/> | ||
1795 | </ownedDiagramElements> | ||
1796 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PEp-k10sEemRYLyXht2IrQ" sourceNode="_AqsPYF0sEemRYLyXht2IrQ" targetNode="_3T7UUF0rEemRYLyXht2IrQ"> | ||
1797 | <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1798 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1799 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Ap43UG61Eem3gIPdAp40Tw" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
1800 | <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"/> | ||
1801 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_Ap43UW61Eem3gIPdAp40Tw" showIcon="false"> | ||
1802 | <labelFormat>italic</labelFormat> | ||
1803 | </beginLabelStyle> | ||
1804 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Ap43Um61Eem3gIPdAp40Tw" showIcon="false"/> | ||
1805 | </ownedStyle> | ||
1806 | <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']"/> | ||
1807 | </ownedDiagramElements> | ||
1808 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_j0eAEF0tEemRYLyXht2IrQ" name="CommSubsystem" tooltipText="" incomingEdges="_4B9iMF0vEemRYLyXht2IrQ _dbuYhl0xEemRYLyXht2IrQ _i2PgeV0xEemRYLyXht2IrQ" width="12" height="10"> | ||
1809 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CommSubsystem"/> | ||
1810 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CommSubsystem"/> | ||
1811 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1812 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1813 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1814 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_UMdpIV0wEemRYLyXht2IrQ" 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 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_zuaCUF0vEemRYLyXht2IrQ" name="band : TransceiverBand = UHF" tooltipText=""> | ||
1819 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/band"/> | ||
1820 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/band"/> | ||
1821 | <ownedStyle xmi:type="diagram:BundledImage" uid="_028-wl0vEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1822 | <labelFormat>bold</labelFormat> | ||
1823 | </ownedStyle> | ||
1824 | <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']"/> | ||
1825 | </ownedElements> | ||
1826 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_Q8yBAF0wEemRYLyXht2IrQ" name="gain : AntennaGain = LOW" tooltipText=""> | ||
1827 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/gain"/> | ||
1828 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/gain"/> | ||
1829 | <ownedStyle xmi:type="diagram:BundledImage" uid="_UgHk4l0wEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1830 | <labelFormat>bold</labelFormat> | ||
1831 | </ownedStyle> | ||
1832 | <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']"/> | ||
1833 | </ownedElements> | ||
1834 | </ownedDiagramElements> | ||
1835 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vyhbkF0vEemRYLyXht2IrQ" name="TransceiverBand" tooltipText="" width="12" height="10"> | ||
1836 | <target xmi:type="ecore:EEnum" href="satellite.ecore#//TransceiverBand"/> | ||
1837 | <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//TransceiverBand"/> | ||
1838 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1839 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1840 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1841 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_vyj30F0vEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
1842 | <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"/> | ||
1843 | </ownedStyle> | ||
1844 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> | ||
1845 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_x3rKMF0vEemRYLyXht2IrQ" name="UHF" tooltipText=""> | ||
1846 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/UHF"/> | ||
1847 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/UHF"/> | ||
1848 | <ownedStyle xmi:type="diagram:BundledImage" uid="_x3rKMV0vEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1849 | <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"/> | ||
1850 | </ownedStyle> | ||
1851 | <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']"/> | ||
1852 | </ownedElements> | ||
1853 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_yg2DAF0vEemRYLyXht2IrQ" name="X" tooltipText=""> | ||
1854 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/X"/> | ||
1855 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/X"/> | ||
1856 | <ownedStyle xmi:type="diagram:BundledImage" uid="_yg2qEF0vEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1857 | <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"/> | ||
1858 | </ownedStyle> | ||
1859 | <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']"/> | ||
1860 | </ownedElements> | ||
1861 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_zAInEF0vEemRYLyXht2IrQ" name="Ka" tooltipText=""> | ||
1862 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/Ka"/> | ||
1863 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/Ka"/> | ||
1864 | <ownedStyle xmi:type="diagram:BundledImage" uid="_zAInEV0vEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1865 | <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"/> | ||
1866 | </ownedStyle> | ||
1867 | <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']"/> | ||
1868 | </ownedElements> | ||
1869 | </ownedDiagramElements> | ||
1870 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_4B9iMF0vEemRYLyXht2IrQ" name="[1..2] commSubsystem" sourceNode="_3T7UUF0rEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ"> | ||
1871 | <target xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/commSubsystem"/> | ||
1872 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/commSubsystem"/> | ||
1873 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_6kODk10vEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
1874 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_6kODlV0vEemRYLyXht2IrQ" showIcon="false"> | ||
1875 | <labelFormat>bold</labelFormat> | ||
1876 | </centerLabelStyle> | ||
1877 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_6kODlF0vEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
1878 | </ownedStyle> | ||
1879 | <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']"/> | ||
1880 | </ownedDiagramElements> | ||
1881 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ctw9kF0wEemRYLyXht2IrQ" name="DirectedCommunicationLink" tooltipText="" outgoingEdges="_dbuYhl0xEemRYLyXht2IrQ _i2PgeV0xEemRYLyXht2IrQ" incomingEdges="_ccF89l0wEemRYLyXht2IrQ" width="12" height="10"> | ||
1882 | <target xmi:type="ecore:EClass" href="satellite.ecore#//DirectedCommunicationLink"/> | ||
1883 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//DirectedCommunicationLink"/> | ||
1884 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1885 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1886 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1887 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fC-qQ10xEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1888 | <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"/> | ||
1889 | </ownedStyle> | ||
1890 | <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']"/> | ||
1891 | </ownedDiagramElements> | ||
1892 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_M5OsAF0wEemRYLyXht2IrQ" name="AntennaGain" tooltipText="" width="12" height="10"> | ||
1893 | <target xmi:type="ecore:EEnum" href="satellite.ecore#//AntennaGain"/> | ||
1894 | <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//AntennaGain"/> | ||
1895 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1896 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1897 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1898 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_M5OsAV0wEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
1899 | <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"/> | ||
1900 | </ownedStyle> | ||
1901 | <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']"/> | ||
1902 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_OBacEF0wEemRYLyXht2IrQ" name="LOW" tooltipText=""> | ||
1903 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/LOW"/> | ||
1904 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/LOW"/> | ||
1905 | <ownedStyle xmi:type="diagram:BundledImage" uid="_OBbDIF0wEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1906 | <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"/> | ||
1907 | </ownedStyle> | ||
1908 | <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']"/> | ||
1909 | </ownedElements> | ||
1910 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_OcLsgF0wEemRYLyXht2IrQ" name="MEDIUM" tooltipText=""> | ||
1911 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/MEDIUM"/> | ||
1912 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/MEDIUM"/> | ||
1913 | <ownedStyle xmi:type="diagram:BundledImage" uid="_OcLsgV0wEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1914 | <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"/> | ||
1915 | </ownedStyle> | ||
1916 | <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']"/> | ||
1917 | </ownedElements> | ||
1918 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_O9wIgF0wEemRYLyXht2IrQ" name="HIGH" tooltipText=""> | ||
1919 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/HIGH"/> | ||
1920 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/HIGH"/> | ||
1921 | <ownedStyle xmi:type="diagram:BundledImage" uid="_O9wvkF0wEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1922 | <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"/> | ||
1923 | </ownedStyle> | ||
1924 | <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']"/> | ||
1925 | </ownedElements> | ||
1926 | </ownedDiagramElements> | ||
1927 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ccF89l0wEemRYLyXht2IrQ" name="[0..1] communicationLink" sourceNode="_3T7UUF0rEemRYLyXht2IrQ" targetNode="_Ctw9kF0wEemRYLyXht2IrQ"> | ||
1928 | <target xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/communicationLink"/> | ||
1929 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/communicationLink"/> | ||
1930 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ccHLE10wEemRYLyXht2IrQ" description="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
1931 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ccHLFV0wEemRYLyXht2IrQ" showIcon="false"> | ||
1932 | <customFeatures>labelSize</customFeatures> | ||
1933 | </centerLabelStyle> | ||
1934 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ccHLFF0wEemRYLyXht2IrQ" showIcon="false" labelColor="39,76,114"> | ||
1935 | <customFeatures>labelSize</customFeatures> | ||
1936 | </endLabelStyle> | ||
1937 | </ownedStyle> | ||
1938 | <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']"/> | ||
1939 | </ownedDiagramElements> | ||
1940 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dbuYhl0xEemRYLyXht2IrQ" name="[1..1] source" sourceNode="_Ctw9kF0wEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ"> | ||
1941 | <target xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/source"/> | ||
1942 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/source"/> | ||
1943 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_fDAfY10xEemRYLyXht2IrQ" description="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan" strokeColor="0,0,0"> | ||
1944 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_fDAfZV0xEemRYLyXht2IrQ" showIcon="false"> | ||
1945 | <labelFormat>bold</labelFormat> | ||
1946 | </centerLabelStyle> | ||
1947 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_fDAfZF0xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
1948 | </ownedStyle> | ||
1949 | <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']"/> | ||
1950 | </ownedDiagramElements> | ||
1951 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_i2PgeV0xEemRYLyXht2IrQ" name="[1..1] target" sourceNode="_Ctw9kF0wEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ"> | ||
1952 | <target xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/target"/> | ||
1953 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/target"/> | ||
1954 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jrg7ll0xEemRYLyXht2IrQ" description="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan" strokeColor="0,0,0"> | ||
1955 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jrg7mF0xEemRYLyXht2IrQ" showIcon="false"> | ||
1956 | <labelFormat>bold</labelFormat> | ||
1957 | </centerLabelStyle> | ||
1958 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_jrg7l10xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
1959 | </ownedStyle> | ||
1960 | <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']"/> | ||
1961 | </ownedDiagramElements> | ||
1962 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_0aW3cF0xEemRYLyXht2IrQ" name="Payload" tooltipText="" incomingEdges="_3GzPll0xEemRYLyXht2IrQ _8iFzll0xEemRYLyXht2IrQ" width="12" height="10"> | ||
1963 | <target xmi:type="ecore:EClass" href="satellite.ecore#//Payload"/> | ||
1964 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Payload"/> | ||
1965 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1966 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1967 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1968 | <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"> | ||
1969 | <labelFormat>italic</labelFormat> | ||
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']/@conditionnalStyles.1/@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:DEdge" uid="_3GzPll0xEemRYLyXht2IrQ" name="[0..1] payload" sourceNode="_AqsPYF0sEemRYLyXht2IrQ" targetNode="_0aW3cF0xEemRYLyXht2IrQ"> | ||
1975 | <target xmi:type="ecore:EReference" href="satellite.ecore#//Spacecraft/payload"/> | ||
1976 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//Spacecraft/payload"/> | ||
1977 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3G0dsF0xEemRYLyXht2IrQ" description="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
1978 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_3G0dsl0xEemRYLyXht2IrQ" showIcon="false"> | ||
1979 | <customFeatures>labelSize</customFeatures> | ||
1980 | </centerLabelStyle> | ||
1981 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3G0dsV0xEemRYLyXht2IrQ" showIcon="false" labelColor="39,76,114"> | ||
1982 | <customFeatures>labelSize</customFeatures> | ||
1983 | </endLabelStyle> | ||
1984 | </ownedStyle> | ||
1985 | <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']"/> | ||
1986 | </ownedDiagramElements> | ||
1987 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_45FskF0xEemRYLyXht2IrQ" name="InterferometryPayload" tooltipText="" outgoingEdges="_8iFzll0xEemRYLyXht2IrQ" width="12" height="10"> | ||
1988 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
1989 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
1990 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1991 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1992 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1993 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IHvBB10yEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1994 | <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"/> | ||
1995 | </ownedStyle> | ||
1996 | <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']"/> | ||
1997 | </ownedDiagramElements> | ||
1998 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_8iFzll0xEemRYLyXht2IrQ" sourceNode="_45FskF0xEemRYLyXht2IrQ" targetNode="_0aW3cF0xEemRYLyXht2IrQ"> | ||
1999 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
2000 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
2001 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IH284l0yEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
2002 | <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"/> | ||
2003 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IH28410yEemRYLyXht2IrQ" showIcon="false"> | ||
2004 | <labelFormat>italic</labelFormat> | ||
2005 | </beginLabelStyle> | ||
2006 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IH285F0yEemRYLyXht2IrQ" showIcon="false"/> | ||
2007 | </ownedStyle> | ||
2008 | <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']"/> | ||
2009 | </ownedDiagramElements> | ||
2010 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_KzljXl0yEemRYLyXht2IrQ" name="[1..1] groundStationNetwork" sourceNode="_tM4oUF0qEemRYLyXht2IrQ" targetNode="__OYCYF0rEemRYLyXht2IrQ"> | ||
2011 | <target xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/groundStationNetwork"/> | ||
2012 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/groundStationNetwork"/> | ||
2013 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_MI6-gF0yEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2014 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_MI6-gl0yEemRYLyXht2IrQ" showIcon="false"> | ||
2015 | <labelFormat>bold</labelFormat> | ||
2016 | </centerLabelStyle> | ||
2017 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_MI6-gV0yEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
2018 | </ownedStyle> | ||
2019 | <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']"/> | ||
2020 | </ownedDiagramElements> | ||
2021 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PdH6PF0yEemRYLyXht2IrQ" name="[2..50] spacecraft" sourceNode="_tM4oUF0qEemRYLyXht2IrQ" targetNode="_AqsPYF0sEemRYLyXht2IrQ"> | ||
2022 | <target xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/spacecraft"/> | ||
2023 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/spacecraft"/> | ||
2024 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_SRBlMF0yEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2025 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_SRBlMl0yEemRYLyXht2IrQ" showIcon="false"> | ||
2026 | <labelFormat>bold</labelFormat> | ||
2027 | </centerLabelStyle> | ||
2028 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_SRBlMV0yEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
2029 | </ownedStyle> | ||
2030 | <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']"/> | ||
2031 | </ownedDiagramElements> | ||
2032 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_2oBw0G60Eem3gIPdAp40Tw" name="SpacecraftKind" tooltipText="" width="12" height="10"> | ||
2033 | <target xmi:type="ecore:EEnum" href="satellite.ecore#//SpacecraftKind"/> | ||
2034 | <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//SpacecraftKind"/> | ||
2035 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2036 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2037 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2038 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_2oC-8G60Eem3gIPdAp40Tw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
2039 | <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"/> | ||
2040 | </ownedStyle> | ||
2041 | <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']"/> | ||
2042 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_5P_4oG60Eem3gIPdAp40Tw" name="CubeSat3U" tooltipText=""> | ||
2043 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat3U"/> | ||
2044 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat3U"/> | ||
2045 | <ownedStyle xmi:type="diagram:BundledImage" uid="_5QAfsG60Eem3gIPdAp40Tw" labelAlignment="LEFT"> | ||
2046 | <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"/> | ||
2047 | </ownedStyle> | ||
2048 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2049 | </ownedElements> | ||
2050 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_6fjcAG60Eem3gIPdAp40Tw" name="SubeSat6U" tooltipText=""> | ||
2051 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SubeSat6U"/> | ||
2052 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SubeSat6U"/> | ||
2053 | <ownedStyle xmi:type="diagram:BundledImage" uid="_6fjcAW60Eem3gIPdAp40Tw" labelAlignment="LEFT"> | ||
2054 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
2055 | </ownedStyle> | ||
2056 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2057 | </ownedElements> | ||
2058 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_7R9JUG60Eem3gIPdAp40Tw" name="SmallSat" tooltipText=""> | ||
2059 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SmallSat"/> | ||
2060 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SmallSat"/> | ||
2061 | <ownedStyle xmi:type="diagram:BundledImage" uid="_7R-XcG60Eem3gIPdAp40Tw" labelAlignment="LEFT"> | ||
2062 | <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"/> | ||
2063 | </ownedStyle> | ||
2064 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2065 | </ownedElements> | ||
2066 | </ownedDiagramElements> | ||
2067 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
2068 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_reoWwF0qEemRYLyXht2IrQ"/> | ||
2069 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
2070 | <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']"/> | ||
2071 | <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']"/> | ||
2072 | <target xmi:type="ecore:EPackage" href="satellite.ecore#/"/> | ||
2073 | </diagram:DSemanticDiagram> | ||
2074 | </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..99766ab7 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore | |||
@@ -0,0 +1,53 @@ | |||
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 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//SpacecraftKind"/> | ||
25 | </eClassifiers> | ||
26 | <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem"> | ||
27 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="band" lowerBound="1" eType="#//TransceiverBand"/> | ||
28 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="gain" lowerBound="1" eType="#//AntennaGain"/> | ||
29 | </eClassifiers> | ||
30 | <eClassifiers xsi:type="ecore:EEnum" name="TransceiverBand"> | ||
31 | <eLiterals name="UHF"/> | ||
32 | <eLiterals name="X" value="1"/> | ||
33 | <eLiterals name="Ka" value="2"/> | ||
34 | </eClassifiers> | ||
35 | <eClassifiers xsi:type="ecore:EClass" name="DirectedCommunicationLink"> | ||
36 | <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1" | ||
37 | eType="#//CommSubsystem"/> | ||
38 | <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1" | ||
39 | eType="#//CommSubsystem"/> | ||
40 | </eClassifiers> | ||
41 | <eClassifiers xsi:type="ecore:EEnum" name="AntennaGain"> | ||
42 | <eLiterals name="LOW"/> | ||
43 | <eLiterals name="MEDIUM" value="1"/> | ||
44 | <eLiterals name="HIGH" value="2"/> | ||
45 | </eClassifiers> | ||
46 | <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/> | ||
47 | <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/> | ||
48 | <eClassifiers xsi:type="ecore:EEnum" name="SpacecraftKind"> | ||
49 | <eLiterals name="CubeSat3U"/> | ||
50 | <eLiterals name="CubeSat6U" value="1"/> | ||
51 | <eLiterals name="SmallSat" value="2"/> | ||
52 | </eClassifiers> | ||
53 | </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..61a4104a --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel | |||
@@ -0,0 +1,57 @@ | |||
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 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//SpacecraftKind"> | ||
26 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/CubeSat3U"/> | ||
27 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/CubeSat6U"/> | ||
28 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/SmallSat"/> | ||
29 | </genEnums> | ||
30 | <genClasses ecoreClass="satellite.ecore#//ConstellationMission"> | ||
31 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/> | ||
32 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/> | ||
33 | </genClasses> | ||
34 | <genClasses ecoreClass="satellite.ecore#//InterferometryMission"> | ||
35 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/> | ||
36 | </genClasses> | ||
37 | <genClasses ecoreClass="satellite.ecore#//CommunicatingElement"> | ||
38 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/> | ||
39 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/communicationLink"/> | ||
40 | </genClasses> | ||
41 | <genClasses ecoreClass="satellite.ecore#//GroundStationNetwork"/> | ||
42 | <genClasses ecoreClass="satellite.ecore#//Spacecraft"> | ||
43 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//Spacecraft/payload"/> | ||
44 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//Spacecraft/kind"/> | ||
45 | </genClasses> | ||
46 | <genClasses ecoreClass="satellite.ecore#//CommSubsystem"> | ||
47 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/band"/> | ||
48 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/gain"/> | ||
49 | </genClasses> | ||
50 | <genClasses ecoreClass="satellite.ecore#//DirectedCommunicationLink"> | ||
51 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/source"/> | ||
52 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/target"/> | ||
53 | </genClasses> | ||
54 | <genClasses ecoreClass="satellite.ecore#//Payload"/> | ||
55 | <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/> | ||
56 | </genPackages> | ||
57 | </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 @@ | |||
1 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
2 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
3 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
4 | |||
5 | ////////// | ||
6 | // 0. Util | ||
7 | ////////// | ||
8 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
9 | PartialInterpretation.problem(interpretation,problem); | ||
10 | } | ||
11 | |||
12 | ///////////////////////// | ||
13 | // 0.1 Existence | ||
14 | ///////////////////////// | ||
15 | private 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 | |||
23 | private 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 | |||
31 | private 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 | //////////////////////// | ||
43 | pattern 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 | //////////////////////// | ||
52 | private 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 | |||
59 | private 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 | |||
69 | private 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 | */ | ||
87 | private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
88 | Type.name(type,"ConstellationMission class"); | ||
89 | find directInstanceOf(problem,interpretation,element,type); | ||
90 | } | ||
91 | private 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 | */ | ||
103 | private 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 | */ | ||
131 | private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
132 | Type.name(type,"InterferometryMission class"); | ||
133 | find directInstanceOf(problem,interpretation,element,type); | ||
134 | } | ||
135 | private 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 | */ | ||
147 | private 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 | */ | ||
173 | private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
174 | Type.name(type,"CommunicatingElement class"); | ||
175 | find directInstanceOf(problem,interpretation,element,type); | ||
176 | } | ||
177 | private 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 | */ | ||
189 | private 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 | */ | ||
217 | private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
218 | Type.name(type,"GroundStationNetwork class"); | ||
219 | find directInstanceOf(problem,interpretation,element,type); | ||
220 | } | ||
221 | private 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 | */ | ||
233 | private 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 | */ | ||
259 | private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
260 | Type.name(type,"Spacecraft class"); | ||
261 | find directInstanceOf(problem,interpretation,element,type); | ||
262 | } | ||
263 | private 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 | */ | ||
275 | private 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 | */ | ||
307 | private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
308 | Type.name(type,"CubeSat3U class"); | ||
309 | find directInstanceOf(problem,interpretation,element,type); | ||
310 | } | ||
311 | private 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 | */ | ||
323 | private 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 | */ | ||
353 | private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
354 | Type.name(type,"CubeSat6U class"); | ||
355 | find directInstanceOf(problem,interpretation,element,type); | ||
356 | } | ||
357 | private 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 | */ | ||
369 | private 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 | */ | ||
399 | private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
400 | Type.name(type,"SmallSat class"); | ||
401 | find directInstanceOf(problem,interpretation,element,type); | ||
402 | } | ||
403 | private 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 | */ | ||
415 | private 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 | */ | ||
445 | private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
446 | Type.name(type,"CommSubsystem class"); | ||
447 | find directInstanceOf(problem,interpretation,element,type); | ||
448 | } | ||
449 | private 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 | */ | ||
461 | private 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 | */ | ||
487 | private pattern mustInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
488 | Type.name(type,"DirectedCommunicationLink class"); | ||
489 | find directInstanceOf(problem,interpretation,element,type); | ||
490 | } | ||
491 | private 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 | */ | ||
503 | private 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 | */ | ||
527 | private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
528 | Type.name(type,"Payload class"); | ||
529 | find directInstanceOf(problem,interpretation,element,type); | ||
530 | } | ||
531 | private 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 | */ | ||
543 | private 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 | */ | ||
569 | private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
570 | Type.name(type,"InterferometryPayload class"); | ||
571 | find directInstanceOf(problem,interpretation,element,type); | ||
572 | } | ||
573 | private 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 | */ | ||
585 | private 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 | */ | ||
609 | private pattern mustInstanceOfTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
610 | Type.name(type,"TransceiverBand enum"); | ||
611 | find directInstanceOf(problem,interpretation,element,type); | ||
612 | } | ||
613 | private 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 | */ | ||
625 | private 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 | */ | ||
630 | private pattern mustInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
631 | Type.name(type,"AntennaGain enum"); | ||
632 | find directInstanceOf(problem,interpretation,element,type); | ||
633 | } | ||
634 | private 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 | */ | ||
646 | private 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 | */ | ||
651 | private 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 | } | ||
655 | private 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 | */ | ||
667 | private 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 | */ | ||
672 | private 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 | } | ||
676 | private 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 | */ | ||
688 | private 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 | */ | ||
714 | private 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 | } | ||
718 | private 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 | */ | ||
730 | private 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 | */ | ||
735 | private 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 | } | ||
739 | private 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 | */ | ||
751 | private 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 | */ | ||
775 | private 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 | } | ||
779 | private 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 | */ | ||
791 | private 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 | */ | ||
796 | private 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 | } | ||
800 | private 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 | */ | ||
812 | private 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 | */ | ||
840 | private 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 | } | ||
844 | private 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 | */ | ||
856 | private 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 | */ | ||
861 | private 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 | } | ||
865 | private 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 | */ | ||
877 | private 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 | */ | ||
903 | private 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 | } | ||
907 | private 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 | */ | ||
919 | private 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 | */ | ||
924 | private 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 | } | ||
928 | private 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 | */ | ||
940 | private 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 | */ | ||
968 | private 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 | */ | ||
982 | private 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 | */ | ||
1008 | private 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 | */ | ||
1022 | private 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 | */ | ||
1048 | private 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 | */ | ||
1062 | private 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 | */ | ||
1088 | private 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 | */ | ||
1102 | private 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 | */ | ||
1128 | private 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 | */ | ||
1142 | private 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 | */ | ||
1168 | private 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 | */ | ||
1182 | private 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 | */ | ||
1203 | private 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 | */ | ||
1217 | private 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 | */ | ||
1238 | private 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 | */ | ||
1252 | private 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 | */ | ||
1273 | private 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 | */ | ||
1287 | private 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 | ||
1310 | private 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 | } | ||
1331 | private 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 | } | ||
1352 | private 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 | ||
1374 | private 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 | } | ||
1384 | private 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 | } | ||
1394 | private 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 | ||
1405 | private 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 | } | ||
1416 | private 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 | } | ||
1427 | private 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 | ||
1439 | private 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 | } | ||
1458 | private 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 | } | ||
1477 | private 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 | ||
1497 | private 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 | } | ||
1514 | private 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 | } | ||
1531 | private 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 | ||
1549 | private 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 | } | ||
1558 | private 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 | } | ||
1567 | private 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 | ||
1577 | private 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 | } | ||
1588 | private 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 | } | ||
1599 | private 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 | ||
1611 | private 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 | } | ||
1637 | private 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 | } | ||
1663 | private 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 | } | ||
1689 | private 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 | } | ||
1692 | private 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 | } | ||
1695 | private 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 | ||
1699 | private 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 | } | ||
1720 | private 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 | } | ||
1741 | private 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 | ||
1763 | private 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 | } | ||
1777 | private 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 | } | ||
1791 | private 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 | ||
1806 | private 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 | } | ||
1827 | private 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 | } | ||
1848 | private 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 | ||
1870 | private 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 | } | ||
1884 | private 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 | } | ||
1898 | private 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 | ||
1913 | private 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 | } | ||
1927 | private 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 | } | ||
1941 | private 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 | ||
1956 | private 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 | } | ||
1969 | private 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 | } | ||
1982 | private 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 | ||
1996 | private 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 | } | ||
2010 | private 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 | } | ||
2024 | private 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 | ||
2039 | private 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 | } | ||
2052 | private 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 | } | ||
2065 | private 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 | ||
2079 | private 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 | } | ||
2097 | private 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 | } | ||
2115 | private 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 | ||
2134 | private 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 | } | ||
2160 | private 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 | } | ||
2186 | private 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 | ||
2213 | private 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 | } | ||
2226 | private 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 | } | ||
2239 | private 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 | ||
2253 | private 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 | } | ||
2262 | private 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 | } | ||
2271 | private 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 | ||
2281 | private 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 | } | ||
2297 | private 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 | } | ||
2313 | private 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 | ||
2330 | private 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 | } | ||
2339 | private 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 | } | ||
2348 | private 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 | ////////// | ||
2361 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
2362 | find mustContains4(_,_,source,target); | ||
2363 | } | ||
2364 | |||
2365 | private 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 | |||
2377 | private 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 | ////////// | ||
2386 | pattern 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 | } | ||
2391 | pattern 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 | } | ||
2396 | pattern 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 | } | ||
2401 | pattern 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 | } | ||
2406 | pattern 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 | } | ||
2411 | pattern 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 | } | ||
2416 | pattern 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 | } | ||
2421 | pattern 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 | } | ||
2426 | pattern 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 | } | ||
2431 | pattern 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 | ////////// | ||
2442 | pattern 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 | } | ||
2451 | pattern 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 | } | ||
2460 | pattern 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 | } | ||
2469 | pattern 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 | } | ||
2478 | pattern 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 | } | ||
2487 | pattern 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 | } | ||
2496 | pattern 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 | ////////// | ||
2509 | pattern 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 | } | ||
2514 | pattern 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 | } | ||
2519 | pattern 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 | } | ||
2524 | pattern 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 | } | ||
2529 | pattern 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 | } | ||
2534 | pattern 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 | } | ||
2539 | pattern 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 | } | ||
2544 | pattern 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 | } | ||
2549 | pattern 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 | } | ||
2554 | pattern 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 | ////////// | ||
2565 | private 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 | } | ||
2655 | pattern 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 | } | ||
2671 | pattern 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 | } | ||
2683 | pattern 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 | } | ||
2699 | pattern 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 | } | ||
2711 | pattern 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 | } | ||
2727 | pattern 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 | } | ||
2739 | pattern 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 | } | ||
2755 | pattern 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 | } | ||
2767 | pattern 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 | } | ||
2783 | pattern 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 | } | ||
2795 | pattern 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 | } | ||
2811 | pattern 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 | } | ||
2823 | pattern 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 | } | ||
2839 | pattern 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 | } | ||
2851 | pattern 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 | ////////// | ||
2867 | pattern 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 | } | ||
2880 | pattern 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 | } | ||
2890 | pattern 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 | } | ||
2900 | pattern 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 | } | ||
2913 | pattern 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 | } | ||
2926 | pattern 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 | } | ||
2937 | pattern 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 | } | ||
2947 | pattern 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 | ////////// | ||
2961 | pattern 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 | } | ||
2976 | pattern 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 | } | ||
2991 | pattern 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 | } | ||
3006 | pattern 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 @@ | |||
1 | graph | ||
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 @@ | |||
1 | graph | ||
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 @@ | |||
1 | graph | ||
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 @@ | |||
1 | graph | ||
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 @@ | |||
1 | graph | ||
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 @@ | |||
1 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
2 | 1;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 | |||
3 | pluginName = hu.bme.mit.inf.dslreasoner.domains.satellite | ||
4 | providerName = 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..0cdd345c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml | |||
@@ -0,0 +1,25 @@ | |||
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 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric"/> | ||
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric"/> | ||
22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric"/> | ||
23 | </group> | ||
24 | </extension> | ||
25 | </plugin> | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore new file mode 100644 index 00000000..3e7cd5e2 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/.gitignore | |||
@@ -0,0 +1,2 @@ | |||
1 | /.CoverageMetric.java._trace | ||
2 | /.SatelliteMetrics.java._trace | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore new file mode 100644 index 00000000..d3195cfc --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/metrics/internal/.gitignore | |||
@@ -0,0 +1,2 @@ | |||
1 | /.MissionCoverage.java._trace | ||
2 | /.SatelliteMetricsAll.java._trace | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore new file mode 100644 index 00000000..5f0d5b4b --- /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,22 @@ | |||
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 | ||
17 | /.SpacecraftWithInterferometryPayload.java._trace | ||
18 | /.SatelliteMetrics.java._trace | ||
19 | /.CoverageMetric.java._trace | ||
20 | /.TimeMetric.java._trace | ||
21 | /.CostMetric.java._trace | ||
22 | /.SpacecraftCost.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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.emf.ecore.EClass; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
42 | import 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") | ||
64 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
41 | import 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") | ||
63 | public 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/CostMetric.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CostMetric.java new file mode 100644 index 00000000..474719b2 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CostMetric.java | |||
@@ -0,0 +1,544 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import 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 | * // Cost | ||
47 | * | ||
48 | * pattern costMetric(Cost : java Double) { | ||
49 | * Cost == sum find missionCost(_, #_); | ||
50 | * } | ||
51 | * </pre></code> | ||
52 | * | ||
53 | * @see Matcher | ||
54 | * @see Match | ||
55 | * | ||
56 | */ | ||
57 | @SuppressWarnings("all") | ||
58 | public final class CostMetric extends BaseGeneratedEMFQuerySpecification<CostMetric.Matcher> { | ||
59 | /** | ||
60 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric pattern, | ||
61 | * to be used in conjunction with {@link Matcher}. | ||
62 | * | ||
63 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
64 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
65 | * usable to represent a match of the pattern in the result of a query, | ||
66 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
67 | * | ||
68 | * @see Matcher | ||
69 | * | ||
70 | */ | ||
71 | public static abstract class Match extends BasePatternMatch { | ||
72 | private Double fCost; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("Cost"); | ||
75 | |||
76 | private Match(final Double pCost) { | ||
77 | this.fCost = pCost; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | if ("Cost".equals(parameterName)) return this.fCost; | ||
83 | return null; | ||
84 | } | ||
85 | |||
86 | public Double getCost() { | ||
87 | return this.fCost; | ||
88 | } | ||
89 | |||
90 | @Override | ||
91 | public boolean set(final String parameterName, final Object newValue) { | ||
92 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
93 | if ("Cost".equals(parameterName) ) { | ||
94 | this.fCost = (Double) newValue; | ||
95 | return true; | ||
96 | } | ||
97 | return false; | ||
98 | } | ||
99 | |||
100 | public void setCost(final Double pCost) { | ||
101 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
102 | this.fCost = pCost; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public String patternName() { | ||
107 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric"; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<String> parameterNames() { | ||
112 | return CostMetric.Match.parameterNames; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public Object[] toArray() { | ||
117 | return new Object[]{fCost}; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public CostMetric.Match toImmutable() { | ||
122 | return isMutable() ? newMatch(fCost) : this; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public String prettyPrint() { | ||
127 | StringBuilder result = new StringBuilder(); | ||
128 | result.append("\"Cost\"=" + prettyPrintValue(fCost)); | ||
129 | return result.toString(); | ||
130 | } | ||
131 | |||
132 | @Override | ||
133 | public int hashCode() { | ||
134 | return Objects.hash(fCost); | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public boolean equals(final Object obj) { | ||
139 | if (this == obj) | ||
140 | return true; | ||
141 | if (obj == null) { | ||
142 | return false; | ||
143 | } | ||
144 | if ((obj instanceof CostMetric.Match)) { | ||
145 | CostMetric.Match other = (CostMetric.Match) obj; | ||
146 | return Objects.equals(fCost, other.fCost); | ||
147 | } else { | ||
148 | // this should be infrequent | ||
149 | if (!(obj instanceof IPatternMatch)) { | ||
150 | return false; | ||
151 | } | ||
152 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
153 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
154 | } | ||
155 | } | ||
156 | |||
157 | @Override | ||
158 | public CostMetric specification() { | ||
159 | return CostMetric.instance(); | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * Returns an empty, mutable match. | ||
164 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
165 | * | ||
166 | * @return the empty match. | ||
167 | * | ||
168 | */ | ||
169 | public static CostMetric.Match newEmptyMatch() { | ||
170 | return new Mutable(null); | ||
171 | } | ||
172 | |||
173 | /** | ||
174 | * Returns a mutable (partial) match. | ||
175 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
176 | * | ||
177 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
178 | * @return the new, mutable (partial) match object. | ||
179 | * | ||
180 | */ | ||
181 | public static CostMetric.Match newMutableMatch(final Double pCost) { | ||
182 | return new Mutable(pCost); | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * Returns a new (partial) match. | ||
187 | * This can be used e.g. to call the matcher with a partial match. | ||
188 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
189 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
190 | * @return the (partial) match object. | ||
191 | * | ||
192 | */ | ||
193 | public static CostMetric.Match newMatch(final Double pCost) { | ||
194 | return new Immutable(pCost); | ||
195 | } | ||
196 | |||
197 | private static final class Mutable extends CostMetric.Match { | ||
198 | Mutable(final Double pCost) { | ||
199 | super(pCost); | ||
200 | } | ||
201 | |||
202 | @Override | ||
203 | public boolean isMutable() { | ||
204 | return true; | ||
205 | } | ||
206 | } | ||
207 | |||
208 | private static final class Immutable extends CostMetric.Match { | ||
209 | Immutable(final Double pCost) { | ||
210 | super(pCost); | ||
211 | } | ||
212 | |||
213 | @Override | ||
214 | public boolean isMutable() { | ||
215 | return false; | ||
216 | } | ||
217 | } | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric pattern, | ||
222 | * providing pattern-specific query methods. | ||
223 | * | ||
224 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
225 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
226 | * | ||
227 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
228 | * | ||
229 | * <p>Original source: | ||
230 | * <code><pre> | ||
231 | * // Cost | ||
232 | * | ||
233 | * pattern costMetric(Cost : java Double) { | ||
234 | * Cost == sum find missionCost(_, #_); | ||
235 | * } | ||
236 | * </pre></code> | ||
237 | * | ||
238 | * @see Match | ||
239 | * @see CostMetric | ||
240 | * | ||
241 | */ | ||
242 | public static class Matcher extends BaseMatcher<CostMetric.Match> { | ||
243 | /** | ||
244 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
245 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
246 | * | ||
247 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
248 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
249 | * | ||
250 | */ | ||
251 | public static CostMetric.Matcher on(final ViatraQueryEngine engine) { | ||
252 | // check if matcher already exists | ||
253 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
254 | if (matcher == null) { | ||
255 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
256 | } | ||
257 | return matcher; | ||
258 | } | ||
259 | |||
260 | /** | ||
261 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
262 | * @return an initialized matcher | ||
263 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
264 | * | ||
265 | */ | ||
266 | public static CostMetric.Matcher create() { | ||
267 | return new Matcher(); | ||
268 | } | ||
269 | |||
270 | private static final int POSITION_COST = 0; | ||
271 | |||
272 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CostMetric.Matcher.class); | ||
273 | |||
274 | /** | ||
275 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
276 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
277 | * | ||
278 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
279 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
280 | * | ||
281 | */ | ||
282 | private Matcher() { | ||
283 | super(querySpecification()); | ||
284 | } | ||
285 | |||
286 | /** | ||
287 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
288 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
289 | * @return matches represented as a Match object. | ||
290 | * | ||
291 | */ | ||
292 | public Collection<CostMetric.Match> getAllMatches(final Double pCost) { | ||
293 | return rawStreamAllMatches(new Object[]{pCost}).collect(Collectors.toSet()); | ||
294 | } | ||
295 | |||
296 | /** | ||
297 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
298 | * </p> | ||
299 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
300 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
301 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
302 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
303 | * @return a stream of matches represented as a Match object. | ||
304 | * | ||
305 | */ | ||
306 | public Stream<CostMetric.Match> streamAllMatches(final Double pCost) { | ||
307 | return rawStreamAllMatches(new Object[]{pCost}); | ||
308 | } | ||
309 | |||
310 | /** | ||
311 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
312 | * Neither determinism nor randomness of selection is guaranteed. | ||
313 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
314 | * @return a match represented as a Match object, or null if no match is found. | ||
315 | * | ||
316 | */ | ||
317 | public Optional<CostMetric.Match> getOneArbitraryMatch(final Double pCost) { | ||
318 | return rawGetOneArbitraryMatch(new Object[]{pCost}); | ||
319 | } | ||
320 | |||
321 | /** | ||
322 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
323 | * under any possible substitution of the unspecified parameters (if any). | ||
324 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
325 | * @return true if the input is a valid (partial) match of the pattern. | ||
326 | * | ||
327 | */ | ||
328 | public boolean hasMatch(final Double pCost) { | ||
329 | return rawHasMatch(new Object[]{pCost}); | ||
330 | } | ||
331 | |||
332 | /** | ||
333 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
334 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
335 | * @return the number of pattern matches found. | ||
336 | * | ||
337 | */ | ||
338 | public int countMatches(final Double pCost) { | ||
339 | return rawCountMatches(new Object[]{pCost}); | ||
340 | } | ||
341 | |||
342 | /** | ||
343 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
344 | * Neither determinism nor randomness of selection is guaranteed. | ||
345 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
346 | * @param processor the action that will process the selected match. | ||
347 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
348 | * | ||
349 | */ | ||
350 | public boolean forOneArbitraryMatch(final Double pCost, final Consumer<? super CostMetric.Match> processor) { | ||
351 | return rawForOneArbitraryMatch(new Object[]{pCost}, processor); | ||
352 | } | ||
353 | |||
354 | /** | ||
355 | * Returns a new (partial) match. | ||
356 | * This can be used e.g. to call the matcher with a partial match. | ||
357 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
358 | * @param pCost the fixed value of pattern parameter Cost, or null if not bound. | ||
359 | * @return the (partial) match object. | ||
360 | * | ||
361 | */ | ||
362 | public CostMetric.Match newMatch(final Double pCost) { | ||
363 | return CostMetric.Match.newMatch(pCost); | ||
364 | } | ||
365 | |||
366 | /** | ||
367 | * Retrieve the set of values that occur in matches for Cost. | ||
368 | * @return the Set of all values or empty set if there are no matches | ||
369 | * | ||
370 | */ | ||
371 | protected Stream<Double> rawStreamAllValuesOfCost(final Object[] parameters) { | ||
372 | return rawStreamAllValues(POSITION_COST, parameters).map(Double.class::cast); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * Retrieve the set of values that occur in matches for Cost. | ||
377 | * @return the Set of all values or empty set if there are no matches | ||
378 | * | ||
379 | */ | ||
380 | public Set<Double> getAllValuesOfCost() { | ||
381 | return rawStreamAllValuesOfCost(emptyArray()).collect(Collectors.toSet()); | ||
382 | } | ||
383 | |||
384 | /** | ||
385 | * Retrieve the set of values that occur in matches for Cost. | ||
386 | * @return the Set of all values or empty set if there are no matches | ||
387 | * | ||
388 | */ | ||
389 | public Stream<Double> streamAllValuesOfCost() { | ||
390 | return rawStreamAllValuesOfCost(emptyArray()); | ||
391 | } | ||
392 | |||
393 | @Override | ||
394 | protected CostMetric.Match tupleToMatch(final Tuple t) { | ||
395 | try { | ||
396 | return CostMetric.Match.newMatch((Double) t.get(POSITION_COST)); | ||
397 | } catch(ClassCastException e) { | ||
398 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
399 | return null; | ||
400 | } | ||
401 | } | ||
402 | |||
403 | @Override | ||
404 | protected CostMetric.Match arrayToMatch(final Object[] match) { | ||
405 | try { | ||
406 | return CostMetric.Match.newMatch((Double) match[POSITION_COST]); | ||
407 | } catch(ClassCastException e) { | ||
408 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
409 | return null; | ||
410 | } | ||
411 | } | ||
412 | |||
413 | @Override | ||
414 | protected CostMetric.Match arrayToMatchMutable(final Object[] match) { | ||
415 | try { | ||
416 | return CostMetric.Match.newMutableMatch((Double) match[POSITION_COST]); | ||
417 | } catch(ClassCastException e) { | ||
418 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
419 | return null; | ||
420 | } | ||
421 | } | ||
422 | |||
423 | /** | ||
424 | * @return the singleton instance of the query specification of this pattern | ||
425 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
426 | * | ||
427 | */ | ||
428 | public static IQuerySpecification<CostMetric.Matcher> querySpecification() { | ||
429 | return CostMetric.instance(); | ||
430 | } | ||
431 | } | ||
432 | |||
433 | private CostMetric() { | ||
434 | super(GeneratedPQuery.INSTANCE); | ||
435 | } | ||
436 | |||
437 | /** | ||
438 | * @return the singleton instance of the query specification | ||
439 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
440 | * | ||
441 | */ | ||
442 | public static CostMetric instance() { | ||
443 | try{ | ||
444 | return LazyHolder.INSTANCE; | ||
445 | } catch (ExceptionInInitializerError err) { | ||
446 | throw processInitializerError(err); | ||
447 | } | ||
448 | } | ||
449 | |||
450 | @Override | ||
451 | protected CostMetric.Matcher instantiate(final ViatraQueryEngine engine) { | ||
452 | return CostMetric.Matcher.on(engine); | ||
453 | } | ||
454 | |||
455 | @Override | ||
456 | public CostMetric.Matcher instantiate() { | ||
457 | return CostMetric.Matcher.create(); | ||
458 | } | ||
459 | |||
460 | @Override | ||
461 | public CostMetric.Match newEmptyMatch() { | ||
462 | return CostMetric.Match.newEmptyMatch(); | ||
463 | } | ||
464 | |||
465 | @Override | ||
466 | public CostMetric.Match newMatch(final Object... parameters) { | ||
467 | return CostMetric.Match.newMatch((java.lang.Double) parameters[0]); | ||
468 | } | ||
469 | |||
470 | /** | ||
471 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric (visibility: PUBLIC, simpleName: CostMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
472 | * <b>not</b> at the class load time of the outer class, | ||
473 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric (visibility: PUBLIC, simpleName: CostMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
474 | * | ||
475 | * <p> This workaround is required e.g. to support recursion. | ||
476 | * | ||
477 | */ | ||
478 | private static class LazyHolder { | ||
479 | private static final CostMetric INSTANCE = new CostMetric(); | ||
480 | |||
481 | /** | ||
482 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
483 | * This initialization order is required to support indirect recursion. | ||
484 | * | ||
485 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
486 | * | ||
487 | */ | ||
488 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
489 | |||
490 | public static Object ensureInitialized() { | ||
491 | INSTANCE.ensureInitializedInternal(); | ||
492 | return null; | ||
493 | } | ||
494 | } | ||
495 | |||
496 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
497 | private static final CostMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
498 | |||
499 | private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
500 | |||
501 | private final List<PParameter> parameters = Arrays.asList(parameter_Cost); | ||
502 | |||
503 | private GeneratedPQuery() { | ||
504 | super(PVisibility.PUBLIC); | ||
505 | } | ||
506 | |||
507 | @Override | ||
508 | public String getFullyQualifiedName() { | ||
509 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.costMetric"; | ||
510 | } | ||
511 | |||
512 | @Override | ||
513 | public List<String> getParameterNames() { | ||
514 | return Arrays.asList("Cost"); | ||
515 | } | ||
516 | |||
517 | @Override | ||
518 | public List<PParameter> getParameters() { | ||
519 | return parameters; | ||
520 | } | ||
521 | |||
522 | @Override | ||
523 | public Set<PBody> doGetContainedBodies() { | ||
524 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
525 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
526 | { | ||
527 | PBody body = new PBody(this); | ||
528 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
529 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
530 | PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); | ||
531 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
532 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
533 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
534 | )); | ||
535 | // Cost == sum find missionCost(_, #_) | ||
536 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
537 | new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var___0_, var___1_), MissionCost.instance().getInternalQueryRepresentation(), var__virtual_0_, 1); | ||
538 | new Equality(body, var_Cost, var__virtual_0_); | ||
539 | bodies.add(body); | ||
540 | } | ||
541 | return bodies; | ||
542 | } | ||
543 | } | ||
544 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CoverageMetric.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CoverageMetric.java new file mode 100644 index 00000000..23b02ce4 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CoverageMetric.java | |||
@@ -0,0 +1,552 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import 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 | * // | ||
47 | * // Metrics | ||
48 | * // | ||
49 | * | ||
50 | * // Coverage | ||
51 | * | ||
52 | * pattern coverageMetric(Coverage : java Double) { | ||
53 | * Coverage == sum find missionCoverage(_, #_); | ||
54 | * } | ||
55 | * </pre></code> | ||
56 | * | ||
57 | * @see Matcher | ||
58 | * @see Match | ||
59 | * | ||
60 | */ | ||
61 | @SuppressWarnings("all") | ||
62 | public final class CoverageMetric extends BaseGeneratedEMFQuerySpecification<CoverageMetric.Matcher> { | ||
63 | /** | ||
64 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric pattern, | ||
65 | * to be used in conjunction with {@link Matcher}. | ||
66 | * | ||
67 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
68 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
69 | * usable to represent a match of the pattern in the result of a query, | ||
70 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
71 | * | ||
72 | * @see Matcher | ||
73 | * | ||
74 | */ | ||
75 | public static abstract class Match extends BasePatternMatch { | ||
76 | private Double fCoverage; | ||
77 | |||
78 | private static List<String> parameterNames = makeImmutableList("Coverage"); | ||
79 | |||
80 | private Match(final Double pCoverage) { | ||
81 | this.fCoverage = pCoverage; | ||
82 | } | ||
83 | |||
84 | @Override | ||
85 | public Object get(final String parameterName) { | ||
86 | if ("Coverage".equals(parameterName)) return this.fCoverage; | ||
87 | return null; | ||
88 | } | ||
89 | |||
90 | public Double getCoverage() { | ||
91 | return this.fCoverage; | ||
92 | } | ||
93 | |||
94 | @Override | ||
95 | public boolean set(final String parameterName, final Object newValue) { | ||
96 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
97 | if ("Coverage".equals(parameterName) ) { | ||
98 | this.fCoverage = (Double) newValue; | ||
99 | return true; | ||
100 | } | ||
101 | return false; | ||
102 | } | ||
103 | |||
104 | public void setCoverage(final Double pCoverage) { | ||
105 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
106 | this.fCoverage = pCoverage; | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public String patternName() { | ||
111 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric"; | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public List<String> parameterNames() { | ||
116 | return CoverageMetric.Match.parameterNames; | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public Object[] toArray() { | ||
121 | return new Object[]{fCoverage}; | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public CoverageMetric.Match toImmutable() { | ||
126 | return isMutable() ? newMatch(fCoverage) : this; | ||
127 | } | ||
128 | |||
129 | @Override | ||
130 | public String prettyPrint() { | ||
131 | StringBuilder result = new StringBuilder(); | ||
132 | result.append("\"Coverage\"=" + prettyPrintValue(fCoverage)); | ||
133 | return result.toString(); | ||
134 | } | ||
135 | |||
136 | @Override | ||
137 | public int hashCode() { | ||
138 | return Objects.hash(fCoverage); | ||
139 | } | ||
140 | |||
141 | @Override | ||
142 | public boolean equals(final Object obj) { | ||
143 | if (this == obj) | ||
144 | return true; | ||
145 | if (obj == null) { | ||
146 | return false; | ||
147 | } | ||
148 | if ((obj instanceof CoverageMetric.Match)) { | ||
149 | CoverageMetric.Match other = (CoverageMetric.Match) obj; | ||
150 | return Objects.equals(fCoverage, other.fCoverage); | ||
151 | } else { | ||
152 | // this should be infrequent | ||
153 | if (!(obj instanceof IPatternMatch)) { | ||
154 | return false; | ||
155 | } | ||
156 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
157 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
158 | } | ||
159 | } | ||
160 | |||
161 | @Override | ||
162 | public CoverageMetric specification() { | ||
163 | return CoverageMetric.instance(); | ||
164 | } | ||
165 | |||
166 | /** | ||
167 | * Returns an empty, mutable match. | ||
168 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
169 | * | ||
170 | * @return the empty match. | ||
171 | * | ||
172 | */ | ||
173 | public static CoverageMetric.Match newEmptyMatch() { | ||
174 | return new Mutable(null); | ||
175 | } | ||
176 | |||
177 | /** | ||
178 | * Returns a mutable (partial) match. | ||
179 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
180 | * | ||
181 | * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. | ||
182 | * @return the new, mutable (partial) match object. | ||
183 | * | ||
184 | */ | ||
185 | public static CoverageMetric.Match newMutableMatch(final Double pCoverage) { | ||
186 | return new Mutable(pCoverage); | ||
187 | } | ||
188 | |||
189 | /** | ||
190 | * Returns a new (partial) match. | ||
191 | * This can be used e.g. to call the matcher with a partial match. | ||
192 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
193 | * @param pCoverage the fixed value of pattern parameter Coverage, or null if not bound. | ||
194 | * @return the (partial) match object. | ||
195 | * | ||
196 | */ | ||
197 | public static CoverageMetric.Match newMatch(final Double pCoverage) { | ||
198 | return new Immutable(pCoverage); | ||
199 | } | ||
200 | |||
201 | private static final class Mutable extends CoverageMetric.Match { | ||
202 | Mutable(final Double pCoverage) { | ||
203 | super(pCoverage); | ||
204 | } | ||
205 | |||
206 | @Override | ||
207 | public boolean isMutable() { | ||
208 | return true; | ||
209 | } | ||
210 | } | ||
211 | |||
212 | private static final class Immutable extends CoverageMetric.Match { | ||
213 | Immutable(final Double pCoverage) { | ||
214 | super(pCoverage); | ||
215 | } | ||
216 | |||
217 | @Override | ||
218 | public boolean isMutable() { | ||
219 | return false; | ||
220 | } | ||
221 | } | ||
222 | } | ||
223 | |||
224 | /** | ||
225 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.coverageMetric pattern, | ||
226 | * providing pattern-specific query methods. | ||
227 | * | ||
228 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
229 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
230 | * | ||
231 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
232 | * | ||
233 | * <p>Original source: | ||
234 | * <code><pre> | ||
235 | * // | ||
236 | * // Metrics | ||
237 | * // | ||
238 | * | ||
239 | * // Coverage | ||
240 | * | ||
241 | * pattern coverageMetric(Coverage : java Double) { | ||
242 | * Coverage == sum find missionCoverage(_, #_); | ||
243 | * } | ||
244 | * </pre></code> | ||
245 | * | ||
246 | * @see Match | ||
247 | * @see CoverageMetric | ||
248 | * | ||
249 | */ | ||
250 | public static class Matcher extends BaseMatcher<CoverageMetric.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 CoverageMetric.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 CoverageMetric.Matcher create() { | ||
275 | return new Matcher(); | ||
276 | } | ||
277 | |||
278 | private static final int POSITION_COVERAGE = 0; | ||
279 | |||
280 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CoverageMetric.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 pCoverage the fixed value of pattern parameter Coverage, or null if not bound. | ||
297 | * @return matches represented as a Match object. | ||
298 | * | ||
299 | */ | ||
300 | public Collection<CoverageMetric.Match> getAllMatches(final Double pCoverage) { | ||
301 | return rawStreamAllMatches(new Object[]{pCoverage}).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 pCoverage the fixed value of pattern parameter Coverage, or null if not bound. | ||
311 | * @return a stream of matches represented as a Match object. | ||
312 | * | ||
313 | */ | ||
314 | public Stream<CoverageMetric.Match> streamAllMatches(final Double pCoverage) { | ||
315 | return rawStreamAllMatches(new Object[]{pCoverage}); | ||
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 pCoverage the fixed value of pattern parameter Coverage, 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<CoverageMetric.Match> getOneArbitraryMatch(final Double pCoverage) { | ||
326 | return rawGetOneArbitraryMatch(new Object[]{pCoverage}); | ||
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 pCoverage the fixed value of pattern parameter Coverage, 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 Double pCoverage) { | ||
337 | return rawHasMatch(new Object[]{pCoverage}); | ||
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 pCoverage the fixed value of pattern parameter Coverage, or null if not bound. | ||
343 | * @return the number of pattern matches found. | ||
344 | * | ||
345 | */ | ||
346 | public int countMatches(final Double pCoverage) { | ||
347 | return rawCountMatches(new Object[]{pCoverage}); | ||
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 pCoverage the fixed value of pattern parameter Coverage, 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 Double pCoverage, final Consumer<? super CoverageMetric.Match> processor) { | ||
359 | return rawForOneArbitraryMatch(new Object[]{pCoverage}, 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 pCoverage the fixed value of pattern parameter Coverage, or null if not bound. | ||
367 | * @return the (partial) match object. | ||
368 | * | ||
369 | */ | ||
370 | public CoverageMetric.Match newMatch(final Double pCoverage) { | ||
371 | return CoverageMetric.Match.newMatch(pCoverage); | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Retrieve the set of values that occur in matches for Coverage. | ||
376 | * @return the Set of all values or empty set if there are no matches | ||
377 | * | ||
378 | */ | ||
379 | protected Stream<Double> rawStreamAllValuesOfCoverage(final Object[] parameters) { | ||
380 | return rawStreamAllValues(POSITION_COVERAGE, parameters).map(Double.class::cast); | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * Retrieve the set of values that occur in matches for Coverage. | ||
385 | * @return the Set of all values or empty set if there are no matches | ||
386 | * | ||
387 | */ | ||
388 | public Set<Double> getAllValuesOfCoverage() { | ||
389 | return rawStreamAllValuesOfCoverage(emptyArray()).collect(Collectors.toSet()); | ||
390 | } | ||
391 | |||
392 | /** | ||
393 | * Retrieve the set of values that occur in matches for Coverage. | ||
394 | * @return the Set of all values or empty set if there are no matches | ||
395 | * | ||
396 | */ | ||
397 | public Stream<Double> streamAllValuesOfCoverage() { | ||
398 | return rawStreamAllValuesOfCoverage(emptyArray()); | ||
399 | } | ||
400 | |||
401 | @Override | ||
402 | protected CoverageMetric.Match tupleToMatch(final Tuple t) { | ||
403 | try { | ||
404 | return CoverageMetric.Match.newMatch((Double) t.get(POSITION_COVERAGE)); | ||
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 CoverageMetric.Match arrayToMatch(final Object[] match) { | ||
413 | try { | ||
414 | return CoverageMetric.Match.newMatch((Double) match[POSITION_COVERAGE]); | ||
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 CoverageMetric.Match arrayToMatchMutable(final Object[] match) { | ||
423 | try { | ||
424 | return CoverageMetric.Match.newMutableMatch((Double) match[POSITION_COVERAGE]); | ||
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<CoverageMetric.Matcher> querySpecification() { | ||
437 | return CoverageMetric.instance(); | ||
438 | } | ||
439 | } | ||
440 | |||
441 | private CoverageMetric() { | ||
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 CoverageMetric instance() { | ||
451 | try{ | ||
452 | return LazyHolder.INSTANCE; | ||
453 | } catch (ExceptionInInitializerError err) { | ||
454 | throw processInitializerError(err); | ||
455 | } | ||
456 | } | ||
457 | |||
458 | @Override | ||
459 | protected CoverageMetric.Matcher instantiate(final ViatraQueryEngine engine) { | ||
460 | return CoverageMetric.Matcher.on(engine); | ||
461 | } | ||
462 | |||
463 | @Override | ||
464 | public CoverageMetric.Matcher instantiate() { | ||
465 | return CoverageMetric.Matcher.create(); | ||
466 | } | ||
467 | |||
468 | @Override | ||
469 | public CoverageMetric.Match newEmptyMatch() { | ||
470 | return CoverageMetric.Match.newEmptyMatch(); | ||
471 | } | ||
472 | |||
473 | @Override | ||
474 | public CoverageMetric.Match newMatch(final Object... parameters) { | ||
475 | return CoverageMetric.Match.newMatch((java.lang.Double) parameters[0]); | ||
476 | } | ||
477 | |||
478 | /** | ||
479 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric (visibility: PUBLIC, simpleName: CoverageMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
480 | * <b>not</b> at the class load time of the outer class, | ||
481 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric (visibility: PUBLIC, simpleName: CoverageMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
482 | * | ||
483 | * <p> This workaround is required e.g. to support recursion. | ||
484 | * | ||
485 | */ | ||
486 | private static class LazyHolder { | ||
487 | private static final CoverageMetric INSTANCE = new CoverageMetric(); | ||
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 CoverageMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
506 | |||
507 | private final PParameter parameter_Coverage = new PParameter("Coverage", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
508 | |||
509 | private final List<PParameter> parameters = Arrays.asList(parameter_Coverage); | ||
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.coverageMetric"; | ||
518 | } | ||
519 | |||
520 | @Override | ||
521 | public List<String> getParameterNames() { | ||
522 | return Arrays.asList("Coverage"); | ||
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_Coverage = body.getOrCreateVariableByName("Coverage"); | ||
537 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
538 | PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); | ||
539 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Coverage), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
540 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
541 | new ExportedParameter(body, var_Coverage, parameter_Coverage) | ||
542 | )); | ||
543 | // Coverage == sum find missionCoverage(_, #_) | ||
544 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
545 | new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var___0_, var___1_), MissionCoverage.instance().getInternalQueryRepresentation(), var__virtual_0_, 1); | ||
546 | new Equality(body, var_Coverage, var__virtual_0_); | ||
547 | bodies.add(body); | ||
548 | } | ||
549 | return bodies; | ||
550 | } | ||
551 | } | ||
552 | } | ||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.emf.ecore.EDataType; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
30 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
44 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
45 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
46 | import 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") | ||
68 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.emf.ecore.EDataType; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
30 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
44 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
45 | import 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") | ||
69 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.emf.ecore.EDataType; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
30 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
44 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
45 | import 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") | ||
67 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.emf.ecore.EClass; | ||
19 | import org.eclipse.emf.ecore.EDataType; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
44 | import 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") | ||
66 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
43 | import 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") | ||
66 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import 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") | ||
61 | public 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..b6601c28 --- /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,196 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna; | ||
11 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand; | ||
12 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain; | ||
13 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow; | ||
14 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation; | ||
15 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads; | ||
16 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink; | ||
17 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric; | ||
18 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow; | ||
19 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; | ||
22 | |||
23 | /** | ||
24 | * A pattern group formed of all public patterns defined in SatelliteQueries.vql. | ||
25 | * | ||
26 | * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare | ||
27 | * a VIATRA Query engine for matching all patterns originally defined in file SatelliteQueries.vql, | ||
28 | * in order to achieve better performance than one-by-one on-demand matcher initialization. | ||
29 | * | ||
30 | * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul> | ||
31 | * <li>communicationLinkDoesNotStartAtContainingElement</li> | ||
32 | * <li>notEnoughInterferometryPayloads</li> | ||
33 | * <li>noLinkToGroundStation</li> | ||
34 | * <li>communicationLoop</li> | ||
35 | * <li>incompatibleSourceAndTargetBand</li> | ||
36 | * <li>incompatibleSourceAndTargetGain</li> | ||
37 | * <li>uhfAntennaGainNotLow</li> | ||
38 | * <li>xAntennaGainNotMedium</li> | ||
39 | * <li>kaAntennaGainLow</li> | ||
40 | * <li>threeUCubeSatWithNonUhfCrossLink</li> | ||
41 | * <li>cubeSatWithKaAntenna</li> | ||
42 | * <li>coverageMetric</li> | ||
43 | * <li>timeMetric</li> | ||
44 | * <li>costMetric</li> | ||
45 | * </ul> | ||
46 | * | ||
47 | * @see IQueryGroup | ||
48 | * | ||
49 | */ | ||
50 | @SuppressWarnings("all") | ||
51 | public final class SatelliteQueries extends BaseGeneratedPatternGroup { | ||
52 | /** | ||
53 | * Access the pattern group. | ||
54 | * | ||
55 | * @return the singleton instance of the group | ||
56 | * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications | ||
57 | * | ||
58 | */ | ||
59 | public static SatelliteQueries instance() { | ||
60 | if (INSTANCE == null) { | ||
61 | INSTANCE = new SatelliteQueries(); | ||
62 | } | ||
63 | return INSTANCE; | ||
64 | } | ||
65 | |||
66 | private static SatelliteQueries INSTANCE; | ||
67 | |||
68 | private SatelliteQueries() { | ||
69 | querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance()); | ||
70 | querySpecifications.add(NotEnoughInterferometryPayloads.instance()); | ||
71 | querySpecifications.add(NoLinkToGroundStation.instance()); | ||
72 | querySpecifications.add(CommunicationLoop.instance()); | ||
73 | querySpecifications.add(IncompatibleSourceAndTargetBand.instance()); | ||
74 | querySpecifications.add(IncompatibleSourceAndTargetGain.instance()); | ||
75 | querySpecifications.add(UhfAntennaGainNotLow.instance()); | ||
76 | querySpecifications.add(XAntennaGainNotMedium.instance()); | ||
77 | querySpecifications.add(KaAntennaGainLow.instance()); | ||
78 | querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance()); | ||
79 | querySpecifications.add(CubeSatWithKaAntenna.instance()); | ||
80 | querySpecifications.add(CoverageMetric.instance()); | ||
81 | querySpecifications.add(TimeMetric.instance()); | ||
82 | querySpecifications.add(CostMetric.instance()); | ||
83 | } | ||
84 | |||
85 | public CommunicationLinkDoesNotStartAtContainingElement getCommunicationLinkDoesNotStartAtContainingElement() { | ||
86 | return CommunicationLinkDoesNotStartAtContainingElement.instance(); | ||
87 | } | ||
88 | |||
89 | public CommunicationLinkDoesNotStartAtContainingElement.Matcher getCommunicationLinkDoesNotStartAtContainingElement(final ViatraQueryEngine engine) { | ||
90 | return CommunicationLinkDoesNotStartAtContainingElement.Matcher.on(engine); | ||
91 | } | ||
92 | |||
93 | public NotEnoughInterferometryPayloads getNotEnoughInterferometryPayloads() { | ||
94 | return NotEnoughInterferometryPayloads.instance(); | ||
95 | } | ||
96 | |||
97 | public NotEnoughInterferometryPayloads.Matcher getNotEnoughInterferometryPayloads(final ViatraQueryEngine engine) { | ||
98 | return NotEnoughInterferometryPayloads.Matcher.on(engine); | ||
99 | } | ||
100 | |||
101 | public NoLinkToGroundStation getNoLinkToGroundStation() { | ||
102 | return NoLinkToGroundStation.instance(); | ||
103 | } | ||
104 | |||
105 | public NoLinkToGroundStation.Matcher getNoLinkToGroundStation(final ViatraQueryEngine engine) { | ||
106 | return NoLinkToGroundStation.Matcher.on(engine); | ||
107 | } | ||
108 | |||
109 | public CommunicationLoop getCommunicationLoop() { | ||
110 | return CommunicationLoop.instance(); | ||
111 | } | ||
112 | |||
113 | public CommunicationLoop.Matcher getCommunicationLoop(final ViatraQueryEngine engine) { | ||
114 | return CommunicationLoop.Matcher.on(engine); | ||
115 | } | ||
116 | |||
117 | public IncompatibleSourceAndTargetBand getIncompatibleSourceAndTargetBand() { | ||
118 | return IncompatibleSourceAndTargetBand.instance(); | ||
119 | } | ||
120 | |||
121 | public IncompatibleSourceAndTargetBand.Matcher getIncompatibleSourceAndTargetBand(final ViatraQueryEngine engine) { | ||
122 | return IncompatibleSourceAndTargetBand.Matcher.on(engine); | ||
123 | } | ||
124 | |||
125 | public IncompatibleSourceAndTargetGain getIncompatibleSourceAndTargetGain() { | ||
126 | return IncompatibleSourceAndTargetGain.instance(); | ||
127 | } | ||
128 | |||
129 | public IncompatibleSourceAndTargetGain.Matcher getIncompatibleSourceAndTargetGain(final ViatraQueryEngine engine) { | ||
130 | return IncompatibleSourceAndTargetGain.Matcher.on(engine); | ||
131 | } | ||
132 | |||
133 | public UhfAntennaGainNotLow getUhfAntennaGainNotLow() { | ||
134 | return UhfAntennaGainNotLow.instance(); | ||
135 | } | ||
136 | |||
137 | public UhfAntennaGainNotLow.Matcher getUhfAntennaGainNotLow(final ViatraQueryEngine engine) { | ||
138 | return UhfAntennaGainNotLow.Matcher.on(engine); | ||
139 | } | ||
140 | |||
141 | public XAntennaGainNotMedium getXAntennaGainNotMedium() { | ||
142 | return XAntennaGainNotMedium.instance(); | ||
143 | } | ||
144 | |||
145 | public XAntennaGainNotMedium.Matcher getXAntennaGainNotMedium(final ViatraQueryEngine engine) { | ||
146 | return XAntennaGainNotMedium.Matcher.on(engine); | ||
147 | } | ||
148 | |||
149 | public KaAntennaGainLow getKaAntennaGainLow() { | ||
150 | return KaAntennaGainLow.instance(); | ||
151 | } | ||
152 | |||
153 | public KaAntennaGainLow.Matcher getKaAntennaGainLow(final ViatraQueryEngine engine) { | ||
154 | return KaAntennaGainLow.Matcher.on(engine); | ||
155 | } | ||
156 | |||
157 | public ThreeUCubeSatWithNonUhfCrossLink getThreeUCubeSatWithNonUhfCrossLink() { | ||
158 | return ThreeUCubeSatWithNonUhfCrossLink.instance(); | ||
159 | } | ||
160 | |||
161 | public ThreeUCubeSatWithNonUhfCrossLink.Matcher getThreeUCubeSatWithNonUhfCrossLink(final ViatraQueryEngine engine) { | ||
162 | return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine); | ||
163 | } | ||
164 | |||
165 | public CubeSatWithKaAntenna getCubeSatWithKaAntenna() { | ||
166 | return CubeSatWithKaAntenna.instance(); | ||
167 | } | ||
168 | |||
169 | public CubeSatWithKaAntenna.Matcher getCubeSatWithKaAntenna(final ViatraQueryEngine engine) { | ||
170 | return CubeSatWithKaAntenna.Matcher.on(engine); | ||
171 | } | ||
172 | |||
173 | public CoverageMetric getCoverageMetric() { | ||
174 | return CoverageMetric.instance(); | ||
175 | } | ||
176 | |||
177 | public CoverageMetric.Matcher getCoverageMetric(final ViatraQueryEngine engine) { | ||
178 | return CoverageMetric.Matcher.on(engine); | ||
179 | } | ||
180 | |||
181 | public TimeMetric getTimeMetric() { | ||
182 | return TimeMetric.instance(); | ||
183 | } | ||
184 | |||
185 | public TimeMetric.Matcher getTimeMetric(final ViatraQueryEngine engine) { | ||
186 | return TimeMetric.Matcher.on(engine); | ||
187 | } | ||
188 | |||
189 | public CostMetric getCostMetric() { | ||
190 | return CostMetric.instance(); | ||
191 | } | ||
192 | |||
193 | public CostMetric.Matcher getCostMetric(final ViatraQueryEngine engine) { | ||
194 | return CostMetric.Matcher.on(engine); | ||
195 | } | ||
196 | } | ||
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..6500c9d3 --- /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,613 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork; | ||
9 | import java.util.Arrays; | ||
10 | import java.util.Collection; | ||
11 | import java.util.LinkedHashSet; | ||
12 | import java.util.List; | ||
13 | import java.util.Objects; | ||
14 | import java.util.Optional; | ||
15 | import java.util.Set; | ||
16 | import java.util.function.Consumer; | ||
17 | import java.util.stream.Collectors; | ||
18 | import java.util.stream.Stream; | ||
19 | import org.apache.log4j.Logger; | ||
20 | import org.eclipse.emf.ecore.EClass; | ||
21 | import org.eclipse.emf.ecore.EDataType; | ||
22 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
23 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
28 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
30 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
31 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
44 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
45 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
46 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
47 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
48 | |||
49 | /** | ||
50 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
51 | * | ||
52 | * <p>Original source: | ||
53 | * <code><pre> | ||
54 | * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter, | ||
55 | * // but cross-link using UHF | ||
56 | * | ||
57 | * {@literal @}Constraint(severity = "error", key = {Sat}, | ||
58 | * message = "3U CubeSats can only cross-link using UHF.") | ||
59 | * pattern threeUCubeSatWithNonUhfCrossLink(Sat : Spacecraft) { | ||
60 | * Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U); | ||
61 | * CommunicatingElement.commSubsystem(Sat, SourceComm); | ||
62 | * neg find commSubsystemBandUhf(SourceComm); | ||
63 | * DirectedCommunicationLink.source(Link, SourceComm); | ||
64 | * DirectedCommunicationLink.target(Link, TargetComm); | ||
65 | * CommunicatingElement.commSubsystem(Target, TargetComm); | ||
66 | * neg find groundStationNetwork(Target); | ||
67 | * } | ||
68 | * </pre></code> | ||
69 | * | ||
70 | * @see Matcher | ||
71 | * @see Match | ||
72 | * | ||
73 | */ | ||
74 | @SuppressWarnings("all") | ||
75 | public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> { | ||
76 | /** | ||
77 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern, | ||
78 | * to be used in conjunction with {@link Matcher}. | ||
79 | * | ||
80 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
81 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
82 | * usable to represent a match of the pattern in the result of a query, | ||
83 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
84 | * | ||
85 | * @see Matcher | ||
86 | * | ||
87 | */ | ||
88 | public static abstract class Match extends BasePatternMatch { | ||
89 | private Spacecraft fSat; | ||
90 | |||
91 | private static List<String> parameterNames = makeImmutableList("Sat"); | ||
92 | |||
93 | private Match(final Spacecraft pSat) { | ||
94 | this.fSat = pSat; | ||
95 | } | ||
96 | |||
97 | @Override | ||
98 | public Object get(final String parameterName) { | ||
99 | if ("Sat".equals(parameterName)) return this.fSat; | ||
100 | return null; | ||
101 | } | ||
102 | |||
103 | public Spacecraft getSat() { | ||
104 | return this.fSat; | ||
105 | } | ||
106 | |||
107 | @Override | ||
108 | public boolean set(final String parameterName, final Object newValue) { | ||
109 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
110 | if ("Sat".equals(parameterName) ) { | ||
111 | this.fSat = (Spacecraft) newValue; | ||
112 | return true; | ||
113 | } | ||
114 | return false; | ||
115 | } | ||
116 | |||
117 | public void setSat(final Spacecraft pSat) { | ||
118 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
119 | this.fSat = pSat; | ||
120 | } | ||
121 | |||
122 | @Override | ||
123 | public String patternName() { | ||
124 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"; | ||
125 | } | ||
126 | |||
127 | @Override | ||
128 | public List<String> parameterNames() { | ||
129 | return ThreeUCubeSatWithNonUhfCrossLink.Match.parameterNames; | ||
130 | } | ||
131 | |||
132 | @Override | ||
133 | public Object[] toArray() { | ||
134 | return new Object[]{fSat}; | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public ThreeUCubeSatWithNonUhfCrossLink.Match toImmutable() { | ||
139 | return isMutable() ? newMatch(fSat) : this; | ||
140 | } | ||
141 | |||
142 | @Override | ||
143 | public String prettyPrint() { | ||
144 | StringBuilder result = new StringBuilder(); | ||
145 | result.append("\"Sat\"=" + prettyPrintValue(fSat)); | ||
146 | return result.toString(); | ||
147 | } | ||
148 | |||
149 | @Override | ||
150 | public int hashCode() { | ||
151 | return Objects.hash(fSat); | ||
152 | } | ||
153 | |||
154 | @Override | ||
155 | public boolean equals(final Object obj) { | ||
156 | if (this == obj) | ||
157 | return true; | ||
158 | if (obj == null) { | ||
159 | return false; | ||
160 | } | ||
161 | if ((obj instanceof ThreeUCubeSatWithNonUhfCrossLink.Match)) { | ||
162 | ThreeUCubeSatWithNonUhfCrossLink.Match other = (ThreeUCubeSatWithNonUhfCrossLink.Match) obj; | ||
163 | return Objects.equals(fSat, other.fSat); | ||
164 | } else { | ||
165 | // this should be infrequent | ||
166 | if (!(obj instanceof IPatternMatch)) { | ||
167 | return false; | ||
168 | } | ||
169 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
170 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
171 | } | ||
172 | } | ||
173 | |||
174 | @Override | ||
175 | public ThreeUCubeSatWithNonUhfCrossLink specification() { | ||
176 | return ThreeUCubeSatWithNonUhfCrossLink.instance(); | ||
177 | } | ||
178 | |||
179 | /** | ||
180 | * Returns an empty, mutable match. | ||
181 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
182 | * | ||
183 | * @return the empty match. | ||
184 | * | ||
185 | */ | ||
186 | public static ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() { | ||
187 | return new Mutable(null); | ||
188 | } | ||
189 | |||
190 | /** | ||
191 | * Returns a mutable (partial) match. | ||
192 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
193 | * | ||
194 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
195 | * @return the new, mutable (partial) match object. | ||
196 | * | ||
197 | */ | ||
198 | public static ThreeUCubeSatWithNonUhfCrossLink.Match newMutableMatch(final Spacecraft pSat) { | ||
199 | return new Mutable(pSat); | ||
200 | } | ||
201 | |||
202 | /** | ||
203 | * Returns a new (partial) match. | ||
204 | * This can be used e.g. to call the matcher with a partial match. | ||
205 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
206 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
207 | * @return the (partial) match object. | ||
208 | * | ||
209 | */ | ||
210 | public static ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Spacecraft pSat) { | ||
211 | return new Immutable(pSat); | ||
212 | } | ||
213 | |||
214 | private static final class Mutable extends ThreeUCubeSatWithNonUhfCrossLink.Match { | ||
215 | Mutable(final Spacecraft pSat) { | ||
216 | super(pSat); | ||
217 | } | ||
218 | |||
219 | @Override | ||
220 | public boolean isMutable() { | ||
221 | return true; | ||
222 | } | ||
223 | } | ||
224 | |||
225 | private static final class Immutable extends ThreeUCubeSatWithNonUhfCrossLink.Match { | ||
226 | Immutable(final Spacecraft pSat) { | ||
227 | super(pSat); | ||
228 | } | ||
229 | |||
230 | @Override | ||
231 | public boolean isMutable() { | ||
232 | return false; | ||
233 | } | ||
234 | } | ||
235 | } | ||
236 | |||
237 | /** | ||
238 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern, | ||
239 | * providing pattern-specific query methods. | ||
240 | * | ||
241 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
242 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
243 | * | ||
244 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
245 | * | ||
246 | * <p>Original source: | ||
247 | * <code><pre> | ||
248 | * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter, | ||
249 | * // but cross-link using UHF | ||
250 | * | ||
251 | * {@literal @}Constraint(severity = "error", key = {Sat}, | ||
252 | * message = "3U CubeSats can only cross-link using UHF.") | ||
253 | * pattern threeUCubeSatWithNonUhfCrossLink(Sat : Spacecraft) { | ||
254 | * Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U); | ||
255 | * CommunicatingElement.commSubsystem(Sat, SourceComm); | ||
256 | * neg find commSubsystemBandUhf(SourceComm); | ||
257 | * DirectedCommunicationLink.source(Link, SourceComm); | ||
258 | * DirectedCommunicationLink.target(Link, TargetComm); | ||
259 | * CommunicatingElement.commSubsystem(Target, TargetComm); | ||
260 | * neg find groundStationNetwork(Target); | ||
261 | * } | ||
262 | * </pre></code> | ||
263 | * | ||
264 | * @see Match | ||
265 | * @see ThreeUCubeSatWithNonUhfCrossLink | ||
266 | * | ||
267 | */ | ||
268 | public static class Matcher extends BaseMatcher<ThreeUCubeSatWithNonUhfCrossLink.Match> { | ||
269 | /** | ||
270 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
271 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
272 | * | ||
273 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
274 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
275 | * | ||
276 | */ | ||
277 | public static ThreeUCubeSatWithNonUhfCrossLink.Matcher on(final ViatraQueryEngine engine) { | ||
278 | // check if matcher already exists | ||
279 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
280 | if (matcher == null) { | ||
281 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
282 | } | ||
283 | return matcher; | ||
284 | } | ||
285 | |||
286 | /** | ||
287 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
288 | * @return an initialized matcher | ||
289 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
290 | * | ||
291 | */ | ||
292 | public static ThreeUCubeSatWithNonUhfCrossLink.Matcher create() { | ||
293 | return new Matcher(); | ||
294 | } | ||
295 | |||
296 | private static final int POSITION_SAT = 0; | ||
297 | |||
298 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(ThreeUCubeSatWithNonUhfCrossLink.Matcher.class); | ||
299 | |||
300 | /** | ||
301 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
302 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
303 | * | ||
304 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
305 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
306 | * | ||
307 | */ | ||
308 | private Matcher() { | ||
309 | super(querySpecification()); | ||
310 | } | ||
311 | |||
312 | /** | ||
313 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
314 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
315 | * @return matches represented as a Match object. | ||
316 | * | ||
317 | */ | ||
318 | public Collection<ThreeUCubeSatWithNonUhfCrossLink.Match> getAllMatches(final Spacecraft pSat) { | ||
319 | return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet()); | ||
320 | } | ||
321 | |||
322 | /** | ||
323 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
324 | * </p> | ||
325 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
326 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
327 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
328 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
329 | * @return a stream of matches represented as a Match object. | ||
330 | * | ||
331 | */ | ||
332 | public Stream<ThreeUCubeSatWithNonUhfCrossLink.Match> streamAllMatches(final Spacecraft pSat) { | ||
333 | return rawStreamAllMatches(new Object[]{pSat}); | ||
334 | } | ||
335 | |||
336 | /** | ||
337 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
338 | * Neither determinism nor randomness of selection is guaranteed. | ||
339 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
340 | * @return a match represented as a Match object, or null if no match is found. | ||
341 | * | ||
342 | */ | ||
343 | public Optional<ThreeUCubeSatWithNonUhfCrossLink.Match> getOneArbitraryMatch(final Spacecraft pSat) { | ||
344 | return rawGetOneArbitraryMatch(new Object[]{pSat}); | ||
345 | } | ||
346 | |||
347 | /** | ||
348 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
349 | * under any possible substitution of the unspecified parameters (if any). | ||
350 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
351 | * @return true if the input is a valid (partial) match of the pattern. | ||
352 | * | ||
353 | */ | ||
354 | public boolean hasMatch(final Spacecraft pSat) { | ||
355 | return rawHasMatch(new Object[]{pSat}); | ||
356 | } | ||
357 | |||
358 | /** | ||
359 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
360 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
361 | * @return the number of pattern matches found. | ||
362 | * | ||
363 | */ | ||
364 | public int countMatches(final Spacecraft pSat) { | ||
365 | return rawCountMatches(new Object[]{pSat}); | ||
366 | } | ||
367 | |||
368 | /** | ||
369 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
370 | * Neither determinism nor randomness of selection is guaranteed. | ||
371 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
372 | * @param processor the action that will process the selected match. | ||
373 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
374 | * | ||
375 | */ | ||
376 | public boolean forOneArbitraryMatch(final Spacecraft pSat, final Consumer<? super ThreeUCubeSatWithNonUhfCrossLink.Match> processor) { | ||
377 | return rawForOneArbitraryMatch(new Object[]{pSat}, processor); | ||
378 | } | ||
379 | |||
380 | /** | ||
381 | * Returns a new (partial) match. | ||
382 | * This can be used e.g. to call the matcher with a partial match. | ||
383 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
384 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
385 | * @return the (partial) match object. | ||
386 | * | ||
387 | */ | ||
388 | public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Spacecraft pSat) { | ||
389 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch(pSat); | ||
390 | } | ||
391 | |||
392 | /** | ||
393 | * Retrieve the set of values that occur in matches for Sat. | ||
394 | * @return the Set of all values or empty set if there are no matches | ||
395 | * | ||
396 | */ | ||
397 | protected Stream<Spacecraft> rawStreamAllValuesOfSat(final Object[] parameters) { | ||
398 | return rawStreamAllValues(POSITION_SAT, parameters).map(Spacecraft.class::cast); | ||
399 | } | ||
400 | |||
401 | /** | ||
402 | * Retrieve the set of values that occur in matches for Sat. | ||
403 | * @return the Set of all values or empty set if there are no matches | ||
404 | * | ||
405 | */ | ||
406 | public Set<Spacecraft> getAllValuesOfSat() { | ||
407 | return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet()); | ||
408 | } | ||
409 | |||
410 | /** | ||
411 | * Retrieve the set of values that occur in matches for Sat. | ||
412 | * @return the Set of all values or empty set if there are no matches | ||
413 | * | ||
414 | */ | ||
415 | public Stream<Spacecraft> streamAllValuesOfSat() { | ||
416 | return rawStreamAllValuesOfSat(emptyArray()); | ||
417 | } | ||
418 | |||
419 | @Override | ||
420 | protected ThreeUCubeSatWithNonUhfCrossLink.Match tupleToMatch(final Tuple t) { | ||
421 | try { | ||
422 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((Spacecraft) t.get(POSITION_SAT)); | ||
423 | } catch(ClassCastException e) { | ||
424 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
425 | return null; | ||
426 | } | ||
427 | } | ||
428 | |||
429 | @Override | ||
430 | protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatch(final Object[] match) { | ||
431 | try { | ||
432 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((Spacecraft) match[POSITION_SAT]); | ||
433 | } catch(ClassCastException e) { | ||
434 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
435 | return null; | ||
436 | } | ||
437 | } | ||
438 | |||
439 | @Override | ||
440 | protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatchMutable(final Object[] match) { | ||
441 | try { | ||
442 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMutableMatch((Spacecraft) match[POSITION_SAT]); | ||
443 | } catch(ClassCastException e) { | ||
444 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
445 | return null; | ||
446 | } | ||
447 | } | ||
448 | |||
449 | /** | ||
450 | * @return the singleton instance of the query specification of this pattern | ||
451 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
452 | * | ||
453 | */ | ||
454 | public static IQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> querySpecification() { | ||
455 | return ThreeUCubeSatWithNonUhfCrossLink.instance(); | ||
456 | } | ||
457 | } | ||
458 | |||
459 | private ThreeUCubeSatWithNonUhfCrossLink() { | ||
460 | super(GeneratedPQuery.INSTANCE); | ||
461 | } | ||
462 | |||
463 | /** | ||
464 | * @return the singleton instance of the query specification | ||
465 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
466 | * | ||
467 | */ | ||
468 | public static ThreeUCubeSatWithNonUhfCrossLink instance() { | ||
469 | try{ | ||
470 | return LazyHolder.INSTANCE; | ||
471 | } catch (ExceptionInInitializerError err) { | ||
472 | throw processInitializerError(err); | ||
473 | } | ||
474 | } | ||
475 | |||
476 | @Override | ||
477 | protected ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate(final ViatraQueryEngine engine) { | ||
478 | return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine); | ||
479 | } | ||
480 | |||
481 | @Override | ||
482 | public ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate() { | ||
483 | return ThreeUCubeSatWithNonUhfCrossLink.Matcher.create(); | ||
484 | } | ||
485 | |||
486 | @Override | ||
487 | public ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() { | ||
488 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newEmptyMatch(); | ||
489 | } | ||
490 | |||
491 | @Override | ||
492 | public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Object... parameters) { | ||
493 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft) parameters[0]); | ||
494 | } | ||
495 | |||
496 | /** | ||
497 | * 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 | ||
498 | * <b>not</b> at the class load time of the outer class, | ||
499 | * 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()}. | ||
500 | * | ||
501 | * <p> This workaround is required e.g. to support recursion. | ||
502 | * | ||
503 | */ | ||
504 | private static class LazyHolder { | ||
505 | private static final ThreeUCubeSatWithNonUhfCrossLink INSTANCE = new ThreeUCubeSatWithNonUhfCrossLink(); | ||
506 | |||
507 | /** | ||
508 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
509 | * This initialization order is required to support indirect recursion. | ||
510 | * | ||
511 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
512 | * | ||
513 | */ | ||
514 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
515 | |||
516 | public static Object ensureInitialized() { | ||
517 | INSTANCE.ensureInitializedInternal(); | ||
518 | return null; | ||
519 | } | ||
520 | } | ||
521 | |||
522 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
523 | private static final ThreeUCubeSatWithNonUhfCrossLink.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
524 | |||
525 | private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
526 | |||
527 | private final List<PParameter> parameters = Arrays.asList(parameter_Sat); | ||
528 | |||
529 | private GeneratedPQuery() { | ||
530 | super(PVisibility.PUBLIC); | ||
531 | } | ||
532 | |||
533 | @Override | ||
534 | public String getFullyQualifiedName() { | ||
535 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"; | ||
536 | } | ||
537 | |||
538 | @Override | ||
539 | public List<String> getParameterNames() { | ||
540 | return Arrays.asList("Sat"); | ||
541 | } | ||
542 | |||
543 | @Override | ||
544 | public List<PParameter> getParameters() { | ||
545 | return parameters; | ||
546 | } | ||
547 | |||
548 | @Override | ||
549 | public Set<PBody> doGetContainedBodies() { | ||
550 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
551 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
552 | { | ||
553 | PBody body = new PBody(this); | ||
554 | PVariable var_Sat = body.getOrCreateVariableByName("Sat"); | ||
555 | PVariable var_SourceComm = body.getOrCreateVariableByName("SourceComm"); | ||
556 | PVariable var_Link = body.getOrCreateVariableByName("Link"); | ||
557 | PVariable var_TargetComm = body.getOrCreateVariableByName("TargetComm"); | ||
558 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
559 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
560 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
561 | new ExportedParameter(body, var_Sat, parameter_Sat) | ||
562 | )); | ||
563 | // Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U) | ||
564 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
565 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat3U").getInstance()); | ||
566 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
567 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
568 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
569 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
570 | new Equality(body, var__virtual_1_, var__virtual_0_); | ||
571 | // CommunicatingElement.commSubsystem(Sat, SourceComm) | ||
572 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
573 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
574 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
575 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
576 | new Equality(body, var__virtual_2_, var_SourceComm); | ||
577 | // neg find commSubsystemBandUhf(SourceComm) | ||
578 | new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceComm), CommSubsystemBandUhf.instance().getInternalQueryRepresentation()); | ||
579 | // DirectedCommunicationLink.source(Link, SourceComm) | ||
580 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
581 | PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}"); | ||
582 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source"))); | ||
583 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
584 | new Equality(body, var__virtual_3_, var_SourceComm); | ||
585 | // DirectedCommunicationLink.target(Link, TargetComm) | ||
586 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
587 | PVariable var__virtual_4_ = body.getOrCreateVariableByName(".virtual{4}"); | ||
588 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_4_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target"))); | ||
589 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
590 | new Equality(body, var__virtual_4_, var_TargetComm); | ||
591 | // CommunicatingElement.commSubsystem(Target, TargetComm) | ||
592 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
593 | PVariable var__virtual_5_ = body.getOrCreateVariableByName(".virtual{5}"); | ||
594 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_5_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
595 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_5_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
596 | new Equality(body, var__virtual_5_, var_TargetComm); | ||
597 | // neg find groundStationNetwork(Target) | ||
598 | new NegativePatternCall(body, Tuples.flatTupleOf(var_Target), GroundStationNetwork.instance().getInternalQueryRepresentation()); | ||
599 | bodies.add(body); | ||
600 | } | ||
601 | { | ||
602 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
603 | annotation.addAttribute("severity", "error"); | ||
604 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
605 | new ParameterReference("Sat") | ||
606 | })); | ||
607 | annotation.addAttribute("message", "3U CubeSats can only cross-link using UHF."); | ||
608 | addAnnotation(annotation); | ||
609 | } | ||
610 | return bodies; | ||
611 | } | ||
612 | } | ||
613 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java new file mode 100644 index 00000000..45d4cc35 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/TimeMetric.java | |||
@@ -0,0 +1,544 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.Collection; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Objects; | ||
12 | import java.util.Optional; | ||
13 | import java.util.Set; | ||
14 | import java.util.function.Consumer; | ||
15 | import java.util.stream.Collectors; | ||
16 | import java.util.stream.Stream; | ||
17 | import org.apache.log4j.Logger; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
40 | |||
41 | /** | ||
42 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
43 | * | ||
44 | * <p>Original source: | ||
45 | * <code><pre> | ||
46 | * // Time | ||
47 | * | ||
48 | * pattern timeMetric(Time : java Double) { | ||
49 | * Time == sum find missionTime(_, #_); | ||
50 | * } | ||
51 | * </pre></code> | ||
52 | * | ||
53 | * @see Matcher | ||
54 | * @see Match | ||
55 | * | ||
56 | */ | ||
57 | @SuppressWarnings("all") | ||
58 | public final class TimeMetric extends BaseGeneratedEMFQuerySpecification<TimeMetric.Matcher> { | ||
59 | /** | ||
60 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric pattern, | ||
61 | * to be used in conjunction with {@link Matcher}. | ||
62 | * | ||
63 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
64 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
65 | * usable to represent a match of the pattern in the result of a query, | ||
66 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
67 | * | ||
68 | * @see Matcher | ||
69 | * | ||
70 | */ | ||
71 | public static abstract class Match extends BasePatternMatch { | ||
72 | private Double fTime; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("Time"); | ||
75 | |||
76 | private Match(final Double pTime) { | ||
77 | this.fTime = pTime; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | if ("Time".equals(parameterName)) return this.fTime; | ||
83 | return null; | ||
84 | } | ||
85 | |||
86 | public Double getTime() { | ||
87 | return this.fTime; | ||
88 | } | ||
89 | |||
90 | @Override | ||
91 | public boolean set(final String parameterName, final Object newValue) { | ||
92 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
93 | if ("Time".equals(parameterName) ) { | ||
94 | this.fTime = (Double) newValue; | ||
95 | return true; | ||
96 | } | ||
97 | return false; | ||
98 | } | ||
99 | |||
100 | public void setTime(final Double pTime) { | ||
101 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
102 | this.fTime = pTime; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public String patternName() { | ||
107 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric"; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<String> parameterNames() { | ||
112 | return TimeMetric.Match.parameterNames; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public Object[] toArray() { | ||
117 | return new Object[]{fTime}; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public TimeMetric.Match toImmutable() { | ||
122 | return isMutable() ? newMatch(fTime) : this; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public String prettyPrint() { | ||
127 | StringBuilder result = new StringBuilder(); | ||
128 | result.append("\"Time\"=" + prettyPrintValue(fTime)); | ||
129 | return result.toString(); | ||
130 | } | ||
131 | |||
132 | @Override | ||
133 | public int hashCode() { | ||
134 | return Objects.hash(fTime); | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public boolean equals(final Object obj) { | ||
139 | if (this == obj) | ||
140 | return true; | ||
141 | if (obj == null) { | ||
142 | return false; | ||
143 | } | ||
144 | if ((obj instanceof TimeMetric.Match)) { | ||
145 | TimeMetric.Match other = (TimeMetric.Match) obj; | ||
146 | return Objects.equals(fTime, other.fTime); | ||
147 | } else { | ||
148 | // this should be infrequent | ||
149 | if (!(obj instanceof IPatternMatch)) { | ||
150 | return false; | ||
151 | } | ||
152 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
153 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
154 | } | ||
155 | } | ||
156 | |||
157 | @Override | ||
158 | public TimeMetric specification() { | ||
159 | return TimeMetric.instance(); | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * Returns an empty, mutable match. | ||
164 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
165 | * | ||
166 | * @return the empty match. | ||
167 | * | ||
168 | */ | ||
169 | public static TimeMetric.Match newEmptyMatch() { | ||
170 | return new Mutable(null); | ||
171 | } | ||
172 | |||
173 | /** | ||
174 | * Returns a mutable (partial) match. | ||
175 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
176 | * | ||
177 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
178 | * @return the new, mutable (partial) match object. | ||
179 | * | ||
180 | */ | ||
181 | public static TimeMetric.Match newMutableMatch(final Double pTime) { | ||
182 | return new Mutable(pTime); | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * Returns a new (partial) match. | ||
187 | * This can be used e.g. to call the matcher with a partial match. | ||
188 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
189 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
190 | * @return the (partial) match object. | ||
191 | * | ||
192 | */ | ||
193 | public static TimeMetric.Match newMatch(final Double pTime) { | ||
194 | return new Immutable(pTime); | ||
195 | } | ||
196 | |||
197 | private static final class Mutable extends TimeMetric.Match { | ||
198 | Mutable(final Double pTime) { | ||
199 | super(pTime); | ||
200 | } | ||
201 | |||
202 | @Override | ||
203 | public boolean isMutable() { | ||
204 | return true; | ||
205 | } | ||
206 | } | ||
207 | |||
208 | private static final class Immutable extends TimeMetric.Match { | ||
209 | Immutable(final Double pTime) { | ||
210 | super(pTime); | ||
211 | } | ||
212 | |||
213 | @Override | ||
214 | public boolean isMutable() { | ||
215 | return false; | ||
216 | } | ||
217 | } | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric pattern, | ||
222 | * providing pattern-specific query methods. | ||
223 | * | ||
224 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
225 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
226 | * | ||
227 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
228 | * | ||
229 | * <p>Original source: | ||
230 | * <code><pre> | ||
231 | * // Time | ||
232 | * | ||
233 | * pattern timeMetric(Time : java Double) { | ||
234 | * Time == sum find missionTime(_, #_); | ||
235 | * } | ||
236 | * </pre></code> | ||
237 | * | ||
238 | * @see Match | ||
239 | * @see TimeMetric | ||
240 | * | ||
241 | */ | ||
242 | public static class Matcher extends BaseMatcher<TimeMetric.Match> { | ||
243 | /** | ||
244 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
245 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
246 | * | ||
247 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
248 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
249 | * | ||
250 | */ | ||
251 | public static TimeMetric.Matcher on(final ViatraQueryEngine engine) { | ||
252 | // check if matcher already exists | ||
253 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
254 | if (matcher == null) { | ||
255 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
256 | } | ||
257 | return matcher; | ||
258 | } | ||
259 | |||
260 | /** | ||
261 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
262 | * @return an initialized matcher | ||
263 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
264 | * | ||
265 | */ | ||
266 | public static TimeMetric.Matcher create() { | ||
267 | return new Matcher(); | ||
268 | } | ||
269 | |||
270 | private static final int POSITION_TIME = 0; | ||
271 | |||
272 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(TimeMetric.Matcher.class); | ||
273 | |||
274 | /** | ||
275 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
276 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
277 | * | ||
278 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
279 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
280 | * | ||
281 | */ | ||
282 | private Matcher() { | ||
283 | super(querySpecification()); | ||
284 | } | ||
285 | |||
286 | /** | ||
287 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
288 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
289 | * @return matches represented as a Match object. | ||
290 | * | ||
291 | */ | ||
292 | public Collection<TimeMetric.Match> getAllMatches(final Double pTime) { | ||
293 | return rawStreamAllMatches(new Object[]{pTime}).collect(Collectors.toSet()); | ||
294 | } | ||
295 | |||
296 | /** | ||
297 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
298 | * </p> | ||
299 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
300 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
301 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
302 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
303 | * @return a stream of matches represented as a Match object. | ||
304 | * | ||
305 | */ | ||
306 | public Stream<TimeMetric.Match> streamAllMatches(final Double pTime) { | ||
307 | return rawStreamAllMatches(new Object[]{pTime}); | ||
308 | } | ||
309 | |||
310 | /** | ||
311 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
312 | * Neither determinism nor randomness of selection is guaranteed. | ||
313 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
314 | * @return a match represented as a Match object, or null if no match is found. | ||
315 | * | ||
316 | */ | ||
317 | public Optional<TimeMetric.Match> getOneArbitraryMatch(final Double pTime) { | ||
318 | return rawGetOneArbitraryMatch(new Object[]{pTime}); | ||
319 | } | ||
320 | |||
321 | /** | ||
322 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
323 | * under any possible substitution of the unspecified parameters (if any). | ||
324 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
325 | * @return true if the input is a valid (partial) match of the pattern. | ||
326 | * | ||
327 | */ | ||
328 | public boolean hasMatch(final Double pTime) { | ||
329 | return rawHasMatch(new Object[]{pTime}); | ||
330 | } | ||
331 | |||
332 | /** | ||
333 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
334 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
335 | * @return the number of pattern matches found. | ||
336 | * | ||
337 | */ | ||
338 | public int countMatches(final Double pTime) { | ||
339 | return rawCountMatches(new Object[]{pTime}); | ||
340 | } | ||
341 | |||
342 | /** | ||
343 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
344 | * Neither determinism nor randomness of selection is guaranteed. | ||
345 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
346 | * @param processor the action that will process the selected match. | ||
347 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
348 | * | ||
349 | */ | ||
350 | public boolean forOneArbitraryMatch(final Double pTime, final Consumer<? super TimeMetric.Match> processor) { | ||
351 | return rawForOneArbitraryMatch(new Object[]{pTime}, processor); | ||
352 | } | ||
353 | |||
354 | /** | ||
355 | * Returns a new (partial) match. | ||
356 | * This can be used e.g. to call the matcher with a partial match. | ||
357 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
358 | * @param pTime the fixed value of pattern parameter Time, or null if not bound. | ||
359 | * @return the (partial) match object. | ||
360 | * | ||
361 | */ | ||
362 | public TimeMetric.Match newMatch(final Double pTime) { | ||
363 | return TimeMetric.Match.newMatch(pTime); | ||
364 | } | ||
365 | |||
366 | /** | ||
367 | * Retrieve the set of values that occur in matches for Time. | ||
368 | * @return the Set of all values or empty set if there are no matches | ||
369 | * | ||
370 | */ | ||
371 | protected Stream<Double> rawStreamAllValuesOfTime(final Object[] parameters) { | ||
372 | return rawStreamAllValues(POSITION_TIME, parameters).map(Double.class::cast); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * Retrieve the set of values that occur in matches for Time. | ||
377 | * @return the Set of all values or empty set if there are no matches | ||
378 | * | ||
379 | */ | ||
380 | public Set<Double> getAllValuesOfTime() { | ||
381 | return rawStreamAllValuesOfTime(emptyArray()).collect(Collectors.toSet()); | ||
382 | } | ||
383 | |||
384 | /** | ||
385 | * Retrieve the set of values that occur in matches for Time. | ||
386 | * @return the Set of all values or empty set if there are no matches | ||
387 | * | ||
388 | */ | ||
389 | public Stream<Double> streamAllValuesOfTime() { | ||
390 | return rawStreamAllValuesOfTime(emptyArray()); | ||
391 | } | ||
392 | |||
393 | @Override | ||
394 | protected TimeMetric.Match tupleToMatch(final Tuple t) { | ||
395 | try { | ||
396 | return TimeMetric.Match.newMatch((Double) t.get(POSITION_TIME)); | ||
397 | } catch(ClassCastException e) { | ||
398 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
399 | return null; | ||
400 | } | ||
401 | } | ||
402 | |||
403 | @Override | ||
404 | protected TimeMetric.Match arrayToMatch(final Object[] match) { | ||
405 | try { | ||
406 | return TimeMetric.Match.newMatch((Double) match[POSITION_TIME]); | ||
407 | } catch(ClassCastException e) { | ||
408 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
409 | return null; | ||
410 | } | ||
411 | } | ||
412 | |||
413 | @Override | ||
414 | protected TimeMetric.Match arrayToMatchMutable(final Object[] match) { | ||
415 | try { | ||
416 | return TimeMetric.Match.newMutableMatch((Double) match[POSITION_TIME]); | ||
417 | } catch(ClassCastException e) { | ||
418 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
419 | return null; | ||
420 | } | ||
421 | } | ||
422 | |||
423 | /** | ||
424 | * @return the singleton instance of the query specification of this pattern | ||
425 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
426 | * | ||
427 | */ | ||
428 | public static IQuerySpecification<TimeMetric.Matcher> querySpecification() { | ||
429 | return TimeMetric.instance(); | ||
430 | } | ||
431 | } | ||
432 | |||
433 | private TimeMetric() { | ||
434 | super(GeneratedPQuery.INSTANCE); | ||
435 | } | ||
436 | |||
437 | /** | ||
438 | * @return the singleton instance of the query specification | ||
439 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
440 | * | ||
441 | */ | ||
442 | public static TimeMetric instance() { | ||
443 | try{ | ||
444 | return LazyHolder.INSTANCE; | ||
445 | } catch (ExceptionInInitializerError err) { | ||
446 | throw processInitializerError(err); | ||
447 | } | ||
448 | } | ||
449 | |||
450 | @Override | ||
451 | protected TimeMetric.Matcher instantiate(final ViatraQueryEngine engine) { | ||
452 | return TimeMetric.Matcher.on(engine); | ||
453 | } | ||
454 | |||
455 | @Override | ||
456 | public TimeMetric.Matcher instantiate() { | ||
457 | return TimeMetric.Matcher.create(); | ||
458 | } | ||
459 | |||
460 | @Override | ||
461 | public TimeMetric.Match newEmptyMatch() { | ||
462 | return TimeMetric.Match.newEmptyMatch(); | ||
463 | } | ||
464 | |||
465 | @Override | ||
466 | public TimeMetric.Match newMatch(final Object... parameters) { | ||
467 | return TimeMetric.Match.newMatch((java.lang.Double) parameters[0]); | ||
468 | } | ||
469 | |||
470 | /** | ||
471 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric (visibility: PUBLIC, simpleName: TimeMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
472 | * <b>not</b> at the class load time of the outer class, | ||
473 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric (visibility: PUBLIC, simpleName: TimeMetric, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
474 | * | ||
475 | * <p> This workaround is required e.g. to support recursion. | ||
476 | * | ||
477 | */ | ||
478 | private static class LazyHolder { | ||
479 | private static final TimeMetric INSTANCE = new TimeMetric(); | ||
480 | |||
481 | /** | ||
482 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
483 | * This initialization order is required to support indirect recursion. | ||
484 | * | ||
485 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
486 | * | ||
487 | */ | ||
488 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
489 | |||
490 | public static Object ensureInitialized() { | ||
491 | INSTANCE.ensureInitializedInternal(); | ||
492 | return null; | ||
493 | } | ||
494 | } | ||
495 | |||
496 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
497 | private static final TimeMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
498 | |||
499 | private final PParameter parameter_Time = new PParameter("Time", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
500 | |||
501 | private final List<PParameter> parameters = Arrays.asList(parameter_Time); | ||
502 | |||
503 | private GeneratedPQuery() { | ||
504 | super(PVisibility.PUBLIC); | ||
505 | } | ||
506 | |||
507 | @Override | ||
508 | public String getFullyQualifiedName() { | ||
509 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.timeMetric"; | ||
510 | } | ||
511 | |||
512 | @Override | ||
513 | public List<String> getParameterNames() { | ||
514 | return Arrays.asList("Time"); | ||
515 | } | ||
516 | |||
517 | @Override | ||
518 | public List<PParameter> getParameters() { | ||
519 | return parameters; | ||
520 | } | ||
521 | |||
522 | @Override | ||
523 | public Set<PBody> doGetContainedBodies() { | ||
524 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
525 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
526 | { | ||
527 | PBody body = new PBody(this); | ||
528 | PVariable var_Time = body.getOrCreateVariableByName("Time"); | ||
529 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
530 | PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); | ||
531 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Time), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
532 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
533 | new ExportedParameter(body, var_Time, parameter_Time) | ||
534 | )); | ||
535 | // Time == sum find missionTime(_, #_) | ||
536 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
537 | new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var___0_, var___1_), MissionTime.instance().getInternalQueryRepresentation(), var__virtual_0_, 1); | ||
538 | new Equality(body, var_Time, var__virtual_0_); | ||
539 | bodies.add(body); | ||
540 | } | ||
541 | return bodies; | ||
542 | } | ||
543 | } | ||
544 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.emf.ecore.EDataType; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
30 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
44 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
45 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
46 | import 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") | ||
71 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.emf.ecore.EDataType; | ||
21 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
22 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
27 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
30 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
42 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
43 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
44 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
45 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
46 | import 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") | ||
68 | public 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..f72ce8f1 --- /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,33 @@ | |||
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 | ||
16 | /.MissionCoverage.java._trace | ||
17 | /.SatelliteMetricsAll.java._trace | ||
18 | /.MissionTime.java._trace | ||
19 | /.TimeMetric.java._trace | ||
20 | /.TransmitTime.java._trace | ||
21 | /.TransmitRate.java._trace | ||
22 | /.SpacecraftUplink.java._trace | ||
23 | /.MissionScienceData.java._trace | ||
24 | /.IndirectScienceData.java._trace | ||
25 | /.ScienceData.java._trace | ||
26 | /.IncomingData.java._trace | ||
27 | /.MissionCost.java._trace | ||
28 | /.BasePrice.java._trace | ||
29 | /.SpacecraftOfKind.java._trace | ||
30 | /.InterferometryPayloadCost.java._trace | ||
31 | /.AdditionalCommSubsystemCost.java._trace | ||
32 | /.SpacecraftWithTwoCommSubsystems.java._trace | ||
33 | /.SpacecraftCost.java._trace | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java new file mode 100644 index 00000000..61b1da52 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AdditionalCommSubsystemCost.java | |||
@@ -0,0 +1,173 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
30 | |||
31 | /** | ||
32 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
33 | * | ||
34 | * <p>Original source: | ||
35 | * <code><pre> | ||
36 | * private pattern additionalCommSubsystemCost(Spacecraft : Spacecraft, Cost : java Double) { | ||
37 | * find spacecraftWithTwoCommSubsystems(Spacecraft); | ||
38 | * Cost == 100000.0; | ||
39 | * } or { | ||
40 | * neg find spacecraftWithTwoCommSubsystems(Spacecraft); | ||
41 | * Cost == 0.0; | ||
42 | * } | ||
43 | * </pre></code> | ||
44 | * | ||
45 | * @see GenericPatternMatcher | ||
46 | * @see GenericPatternMatch | ||
47 | * | ||
48 | */ | ||
49 | @SuppressWarnings("all") | ||
50 | public final class AdditionalCommSubsystemCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
51 | private AdditionalCommSubsystemCost() { | ||
52 | super(GeneratedPQuery.INSTANCE); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * @return the singleton instance of the query specification | ||
57 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
58 | * | ||
59 | */ | ||
60 | public static AdditionalCommSubsystemCost instance() { | ||
61 | try{ | ||
62 | return LazyHolder.INSTANCE; | ||
63 | } catch (ExceptionInInitializerError err) { | ||
64 | throw processInitializerError(err); | ||
65 | } | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost (visibility: PUBLIC, simpleName: AdditionalCommSubsystemCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
70 | * <b>not</b> at the class load time of the outer class, | ||
71 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost (visibility: PUBLIC, simpleName: AdditionalCommSubsystemCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
72 | * | ||
73 | * <p> This workaround is required e.g. to support recursion. | ||
74 | * | ||
75 | */ | ||
76 | private static class LazyHolder { | ||
77 | private static final AdditionalCommSubsystemCost INSTANCE = new AdditionalCommSubsystemCost(); | ||
78 | |||
79 | /** | ||
80 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
81 | * This initialization order is required to support indirect recursion. | ||
82 | * | ||
83 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
84 | * | ||
85 | */ | ||
86 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
87 | |||
88 | public static Object ensureInitialized() { | ||
89 | INSTANCE.ensureInitializedInternal(); | ||
90 | return null; | ||
91 | } | ||
92 | } | ||
93 | |||
94 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
95 | private static final AdditionalCommSubsystemCost.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
96 | |||
97 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
98 | |||
99 | private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
100 | |||
101 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Cost); | ||
102 | |||
103 | private GeneratedPQuery() { | ||
104 | super(PVisibility.PRIVATE); | ||
105 | } | ||
106 | |||
107 | @Override | ||
108 | public String getFullyQualifiedName() { | ||
109 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.additionalCommSubsystemCost"; | ||
110 | } | ||
111 | |||
112 | @Override | ||
113 | public List<String> getParameterNames() { | ||
114 | return Arrays.asList("Spacecraft","Cost"); | ||
115 | } | ||
116 | |||
117 | @Override | ||
118 | public List<PParameter> getParameters() { | ||
119 | return parameters; | ||
120 | } | ||
121 | |||
122 | @Override | ||
123 | public Set<PBody> doGetContainedBodies() { | ||
124 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
125 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
126 | { | ||
127 | PBody body = new PBody(this); | ||
128 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
129 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
130 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
131 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
132 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
133 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
134 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
135 | )); | ||
136 | // find spacecraftWithTwoCommSubsystems(Spacecraft) | ||
137 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft), SpacecraftWithTwoCommSubsystems.instance().getInternalQueryRepresentation()); | ||
138 | // Cost == 100000.0 | ||
139 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
140 | new ConstantValue(body, var__virtual_0_, 100000.0); | ||
141 | new Equality(body, var_Cost, var__virtual_0_); | ||
142 | bodies.add(body); | ||
143 | } | ||
144 | { | ||
145 | PBody body = new PBody(this); | ||
146 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
147 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
148 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
149 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
150 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
151 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
152 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
153 | )); | ||
154 | // neg find spacecraftWithTwoCommSubsystems(Spacecraft) | ||
155 | new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft), SpacecraftWithTwoCommSubsystems.instance().getInternalQueryRepresentation()); | ||
156 | // Cost == 0.0 | ||
157 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
158 | new ConstantValue(body, var__virtual_0_, 0.0); | ||
159 | new Equality(body, var_Cost, var__virtual_0_); | ||
160 | bodies.add(body); | ||
161 | } | ||
162 | return bodies; | ||
163 | } | ||
164 | } | ||
165 | |||
166 | private static double evaluateExpression_1_1() { | ||
167 | return 100000.0; | ||
168 | } | ||
169 | |||
170 | private static double evaluateExpression_2_1() { | ||
171 | return 0.0; | ||
172 | } | ||
173 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
25 | import 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") | ||
44 | public 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/BasePrice.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/BasePrice.java new file mode 100644 index 00000000..c70f4c8b --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/BasePrice.java | |||
@@ -0,0 +1,216 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
30 | |||
31 | /** | ||
32 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
33 | * | ||
34 | * <p>Original source: | ||
35 | * <code><pre> | ||
36 | * private pattern basePrice(Spacecraft : Spacecraft, BasePrice : java Double) { | ||
37 | * Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U); | ||
38 | * BasePrice == 250000.0; | ||
39 | * } or { | ||
40 | * Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat6U); | ||
41 | * BasePrice == 750000.0; | ||
42 | * } or { | ||
43 | * Spacecraft.kind(Spacecraft, SpacecraftKind::SmallSat); | ||
44 | * BasePrice == 3000000.0; | ||
45 | * } | ||
46 | * </pre></code> | ||
47 | * | ||
48 | * @see GenericPatternMatcher | ||
49 | * @see GenericPatternMatch | ||
50 | * | ||
51 | */ | ||
52 | @SuppressWarnings("all") | ||
53 | public final class BasePrice extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
54 | private BasePrice() { | ||
55 | super(GeneratedPQuery.INSTANCE); | ||
56 | } | ||
57 | |||
58 | /** | ||
59 | * @return the singleton instance of the query specification | ||
60 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
61 | * | ||
62 | */ | ||
63 | public static BasePrice instance() { | ||
64 | try{ | ||
65 | return LazyHolder.INSTANCE; | ||
66 | } catch (ExceptionInInitializerError err) { | ||
67 | throw processInitializerError(err); | ||
68 | } | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice (visibility: PUBLIC, simpleName: BasePrice, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
73 | * <b>not</b> at the class load time of the outer class, | ||
74 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice (visibility: PUBLIC, simpleName: BasePrice, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
75 | * | ||
76 | * <p> This workaround is required e.g. to support recursion. | ||
77 | * | ||
78 | */ | ||
79 | private static class LazyHolder { | ||
80 | private static final BasePrice INSTANCE = new BasePrice(); | ||
81 | |||
82 | /** | ||
83 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
84 | * This initialization order is required to support indirect recursion. | ||
85 | * | ||
86 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
87 | * | ||
88 | */ | ||
89 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
90 | |||
91 | public static Object ensureInitialized() { | ||
92 | INSTANCE.ensureInitializedInternal(); | ||
93 | return null; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
98 | private static final BasePrice.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
99 | |||
100 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
101 | |||
102 | private final PParameter parameter_BasePrice = new PParameter("BasePrice", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
103 | |||
104 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_BasePrice); | ||
105 | |||
106 | private GeneratedPQuery() { | ||
107 | super(PVisibility.PRIVATE); | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public String getFullyQualifiedName() { | ||
112 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.basePrice"; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<String> getParameterNames() { | ||
117 | return Arrays.asList("Spacecraft","BasePrice"); | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public List<PParameter> getParameters() { | ||
122 | return parameters; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public Set<PBody> doGetContainedBodies() { | ||
127 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
128 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
129 | { | ||
130 | PBody body = new PBody(this); | ||
131 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
132 | PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice"); | ||
133 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
134 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_BasePrice), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
135 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
136 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
137 | new ExportedParameter(body, var_BasePrice, parameter_BasePrice) | ||
138 | )); | ||
139 | // Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U) | ||
140 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
141 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat3U").getInstance()); | ||
142 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
143 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
144 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
145 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
146 | new Equality(body, var__virtual_1_, var__virtual_0_); | ||
147 | // BasePrice == 250000.0 | ||
148 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
149 | new ConstantValue(body, var__virtual_2_, 250000.0); | ||
150 | new Equality(body, var_BasePrice, var__virtual_2_); | ||
151 | bodies.add(body); | ||
152 | } | ||
153 | { | ||
154 | PBody body = new PBody(this); | ||
155 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
156 | PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice"); | ||
157 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
158 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_BasePrice), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
159 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
160 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
161 | new ExportedParameter(body, var_BasePrice, parameter_BasePrice) | ||
162 | )); | ||
163 | // Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat6U) | ||
164 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
165 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat6U").getInstance()); | ||
166 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
167 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
168 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
169 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
170 | new Equality(body, var__virtual_1_, var__virtual_0_); | ||
171 | // BasePrice == 750000.0 | ||
172 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
173 | new ConstantValue(body, var__virtual_2_, 750000.0); | ||
174 | new Equality(body, var_BasePrice, var__virtual_2_); | ||
175 | bodies.add(body); | ||
176 | } | ||
177 | { | ||
178 | PBody body = new PBody(this); | ||
179 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
180 | PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice"); | ||
181 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
182 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_BasePrice), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
183 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
184 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
185 | new ExportedParameter(body, var_BasePrice, parameter_BasePrice) | ||
186 | )); | ||
187 | // Spacecraft.kind(Spacecraft, SpacecraftKind::SmallSat) | ||
188 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
189 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "SmallSat").getInstance()); | ||
190 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
191 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
192 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
193 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
194 | new Equality(body, var__virtual_1_, var__virtual_0_); | ||
195 | // BasePrice == 3000000.0 | ||
196 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
197 | new ConstantValue(body, var__virtual_2_, 3000000.0); | ||
198 | new Equality(body, var_BasePrice, var__virtual_2_); | ||
199 | bodies.add(body); | ||
200 | } | ||
201 | return bodies; | ||
202 | } | ||
203 | } | ||
204 | |||
205 | private static double evaluateExpression_1_1() { | ||
206 | return 250000.0; | ||
207 | } | ||
208 | |||
209 | private static double evaluateExpression_2_1() { | ||
210 | return 750000.0; | ||
211 | } | ||
212 | |||
213 | private static double evaluateExpression_3_1() { | ||
214 | return 3000000.0; | ||
215 | } | ||
216 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
26 | import 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") | ||
43 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
27 | import 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") | ||
44 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
26 | import 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") | ||
43 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
27 | import 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") | ||
44 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
27 | import 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") | ||
44 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
13 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
24 | import 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") | ||
44 | public 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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
13 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
14 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
22 | import 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") | ||
39 | public 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/IncomingData.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IncomingData.java new file mode 100644 index 00000000..114bbf33 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IncomingData.java | |||
@@ -0,0 +1,145 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.LinkedHashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.Set; | ||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
14 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
27 | import 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 incomingData(Spacecraft : Spacecraft, Source : Spacecraft, Data : java Double) { | ||
35 | * find indirectCommunicationLink(Source, Spacecraft); | ||
36 | * find scienceData(Source, Data); | ||
37 | * } | ||
38 | * </pre></code> | ||
39 | * | ||
40 | * @see GenericPatternMatcher | ||
41 | * @see GenericPatternMatch | ||
42 | * | ||
43 | */ | ||
44 | @SuppressWarnings("all") | ||
45 | public final class IncomingData extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
46 | private IncomingData() { | ||
47 | super(GeneratedPQuery.INSTANCE); | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * @return the singleton instance of the query specification | ||
52 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
53 | * | ||
54 | */ | ||
55 | public static IncomingData instance() { | ||
56 | try{ | ||
57 | return LazyHolder.INSTANCE; | ||
58 | } catch (ExceptionInInitializerError err) { | ||
59 | throw processInitializerError(err); | ||
60 | } | ||
61 | } | ||
62 | |||
63 | /** | ||
64 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData (visibility: PUBLIC, simpleName: IncomingData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
65 | * <b>not</b> at the class load time of the outer class, | ||
66 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData (visibility: PUBLIC, simpleName: IncomingData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
67 | * | ||
68 | * <p> This workaround is required e.g. to support recursion. | ||
69 | * | ||
70 | */ | ||
71 | private static class LazyHolder { | ||
72 | private static final IncomingData INSTANCE = new IncomingData(); | ||
73 | |||
74 | /** | ||
75 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
76 | * This initialization order is required to support indirect recursion. | ||
77 | * | ||
78 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
79 | * | ||
80 | */ | ||
81 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
82 | |||
83 | public static Object ensureInitialized() { | ||
84 | INSTANCE.ensureInitializedInternal(); | ||
85 | return null; | ||
86 | } | ||
87 | } | ||
88 | |||
89 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
90 | private static final IncomingData.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
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 PParameter parameter_Source = new PParameter("Source", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
95 | |||
96 | private final PParameter parameter_Data = new PParameter("Data", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
97 | |||
98 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Source, parameter_Data); | ||
99 | |||
100 | private GeneratedPQuery() { | ||
101 | super(PVisibility.PRIVATE); | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public String getFullyQualifiedName() { | ||
106 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incomingData"; | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public List<String> getParameterNames() { | ||
111 | return Arrays.asList("Spacecraft","Source","Data"); | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public List<PParameter> getParameters() { | ||
116 | return parameters; | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public Set<PBody> doGetContainedBodies() { | ||
121 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
122 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
123 | { | ||
124 | PBody body = new PBody(this); | ||
125 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
126 | PVariable var_Source = body.getOrCreateVariableByName("Source"); | ||
127 | PVariable var_Data = body.getOrCreateVariableByName("Data"); | ||
128 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
129 | new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
130 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Data), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
131 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
132 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
133 | new ExportedParameter(body, var_Source, parameter_Source), | ||
134 | new ExportedParameter(body, var_Data, parameter_Data) | ||
135 | )); | ||
136 | // find indirectCommunicationLink(Source, Spacecraft) | ||
137 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Source, var_Spacecraft), IndirectCommunicationLink.instance().getInternalQueryRepresentation()); | ||
138 | // find scienceData(Source, Data) | ||
139 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Source, var_Data), ScienceData.instance().getInternalQueryRepresentation()); | ||
140 | bodies.add(body); | ||
141 | } | ||
142 | return bodies; | ||
143 | } | ||
144 | } | ||
145 | } | ||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
24 | import 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") | ||
41 | public 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/InterferometryPayloadCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/InterferometryPayloadCost.java new file mode 100644 index 00000000..205d896a --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/InterferometryPayloadCost.java | |||
@@ -0,0 +1,175 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
30 | |||
31 | /** | ||
32 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
33 | * | ||
34 | * <p>Original source: | ||
35 | * <code><pre> | ||
36 | * private pattern interferometryPayloadCost(Spacecraft : Spacecraft, Cost : java Double) { | ||
37 | * find spacecraftWithInterferometryPayload(_, Spacecraft); | ||
38 | * Cost == 50000.0; | ||
39 | * } or { | ||
40 | * neg find spacecraftWithInterferometryPayload(_, Spacecraft); | ||
41 | * Cost == 0.0; | ||
42 | * } | ||
43 | * </pre></code> | ||
44 | * | ||
45 | * @see GenericPatternMatcher | ||
46 | * @see GenericPatternMatch | ||
47 | * | ||
48 | */ | ||
49 | @SuppressWarnings("all") | ||
50 | public final class InterferometryPayloadCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
51 | private InterferometryPayloadCost() { | ||
52 | super(GeneratedPQuery.INSTANCE); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * @return the singleton instance of the query specification | ||
57 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
58 | * | ||
59 | */ | ||
60 | public static InterferometryPayloadCost instance() { | ||
61 | try{ | ||
62 | return LazyHolder.INSTANCE; | ||
63 | } catch (ExceptionInInitializerError err) { | ||
64 | throw processInitializerError(err); | ||
65 | } | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost (visibility: PUBLIC, simpleName: InterferometryPayloadCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
70 | * <b>not</b> at the class load time of the outer class, | ||
71 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost (visibility: PUBLIC, simpleName: InterferometryPayloadCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
72 | * | ||
73 | * <p> This workaround is required e.g. to support recursion. | ||
74 | * | ||
75 | */ | ||
76 | private static class LazyHolder { | ||
77 | private static final InterferometryPayloadCost INSTANCE = new InterferometryPayloadCost(); | ||
78 | |||
79 | /** | ||
80 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
81 | * This initialization order is required to support indirect recursion. | ||
82 | * | ||
83 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
84 | * | ||
85 | */ | ||
86 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
87 | |||
88 | public static Object ensureInitialized() { | ||
89 | INSTANCE.ensureInitializedInternal(); | ||
90 | return null; | ||
91 | } | ||
92 | } | ||
93 | |||
94 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
95 | private static final InterferometryPayloadCost.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
96 | |||
97 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
98 | |||
99 | private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
100 | |||
101 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Cost); | ||
102 | |||
103 | private GeneratedPQuery() { | ||
104 | super(PVisibility.PRIVATE); | ||
105 | } | ||
106 | |||
107 | @Override | ||
108 | public String getFullyQualifiedName() { | ||
109 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.interferometryPayloadCost"; | ||
110 | } | ||
111 | |||
112 | @Override | ||
113 | public List<String> getParameterNames() { | ||
114 | return Arrays.asList("Spacecraft","Cost"); | ||
115 | } | ||
116 | |||
117 | @Override | ||
118 | public List<PParameter> getParameters() { | ||
119 | return parameters; | ||
120 | } | ||
121 | |||
122 | @Override | ||
123 | public Set<PBody> doGetContainedBodies() { | ||
124 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
125 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
126 | { | ||
127 | PBody body = new PBody(this); | ||
128 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
129 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
130 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
131 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
132 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
133 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
134 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
135 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
136 | )); | ||
137 | // find spacecraftWithInterferometryPayload(_, Spacecraft) | ||
138 | new PositivePatternCall(body, Tuples.flatTupleOf(var___0_, var_Spacecraft), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation()); | ||
139 | // Cost == 50000.0 | ||
140 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
141 | new ConstantValue(body, var__virtual_0_, 50000.0); | ||
142 | new Equality(body, var_Cost, var__virtual_0_); | ||
143 | bodies.add(body); | ||
144 | } | ||
145 | { | ||
146 | PBody body = new PBody(this); | ||
147 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
148 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
149 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
150 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
151 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
152 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
153 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
154 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
155 | )); | ||
156 | // neg find spacecraftWithInterferometryPayload(_, Spacecraft) | ||
157 | new NegativePatternCall(body, Tuples.flatTupleOf(var___0_, var_Spacecraft), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation()); | ||
158 | // Cost == 0.0 | ||
159 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
160 | new ConstantValue(body, var__virtual_0_, 0.0); | ||
161 | new Equality(body, var_Cost, var__virtual_0_); | ||
162 | bodies.add(body); | ||
163 | } | ||
164 | return bodies; | ||
165 | } | ||
166 | } | ||
167 | |||
168 | private static double evaluateExpression_1_1() { | ||
169 | return 50000.0; | ||
170 | } | ||
171 | |||
172 | private static double evaluateExpression_2_1() { | ||
173 | return 0.0; | ||
174 | } | ||
175 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java new file mode 100644 index 00000000..0374195f --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCost.java | |||
@@ -0,0 +1,183 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.emf.ecore.EDataType; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
14 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
17 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
35 | |||
36 | /** | ||
37 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
38 | * | ||
39 | * <p>Original source: | ||
40 | * <code><pre> | ||
41 | * private pattern missionCost(Mission : InterferometryMission, Cost : java Double) { | ||
42 | * InterferometryMission.observationTime(Mission, ObservationTime); | ||
43 | * SpacecraftCost == sum find spacecraftCost(Mission, _, #_); | ||
44 | * Cost == eval(SpacecraftCost + 100000.0 ObservationTime); | ||
45 | * } | ||
46 | * </pre></code> | ||
47 | * | ||
48 | * @see GenericPatternMatcher | ||
49 | * @see GenericPatternMatch | ||
50 | * | ||
51 | */ | ||
52 | @SuppressWarnings("all") | ||
53 | public final class MissionCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
54 | private MissionCost() { | ||
55 | super(GeneratedPQuery.INSTANCE); | ||
56 | } | ||
57 | |||
58 | /** | ||
59 | * @return the singleton instance of the query specification | ||
60 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
61 | * | ||
62 | */ | ||
63 | public static MissionCost instance() { | ||
64 | try{ | ||
65 | return LazyHolder.INSTANCE; | ||
66 | } catch (ExceptionInInitializerError err) { | ||
67 | throw processInitializerError(err); | ||
68 | } | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost (visibility: PUBLIC, simpleName: MissionCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
73 | * <b>not</b> at the class load time of the outer class, | ||
74 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost (visibility: PUBLIC, simpleName: MissionCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
75 | * | ||
76 | * <p> This workaround is required e.g. to support recursion. | ||
77 | * | ||
78 | */ | ||
79 | private static class LazyHolder { | ||
80 | private static final MissionCost INSTANCE = new MissionCost(); | ||
81 | |||
82 | /** | ||
83 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
84 | * This initialization order is required to support indirect recursion. | ||
85 | * | ||
86 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
87 | * | ||
88 | */ | ||
89 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
90 | |||
91 | public static Object ensureInitialized() { | ||
92 | INSTANCE.ensureInitializedInternal(); | ||
93 | return null; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
98 | private static final MissionCost.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
99 | |||
100 | private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
101 | |||
102 | private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
103 | |||
104 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Cost); | ||
105 | |||
106 | private GeneratedPQuery() { | ||
107 | super(PVisibility.PRIVATE); | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public String getFullyQualifiedName() { | ||
112 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.missionCost"; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<String> getParameterNames() { | ||
117 | return Arrays.asList("Mission","Cost"); | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public List<PParameter> getParameters() { | ||
122 | return parameters; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public Set<PBody> doGetContainedBodies() { | ||
127 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
128 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
129 | { | ||
130 | PBody body = new PBody(this); | ||
131 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
132 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
133 | PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime"); | ||
134 | PVariable var_SpacecraftCost = body.getOrCreateVariableByName("SpacecraftCost"); | ||
135 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
136 | PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); | ||
137 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
138 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
139 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
140 | new ExportedParameter(body, var_Mission, parameter_Mission), | ||
141 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
142 | )); | ||
143 | // InterferometryMission.observationTime(Mission, ObservationTime) | ||
144 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
145 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
146 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime"))); | ||
147 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat"))); | ||
148 | new Equality(body, var__virtual_0_, var_ObservationTime); | ||
149 | // SpacecraftCost == sum find spacecraftCost(Mission, _, #_) | ||
150 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
151 | new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var_Mission, var___0_, var___1_), SpacecraftCost.instance().getInternalQueryRepresentation(), var__virtual_1_, 2); | ||
152 | new Equality(body, var_SpacecraftCost, var__virtual_1_); | ||
153 | // Cost == eval(SpacecraftCost + 100000.0 * ObservationTime) | ||
154 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
155 | new ExpressionEvaluation(body, new IExpressionEvaluator() { | ||
156 | |||
157 | @Override | ||
158 | public String getShortDescription() { | ||
159 | return "Expression evaluation from pattern missionCost"; | ||
160 | } | ||
161 | |||
162 | @Override | ||
163 | public Iterable<String> getInputParameterNames() { | ||
164 | return Arrays.asList("ObservationTime", "SpacecraftCost");} | ||
165 | |||
166 | @Override | ||
167 | public Object evaluateExpression(IValueProvider provider) throws Exception { | ||
168 | Float ObservationTime = (Float) provider.getValue("ObservationTime"); | ||
169 | Double SpacecraftCost = (Double) provider.getValue("SpacecraftCost"); | ||
170 | return evaluateExpression_1_1(ObservationTime, SpacecraftCost); | ||
171 | } | ||
172 | }, var__virtual_2_ ); | ||
173 | new Equality(body, var_Cost, var__virtual_2_); | ||
174 | bodies.add(body); | ||
175 | } | ||
176 | return bodies; | ||
177 | } | ||
178 | } | ||
179 | |||
180 | private static double evaluateExpression_1_1(final Float ObservationTime, final Double SpacecraftCost) { | ||
181 | return ((SpacecraftCost).doubleValue() + (100000.0 * (ObservationTime).floatValue())); | ||
182 | } | ||
183 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java new file mode 100644 index 00000000..583c2175 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionCoverage.java | |||
@@ -0,0 +1,183 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.emf.ecore.EDataType; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
14 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
17 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
34 | |||
35 | /** | ||
36 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
37 | * | ||
38 | * <p>Original source: | ||
39 | * <code><pre> | ||
40 | * private pattern missionCoverage(Mission : InterferometryMission, Coverage : java Double) { | ||
41 | * InterferometryMission.observationTime(Mission, ObservationTime); | ||
42 | * ObserverCount == count find spacecraftWithInterferometryPayload(Mission, _); | ||
43 | * Coverage == eval(Math.pow(1 - 2.0 / ObserverCount, 1 + 9 (1.0 / ObservationTime)) + 0.05 ObservationTime / 3); | ||
44 | * } | ||
45 | * </pre></code> | ||
46 | * | ||
47 | * @see GenericPatternMatcher | ||
48 | * @see GenericPatternMatch | ||
49 | * | ||
50 | */ | ||
51 | @SuppressWarnings("all") | ||
52 | public final class MissionCoverage extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
53 | private MissionCoverage() { | ||
54 | super(GeneratedPQuery.INSTANCE); | ||
55 | } | ||
56 | |||
57 | /** | ||
58 | * @return the singleton instance of the query specification | ||
59 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
60 | * | ||
61 | */ | ||
62 | public static MissionCoverage instance() { | ||
63 | try{ | ||
64 | return LazyHolder.INSTANCE; | ||
65 | } catch (ExceptionInInitializerError err) { | ||
66 | throw processInitializerError(err); | ||
67 | } | ||
68 | } | ||
69 | |||
70 | /** | ||
71 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage (visibility: PUBLIC, simpleName: MissionCoverage, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
72 | * <b>not</b> at the class load time of the outer class, | ||
73 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage (visibility: PUBLIC, simpleName: MissionCoverage, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
74 | * | ||
75 | * <p> This workaround is required e.g. to support recursion. | ||
76 | * | ||
77 | */ | ||
78 | private static class LazyHolder { | ||
79 | private static final MissionCoverage INSTANCE = new MissionCoverage(); | ||
80 | |||
81 | /** | ||
82 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
83 | * This initialization order is required to support indirect recursion. | ||
84 | * | ||
85 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
86 | * | ||
87 | */ | ||
88 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
89 | |||
90 | public static Object ensureInitialized() { | ||
91 | INSTANCE.ensureInitializedInternal(); | ||
92 | return null; | ||
93 | } | ||
94 | } | ||
95 | |||
96 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
97 | private static final MissionCoverage.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
98 | |||
99 | private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
100 | |||
101 | private final PParameter parameter_Coverage = new PParameter("Coverage", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
102 | |||
103 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Coverage); | ||
104 | |||
105 | private GeneratedPQuery() { | ||
106 | super(PVisibility.PRIVATE); | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public String getFullyQualifiedName() { | ||
111 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.missionCoverage"; | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public List<String> getParameterNames() { | ||
116 | return Arrays.asList("Mission","Coverage"); | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public List<PParameter> getParameters() { | ||
121 | return parameters; | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public Set<PBody> doGetContainedBodies() { | ||
126 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
127 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
128 | { | ||
129 | PBody body = new PBody(this); | ||
130 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
131 | PVariable var_Coverage = body.getOrCreateVariableByName("Coverage"); | ||
132 | PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime"); | ||
133 | PVariable var_ObserverCount = body.getOrCreateVariableByName("ObserverCount"); | ||
134 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
135 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
136 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Coverage), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
137 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
138 | new ExportedParameter(body, var_Mission, parameter_Mission), | ||
139 | new ExportedParameter(body, var_Coverage, parameter_Coverage) | ||
140 | )); | ||
141 | // InterferometryMission.observationTime(Mission, ObservationTime) | ||
142 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
143 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
144 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime"))); | ||
145 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat"))); | ||
146 | new Equality(body, var__virtual_0_, var_ObservationTime); | ||
147 | // ObserverCount == count find spacecraftWithInterferometryPayload(Mission, _) | ||
148 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
149 | new PatternMatchCounter(body, Tuples.flatTupleOf(var_Mission, var___0_), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation(), var__virtual_1_); | ||
150 | new Equality(body, var_ObserverCount, var__virtual_1_); | ||
151 | // Coverage == eval(Math.pow(1 - 2.0 / ObserverCount, 1 + 9 * (1.0 / ObservationTime)) + 0.05 * ObservationTime / 3) | ||
152 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
153 | new ExpressionEvaluation(body, new IExpressionEvaluator() { | ||
154 | |||
155 | @Override | ||
156 | public String getShortDescription() { | ||
157 | return "Expression evaluation from pattern missionCoverage"; | ||
158 | } | ||
159 | |||
160 | @Override | ||
161 | public Iterable<String> getInputParameterNames() { | ||
162 | return Arrays.asList("ObservationTime", "ObserverCount");} | ||
163 | |||
164 | @Override | ||
165 | public Object evaluateExpression(IValueProvider provider) throws Exception { | ||
166 | Float ObservationTime = (Float) provider.getValue("ObservationTime"); | ||
167 | Integer ObserverCount = (Integer) provider.getValue("ObserverCount"); | ||
168 | return evaluateExpression_1_1(ObservationTime, ObserverCount); | ||
169 | } | ||
170 | }, var__virtual_2_ ); | ||
171 | new Equality(body, var_Coverage, var__virtual_2_); | ||
172 | bodies.add(body); | ||
173 | } | ||
174 | return bodies; | ||
175 | } | ||
176 | } | ||
177 | |||
178 | private static double evaluateExpression_1_1(final Float ObservationTime, final Integer ObserverCount) { | ||
179 | double _pow = Math.pow((1 - (2.0 / (ObserverCount).intValue())), (1 + (9 * (1.0 / (ObservationTime).floatValue())))); | ||
180 | double _plus = (_pow + ((0.05 * (ObservationTime).floatValue()) / 3)); | ||
181 | return _plus; | ||
182 | } | ||
183 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java new file mode 100644 index 00000000..3ad42bf5 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MissionTime.java | |||
@@ -0,0 +1,183 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.emf.ecore.EDataType; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
14 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
17 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
35 | |||
36 | /** | ||
37 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
38 | * | ||
39 | * <p>Original source: | ||
40 | * <code><pre> | ||
41 | * private pattern missionTime(Mission : InterferometryMission, Time : java Double) { | ||
42 | * InterferometryMission.observationTime(Mission, ObservationTime); | ||
43 | * TrasmitTime == sum find transmitTime(Mission, _, #_); | ||
44 | * Time == eval(TrasmitTime + 60.0 ObservationTime); | ||
45 | * } | ||
46 | * </pre></code> | ||
47 | * | ||
48 | * @see GenericPatternMatcher | ||
49 | * @see GenericPatternMatch | ||
50 | * | ||
51 | */ | ||
52 | @SuppressWarnings("all") | ||
53 | public final class MissionTime extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
54 | private MissionTime() { | ||
55 | super(GeneratedPQuery.INSTANCE); | ||
56 | } | ||
57 | |||
58 | /** | ||
59 | * @return the singleton instance of the query specification | ||
60 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
61 | * | ||
62 | */ | ||
63 | public static MissionTime instance() { | ||
64 | try{ | ||
65 | return LazyHolder.INSTANCE; | ||
66 | } catch (ExceptionInInitializerError err) { | ||
67 | throw processInitializerError(err); | ||
68 | } | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime (visibility: PUBLIC, simpleName: MissionTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
73 | * <b>not</b> at the class load time of the outer class, | ||
74 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime (visibility: PUBLIC, simpleName: MissionTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
75 | * | ||
76 | * <p> This workaround is required e.g. to support recursion. | ||
77 | * | ||
78 | */ | ||
79 | private static class LazyHolder { | ||
80 | private static final MissionTime INSTANCE = new MissionTime(); | ||
81 | |||
82 | /** | ||
83 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
84 | * This initialization order is required to support indirect recursion. | ||
85 | * | ||
86 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
87 | * | ||
88 | */ | ||
89 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
90 | |||
91 | public static Object ensureInitialized() { | ||
92 | INSTANCE.ensureInitializedInternal(); | ||
93 | return null; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
98 | private static final MissionTime.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
99 | |||
100 | private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
101 | |||
102 | private final PParameter parameter_Time = new PParameter("Time", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
103 | |||
104 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Time); | ||
105 | |||
106 | private GeneratedPQuery() { | ||
107 | super(PVisibility.PRIVATE); | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public String getFullyQualifiedName() { | ||
112 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.missionTime"; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<String> getParameterNames() { | ||
117 | return Arrays.asList("Mission","Time"); | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public List<PParameter> getParameters() { | ||
122 | return parameters; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public Set<PBody> doGetContainedBodies() { | ||
127 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
128 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
129 | { | ||
130 | PBody body = new PBody(this); | ||
131 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
132 | PVariable var_Time = body.getOrCreateVariableByName("Time"); | ||
133 | PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime"); | ||
134 | PVariable var_TrasmitTime = body.getOrCreateVariableByName("TrasmitTime"); | ||
135 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
136 | PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); | ||
137 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
138 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Time), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
139 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
140 | new ExportedParameter(body, var_Mission, parameter_Mission), | ||
141 | new ExportedParameter(body, var_Time, parameter_Time) | ||
142 | )); | ||
143 | // InterferometryMission.observationTime(Mission, ObservationTime) | ||
144 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
145 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
146 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime"))); | ||
147 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat"))); | ||
148 | new Equality(body, var__virtual_0_, var_ObservationTime); | ||
149 | // TrasmitTime == sum find transmitTime(Mission, _, #_) | ||
150 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
151 | new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var_Mission, var___0_, var___1_), TransmitTime.instance().getInternalQueryRepresentation(), var__virtual_1_, 2); | ||
152 | new Equality(body, var_TrasmitTime, var__virtual_1_); | ||
153 | // Time == eval(TrasmitTime + 60.0 * ObservationTime) | ||
154 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
155 | new ExpressionEvaluation(body, new IExpressionEvaluator() { | ||
156 | |||
157 | @Override | ||
158 | public String getShortDescription() { | ||
159 | return "Expression evaluation from pattern missionTime"; | ||
160 | } | ||
161 | |||
162 | @Override | ||
163 | public Iterable<String> getInputParameterNames() { | ||
164 | return Arrays.asList("ObservationTime", "TrasmitTime");} | ||
165 | |||
166 | @Override | ||
167 | public Object evaluateExpression(IValueProvider provider) throws Exception { | ||
168 | Float ObservationTime = (Float) provider.getValue("ObservationTime"); | ||
169 | Double TrasmitTime = (Double) provider.getValue("TrasmitTime"); | ||
170 | return evaluateExpression_1_1(ObservationTime, TrasmitTime); | ||
171 | } | ||
172 | }, var__virtual_2_ ); | ||
173 | new Equality(body, var_Time, var__virtual_2_); | ||
174 | bodies.add(body); | ||
175 | } | ||
176 | return bodies; | ||
177 | } | ||
178 | } | ||
179 | |||
180 | private static double evaluateExpression_1_1(final Float ObservationTime, final Double TrasmitTime) { | ||
181 | return ((TrasmitTime).doubleValue() + (60.0 * (ObservationTime).floatValue())); | ||
182 | } | ||
183 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java new file mode 100644 index 00000000..2f310711 --- /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,156 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CoverageMetric; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna; | ||
11 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand; | ||
12 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain; | ||
13 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow; | ||
14 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation; | ||
15 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads; | ||
16 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink; | ||
17 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.TimeMetric; | ||
18 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.UhfAntennaGainNotLow; | ||
19 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.XAntennaGainNotMedium; | ||
20 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost; | ||
21 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads; | ||
22 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice; | ||
23 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand; | ||
24 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf; | ||
25 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain; | ||
26 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow; | ||
27 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium; | ||
28 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink; | ||
29 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork; | ||
30 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData; | ||
31 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; | ||
32 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost; | ||
33 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCost; | ||
34 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionCoverage; | ||
35 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MissionTime; | ||
36 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData; | ||
37 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SmallSat; | ||
38 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost; | ||
39 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind; | ||
40 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink; | ||
41 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload; | ||
42 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems; | ||
43 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate; | ||
44 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime; | ||
45 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; | ||
46 | |||
47 | /** | ||
48 | * A pattern group formed of all patterns defined in SatelliteQueries.vql. | ||
49 | * | ||
50 | * <p>A private group that includes private patterns as well. Only intended use case is for pattern testing. | ||
51 | * | ||
52 | * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul> | ||
53 | * <li>communicationLinkDoesNotStartAtContainingElement</li> | ||
54 | * <li>notEnoughInterferometryPayloads</li> | ||
55 | * <li>atLeastTwoInterferometryPayloads</li> | ||
56 | * <li>spacecraftWithInterferometryPayload</li> | ||
57 | * <li>noLinkToGroundStation</li> | ||
58 | * <li>communicationLoop</li> | ||
59 | * <li>indirectCommunicationLink</li> | ||
60 | * <li>directCommunicationLink</li> | ||
61 | * <li>incompatibleSourceAndTargetBand</li> | ||
62 | * <li>commSubsystemBand</li> | ||
63 | * <li>incompatibleSourceAndTargetGain</li> | ||
64 | * <li>commSubsystemGain</li> | ||
65 | * <li>uhfAntennaGainNotLow</li> | ||
66 | * <li>commSubsystemGainLow</li> | ||
67 | * <li>xAntennaGainNotMedium</li> | ||
68 | * <li>commSubsystemGainMedium</li> | ||
69 | * <li>kaAntennaGainLow</li> | ||
70 | * <li>threeUCubeSatWithNonUhfCrossLink</li> | ||
71 | * <li>commSubsystemBandUhf</li> | ||
72 | * <li>groundStationNetwork</li> | ||
73 | * <li>cubeSatWithKaAntenna</li> | ||
74 | * <li>smallSat</li> | ||
75 | * <li>coverageMetric</li> | ||
76 | * <li>missionCoverage</li> | ||
77 | * <li>timeMetric</li> | ||
78 | * <li>missionTime</li> | ||
79 | * <li>transmitTime</li> | ||
80 | * <li>incomingData</li> | ||
81 | * <li>scienceData</li> | ||
82 | * <li>transmitRate</li> | ||
83 | * <li>spacecraftUplink</li> | ||
84 | * <li>costMetric</li> | ||
85 | * <li>missionCost</li> | ||
86 | * <li>spacecraftCost</li> | ||
87 | * <li>spacecraftOfKind</li> | ||
88 | * <li>basePrice</li> | ||
89 | * <li>interferometryPayloadCost</li> | ||
90 | * <li>additionalCommSubsystemCost</li> | ||
91 | * <li>spacecraftWithTwoCommSubsystems</li> | ||
92 | * </ul> | ||
93 | * | ||
94 | * @see IQueryGroup | ||
95 | * | ||
96 | */ | ||
97 | @SuppressWarnings("all") | ||
98 | public final class SatelliteQueriesAll extends BaseGeneratedPatternGroup { | ||
99 | /** | ||
100 | * Access the pattern group. | ||
101 | * | ||
102 | * @return the singleton instance of the group | ||
103 | * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications | ||
104 | * | ||
105 | */ | ||
106 | public static SatelliteQueriesAll instance() { | ||
107 | if (INSTANCE == null) { | ||
108 | INSTANCE = new SatelliteQueriesAll(); | ||
109 | } | ||
110 | return INSTANCE; | ||
111 | } | ||
112 | |||
113 | private static SatelliteQueriesAll INSTANCE; | ||
114 | |||
115 | private SatelliteQueriesAll() { | ||
116 | querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance()); | ||
117 | querySpecifications.add(NotEnoughInterferometryPayloads.instance()); | ||
118 | querySpecifications.add(AtLeastTwoInterferometryPayloads.instance()); | ||
119 | querySpecifications.add(SpacecraftWithInterferometryPayload.instance()); | ||
120 | querySpecifications.add(NoLinkToGroundStation.instance()); | ||
121 | querySpecifications.add(CommunicationLoop.instance()); | ||
122 | querySpecifications.add(IndirectCommunicationLink.instance()); | ||
123 | querySpecifications.add(DirectCommunicationLink.instance()); | ||
124 | querySpecifications.add(IncompatibleSourceAndTargetBand.instance()); | ||
125 | querySpecifications.add(CommSubsystemBand.instance()); | ||
126 | querySpecifications.add(IncompatibleSourceAndTargetGain.instance()); | ||
127 | querySpecifications.add(CommSubsystemGain.instance()); | ||
128 | querySpecifications.add(UhfAntennaGainNotLow.instance()); | ||
129 | querySpecifications.add(CommSubsystemGainLow.instance()); | ||
130 | querySpecifications.add(XAntennaGainNotMedium.instance()); | ||
131 | querySpecifications.add(CommSubsystemGainMedium.instance()); | ||
132 | querySpecifications.add(KaAntennaGainLow.instance()); | ||
133 | querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance()); | ||
134 | querySpecifications.add(CommSubsystemBandUhf.instance()); | ||
135 | querySpecifications.add(GroundStationNetwork.instance()); | ||
136 | querySpecifications.add(CubeSatWithKaAntenna.instance()); | ||
137 | querySpecifications.add(SmallSat.instance()); | ||
138 | querySpecifications.add(CoverageMetric.instance()); | ||
139 | querySpecifications.add(MissionCoverage.instance()); | ||
140 | querySpecifications.add(TimeMetric.instance()); | ||
141 | querySpecifications.add(MissionTime.instance()); | ||
142 | querySpecifications.add(TransmitTime.instance()); | ||
143 | querySpecifications.add(IncomingData.instance()); | ||
144 | querySpecifications.add(ScienceData.instance()); | ||
145 | querySpecifications.add(TransmitRate.instance()); | ||
146 | querySpecifications.add(SpacecraftUplink.instance()); | ||
147 | querySpecifications.add(CostMetric.instance()); | ||
148 | querySpecifications.add(MissionCost.instance()); | ||
149 | querySpecifications.add(SpacecraftCost.instance()); | ||
150 | querySpecifications.add(SpacecraftOfKind.instance()); | ||
151 | querySpecifications.add(BasePrice.instance()); | ||
152 | querySpecifications.add(InterferometryPayloadCost.instance()); | ||
153 | querySpecifications.add(AdditionalCommSubsystemCost.instance()); | ||
154 | querySpecifications.add(SpacecraftWithTwoCommSubsystems.instance()); | ||
155 | } | ||
156 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java new file mode 100644 index 00000000..b558e51e --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/ScienceData.java | |||
@@ -0,0 +1,179 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
32 | |||
33 | /** | ||
34 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
35 | * | ||
36 | * <p>Original source: | ||
37 | * <code><pre> | ||
38 | * private pattern scienceData(Spacecraft : Spacecraft, Data : java Double) { | ||
39 | * ConstellationMission.spacecraft(Mission, Spacecraft); | ||
40 | * InterferometryMission.observationTime(Mission, ObservationTime); | ||
41 | * Data == eval(12.0 ObservationTime); | ||
42 | * } | ||
43 | * </pre></code> | ||
44 | * | ||
45 | * @see GenericPatternMatcher | ||
46 | * @see GenericPatternMatch | ||
47 | * | ||
48 | */ | ||
49 | @SuppressWarnings("all") | ||
50 | public final class ScienceData extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
51 | private ScienceData() { | ||
52 | super(GeneratedPQuery.INSTANCE); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * @return the singleton instance of the query specification | ||
57 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
58 | * | ||
59 | */ | ||
60 | public static ScienceData instance() { | ||
61 | try{ | ||
62 | return LazyHolder.INSTANCE; | ||
63 | } catch (ExceptionInInitializerError err) { | ||
64 | throw processInitializerError(err); | ||
65 | } | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData (visibility: PUBLIC, simpleName: ScienceData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
70 | * <b>not</b> at the class load time of the outer class, | ||
71 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData (visibility: PUBLIC, simpleName: ScienceData, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
72 | * | ||
73 | * <p> This workaround is required e.g. to support recursion. | ||
74 | * | ||
75 | */ | ||
76 | private static class LazyHolder { | ||
77 | private static final ScienceData INSTANCE = new ScienceData(); | ||
78 | |||
79 | /** | ||
80 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
81 | * This initialization order is required to support indirect recursion. | ||
82 | * | ||
83 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
84 | * | ||
85 | */ | ||
86 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
87 | |||
88 | public static Object ensureInitialized() { | ||
89 | INSTANCE.ensureInitializedInternal(); | ||
90 | return null; | ||
91 | } | ||
92 | } | ||
93 | |||
94 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
95 | private static final ScienceData.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
96 | |||
97 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
98 | |||
99 | private final PParameter parameter_Data = new PParameter("Data", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
100 | |||
101 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Data); | ||
102 | |||
103 | private GeneratedPQuery() { | ||
104 | super(PVisibility.PRIVATE); | ||
105 | } | ||
106 | |||
107 | @Override | ||
108 | public String getFullyQualifiedName() { | ||
109 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.scienceData"; | ||
110 | } | ||
111 | |||
112 | @Override | ||
113 | public List<String> getParameterNames() { | ||
114 | return Arrays.asList("Spacecraft","Data"); | ||
115 | } | ||
116 | |||
117 | @Override | ||
118 | public List<PParameter> getParameters() { | ||
119 | return parameters; | ||
120 | } | ||
121 | |||
122 | @Override | ||
123 | public Set<PBody> doGetContainedBodies() { | ||
124 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
125 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
126 | { | ||
127 | PBody body = new PBody(this); | ||
128 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
129 | PVariable var_Data = body.getOrCreateVariableByName("Data"); | ||
130 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
131 | PVariable var_ObservationTime = body.getOrCreateVariableByName("ObservationTime"); | ||
132 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
133 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Data), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
134 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
135 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
136 | new ExportedParameter(body, var_Data, parameter_Data) | ||
137 | )); | ||
138 | // ConstellationMission.spacecraft(Mission, Spacecraft) | ||
139 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
140 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
141 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft"))); | ||
142 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
143 | new Equality(body, var__virtual_0_, var_Spacecraft); | ||
144 | // InterferometryMission.observationTime(Mission, ObservationTime) | ||
145 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
146 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
147 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "InterferometryMission", "observationTime"))); | ||
148 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EFloat"))); | ||
149 | new Equality(body, var__virtual_1_, var_ObservationTime); | ||
150 | // Data == eval(12.0 * ObservationTime) | ||
151 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
152 | new ExpressionEvaluation(body, new IExpressionEvaluator() { | ||
153 | |||
154 | @Override | ||
155 | public String getShortDescription() { | ||
156 | return "Expression evaluation from pattern scienceData"; | ||
157 | } | ||
158 | |||
159 | @Override | ||
160 | public Iterable<String> getInputParameterNames() { | ||
161 | return Arrays.asList("ObservationTime");} | ||
162 | |||
163 | @Override | ||
164 | public Object evaluateExpression(IValueProvider provider) throws Exception { | ||
165 | Float ObservationTime = (Float) provider.getValue("ObservationTime"); | ||
166 | return evaluateExpression_1_1(ObservationTime); | ||
167 | } | ||
168 | }, var__virtual_2_ ); | ||
169 | new Equality(body, var_Data, var__virtual_2_); | ||
170 | bodies.add(body); | ||
171 | } | ||
172 | return bodies; | ||
173 | } | ||
174 | } | ||
175 | |||
176 | private static double evaluateExpression_1_1(final Float ObservationTime) { | ||
177 | return (12.0 * (ObservationTime).floatValue()); | ||
178 | } | ||
179 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/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..d74ed28a --- /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,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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
27 | import 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 smallSat(Sat : Spacecraft) { | ||
35 | * Spacecraft.kind(Sat, SpacecraftKind::SmallSat); | ||
36 | * } | ||
37 | * </pre></code> | ||
38 | * | ||
39 | * @see GenericPatternMatcher | ||
40 | * @see GenericPatternMatch | ||
41 | * | ||
42 | */ | ||
43 | @SuppressWarnings("all") | ||
44 | public final class SmallSat extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
45 | private SmallSat() { | ||
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 SmallSat 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.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 | ||
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.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()}. | ||
66 | * | ||
67 | * <p> This workaround is required e.g. to support recursion. | ||
68 | * | ||
69 | */ | ||
70 | private static class LazyHolder { | ||
71 | private static final SmallSat INSTANCE = new SmallSat(); | ||
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 SmallSat.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
90 | |||
91 | private final PParameter parameter_Sat = new PParameter("Sat", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
92 | |||
93 | private final List<PParameter> parameters = Arrays.asList(parameter_Sat); | ||
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.smallSat"; | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public List<String> getParameterNames() { | ||
106 | return Arrays.asList("Sat"); | ||
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_Sat = body.getOrCreateVariableByName("Sat"); | ||
121 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
122 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
123 | new ExportedParameter(body, var_Sat, parameter_Sat) | ||
124 | )); | ||
125 | // Spacecraft.kind(Sat, SpacecraftKind::SmallSat) | ||
126 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
127 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "SmallSat").getInstance()); | ||
128 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
129 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
130 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
131 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
132 | new Equality(body, var__virtual_1_, var__virtual_0_); | ||
133 | bodies.add(body); | ||
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/SpacecraftCost.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftCost.java new file mode 100644 index 00000000..65fed74a --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftCost.java | |||
@@ -0,0 +1,215 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AdditionalCommSubsystemCost; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.BasePrice; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.InterferometryPayloadCost; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind; | ||
10 | import java.util.Arrays; | ||
11 | import java.util.LinkedHashSet; | ||
12 | import java.util.List; | ||
13 | import java.util.Set; | ||
14 | import org.eclipse.emf.ecore.EClass; | ||
15 | import org.eclipse.emf.ecore.EDataType; | ||
16 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
17 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
18 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
19 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
20 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
38 | |||
39 | /** | ||
40 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
41 | * | ||
42 | * <p>Original source: | ||
43 | * <code><pre> | ||
44 | * private pattern spacecraftCost(Mission : InterferometryMission, Spacecraft : Spacecraft, Cost : java Double) { | ||
45 | * ConstellationMission.spacecraft(Mission, Spacecraft); | ||
46 | * Spacecraft.kind(Spacecraft, Kind); | ||
47 | * KindCount == count find spacecraftOfKind(_, Kind); | ||
48 | * find basePrice(Spacecraft, BasePrice); | ||
49 | * find interferometryPayloadCost(Spacecraft, InterferometryPayloadCost); | ||
50 | * find additionalCommSubsystemCost(Spacecraft, AdditionalCommSubsystemCost); | ||
51 | * Cost == eval(BasePrice Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost); | ||
52 | * } | ||
53 | * </pre></code> | ||
54 | * | ||
55 | * @see GenericPatternMatcher | ||
56 | * @see GenericPatternMatch | ||
57 | * | ||
58 | */ | ||
59 | @SuppressWarnings("all") | ||
60 | public final class SpacecraftCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
61 | private SpacecraftCost() { | ||
62 | super(GeneratedPQuery.INSTANCE); | ||
63 | } | ||
64 | |||
65 | /** | ||
66 | * @return the singleton instance of the query specification | ||
67 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
68 | * | ||
69 | */ | ||
70 | public static SpacecraftCost instance() { | ||
71 | try{ | ||
72 | return LazyHolder.INSTANCE; | ||
73 | } catch (ExceptionInInitializerError err) { | ||
74 | throw processInitializerError(err); | ||
75 | } | ||
76 | } | ||
77 | |||
78 | /** | ||
79 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost (visibility: PUBLIC, simpleName: SpacecraftCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
80 | * <b>not</b> at the class load time of the outer class, | ||
81 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost (visibility: PUBLIC, simpleName: SpacecraftCost, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftCost, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
82 | * | ||
83 | * <p> This workaround is required e.g. to support recursion. | ||
84 | * | ||
85 | */ | ||
86 | private static class LazyHolder { | ||
87 | private static final SpacecraftCost INSTANCE = new SpacecraftCost(); | ||
88 | |||
89 | /** | ||
90 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
91 | * This initialization order is required to support indirect recursion. | ||
92 | * | ||
93 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
94 | * | ||
95 | */ | ||
96 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
97 | |||
98 | public static Object ensureInitialized() { | ||
99 | INSTANCE.ensureInitializedInternal(); | ||
100 | return null; | ||
101 | } | ||
102 | } | ||
103 | |||
104 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
105 | private static final SpacecraftCost.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
106 | |||
107 | private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
108 | |||
109 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
110 | |||
111 | private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
112 | |||
113 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft, parameter_Cost); | ||
114 | |||
115 | private GeneratedPQuery() { | ||
116 | super(PVisibility.PRIVATE); | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public String getFullyQualifiedName() { | ||
121 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftCost"; | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public List<String> getParameterNames() { | ||
126 | return Arrays.asList("Mission","Spacecraft","Cost"); | ||
127 | } | ||
128 | |||
129 | @Override | ||
130 | public List<PParameter> getParameters() { | ||
131 | return parameters; | ||
132 | } | ||
133 | |||
134 | @Override | ||
135 | public Set<PBody> doGetContainedBodies() { | ||
136 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
137 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
138 | { | ||
139 | PBody body = new PBody(this); | ||
140 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
141 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
142 | PVariable var_Cost = body.getOrCreateVariableByName("Cost"); | ||
143 | PVariable var_Kind = body.getOrCreateVariableByName("Kind"); | ||
144 | PVariable var_KindCount = body.getOrCreateVariableByName("KindCount"); | ||
145 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
146 | PVariable var_BasePrice = body.getOrCreateVariableByName("BasePrice"); | ||
147 | PVariable var_InterferometryPayloadCost = body.getOrCreateVariableByName("InterferometryPayloadCost"); | ||
148 | PVariable var_AdditionalCommSubsystemCost = body.getOrCreateVariableByName("AdditionalCommSubsystemCost"); | ||
149 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
150 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
151 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Cost), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
152 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
153 | new ExportedParameter(body, var_Mission, parameter_Mission), | ||
154 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
155 | new ExportedParameter(body, var_Cost, parameter_Cost) | ||
156 | )); | ||
157 | // ConstellationMission.spacecraft(Mission, Spacecraft) | ||
158 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
159 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
160 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft"))); | ||
161 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
162 | new Equality(body, var__virtual_0_, var_Spacecraft); | ||
163 | // Spacecraft.kind(Spacecraft, Kind) | ||
164 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
165 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
166 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
167 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
168 | new Equality(body, var__virtual_1_, var_Kind); | ||
169 | // KindCount == count find spacecraftOfKind(_, Kind) | ||
170 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
171 | new PatternMatchCounter(body, Tuples.flatTupleOf(var___0_, var_Kind), SpacecraftOfKind.instance().getInternalQueryRepresentation(), var__virtual_2_); | ||
172 | new Equality(body, var_KindCount, var__virtual_2_); | ||
173 | // find basePrice(Spacecraft, BasePrice) | ||
174 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_BasePrice), BasePrice.instance().getInternalQueryRepresentation()); | ||
175 | // find interferometryPayloadCost(Spacecraft, InterferometryPayloadCost) | ||
176 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_InterferometryPayloadCost), InterferometryPayloadCost.instance().getInternalQueryRepresentation()); | ||
177 | // find additionalCommSubsystemCost(Spacecraft, AdditionalCommSubsystemCost) | ||
178 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_AdditionalCommSubsystemCost), AdditionalCommSubsystemCost.instance().getInternalQueryRepresentation()); | ||
179 | // Cost == eval(BasePrice * Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost) | ||
180 | PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}"); | ||
181 | new ExpressionEvaluation(body, new IExpressionEvaluator() { | ||
182 | |||
183 | @Override | ||
184 | public String getShortDescription() { | ||
185 | return "Expression evaluation from pattern spacecraftCost"; | ||
186 | } | ||
187 | |||
188 | @Override | ||
189 | public Iterable<String> getInputParameterNames() { | ||
190 | return Arrays.asList("AdditionalCommSubsystemCost", "BasePrice", "InterferometryPayloadCost", "KindCount");} | ||
191 | |||
192 | @Override | ||
193 | public Object evaluateExpression(IValueProvider provider) throws Exception { | ||
194 | Double AdditionalCommSubsystemCost = (Double) provider.getValue("AdditionalCommSubsystemCost"); | ||
195 | Double BasePrice = (Double) provider.getValue("BasePrice"); | ||
196 | Double InterferometryPayloadCost = (Double) provider.getValue("InterferometryPayloadCost"); | ||
197 | Integer KindCount = (Integer) provider.getValue("KindCount"); | ||
198 | return evaluateExpression_1_1(AdditionalCommSubsystemCost, BasePrice, InterferometryPayloadCost, KindCount); | ||
199 | } | ||
200 | }, var__virtual_3_ ); | ||
201 | new Equality(body, var_Cost, var__virtual_3_); | ||
202 | bodies.add(body); | ||
203 | } | ||
204 | return bodies; | ||
205 | } | ||
206 | } | ||
207 | |||
208 | private static double evaluateExpression_1_1(final Double AdditionalCommSubsystemCost, final Double BasePrice, final Double InterferometryPayloadCost, final Integer KindCount) { | ||
209 | double _pow = Math.pow((KindCount).intValue(), (-0.25)); | ||
210 | double _multiply = ((BasePrice).doubleValue() * _pow); | ||
211 | double _plus = (_multiply + (InterferometryPayloadCost).doubleValue()); | ||
212 | double _plus_1 = (_plus + (AdditionalCommSubsystemCost).doubleValue()); | ||
213 | return _plus_1; | ||
214 | } | ||
215 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.java new file mode 100644 index 00000000..5e49aa58 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftOfKind.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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
27 | |||
28 | /** | ||
29 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
30 | * | ||
31 | * <p>Original source: | ||
32 | * <code><pre> | ||
33 | * private pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) { | ||
34 | * Spacecraft.kind(Spacecraft, Kind); | ||
35 | * } | ||
36 | * </pre></code> | ||
37 | * | ||
38 | * @see GenericPatternMatcher | ||
39 | * @see GenericPatternMatch | ||
40 | * | ||
41 | */ | ||
42 | @SuppressWarnings("all") | ||
43 | public final class SpacecraftOfKind extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
44 | private SpacecraftOfKind() { | ||
45 | super(GeneratedPQuery.INSTANCE); | ||
46 | } | ||
47 | |||
48 | /** | ||
49 | * @return the singleton instance of the query specification | ||
50 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
51 | * | ||
52 | */ | ||
53 | public static SpacecraftOfKind instance() { | ||
54 | try{ | ||
55 | return LazyHolder.INSTANCE; | ||
56 | } catch (ExceptionInInitializerError err) { | ||
57 | throw processInitializerError(err); | ||
58 | } | ||
59 | } | ||
60 | |||
61 | /** | ||
62 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
63 | * <b>not</b> at the class load time of the outer class, | ||
64 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
65 | * | ||
66 | * <p> This workaround is required e.g. to support recursion. | ||
67 | * | ||
68 | */ | ||
69 | private static class LazyHolder { | ||
70 | private static final SpacecraftOfKind INSTANCE = new SpacecraftOfKind(); | ||
71 | |||
72 | /** | ||
73 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
74 | * This initialization order is required to support indirect recursion. | ||
75 | * | ||
76 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
77 | * | ||
78 | */ | ||
79 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
80 | |||
81 | public static Object ensureInitialized() { | ||
82 | INSTANCE.ensureInitializedInternal(); | ||
83 | return null; | ||
84 | } | ||
85 | } | ||
86 | |||
87 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
88 | private static final SpacecraftOfKind.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
89 | |||
90 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
91 | |||
92 | private final PParameter parameter_Kind = new PParameter("Kind", "hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "SpacecraftKind")), PParameterDirection.INOUT); | ||
93 | |||
94 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Kind); | ||
95 | |||
96 | private GeneratedPQuery() { | ||
97 | super(PVisibility.PRIVATE); | ||
98 | } | ||
99 | |||
100 | @Override | ||
101 | public String getFullyQualifiedName() { | ||
102 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public List<String> getParameterNames() { | ||
107 | return Arrays.asList("Spacecraft","Kind"); | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<PParameter> getParameters() { | ||
112 | return parameters; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public Set<PBody> doGetContainedBodies() { | ||
117 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
118 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
119 | { | ||
120 | PBody body = new PBody(this); | ||
121 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
122 | PVariable var_Kind = body.getOrCreateVariableByName("Kind"); | ||
123 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
124 | new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
125 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
126 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
127 | new ExportedParameter(body, var_Kind, parameter_Kind) | ||
128 | )); | ||
129 | // Spacecraft.kind(Spacecraft, Kind) | ||
130 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
131 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
132 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "kind"))); | ||
133 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
134 | new Equality(body, var__virtual_0_, var_Kind); | ||
135 | bodies.add(body); | ||
136 | } | ||
137 | return bodies; | ||
138 | } | ||
139 | } | ||
140 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java new file mode 100644 index 00000000..966ff6f8 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftUplink.java | |||
@@ -0,0 +1,171 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.emf.ecore.EDataType; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
27 | |||
28 | /** | ||
29 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
30 | * | ||
31 | * <p>Original source: | ||
32 | * <code><pre> | ||
33 | * private pattern spacecraftUplink(Spacecraft : Spacecraft, Band : TransceiverBand, Target : CommunicatingElement) { | ||
34 | * CommunicatingElement.communicationLink(Spacecraft, Link); | ||
35 | * DirectedCommunicationLink.source.band(Link, Band); | ||
36 | * DirectedCommunicationLink.target(Link, TargetSubsystem); | ||
37 | * CommunicatingElement.commSubsystem(Target, TargetSubsystem); | ||
38 | * } | ||
39 | * </pre></code> | ||
40 | * | ||
41 | * @see GenericPatternMatcher | ||
42 | * @see GenericPatternMatch | ||
43 | * | ||
44 | */ | ||
45 | @SuppressWarnings("all") | ||
46 | public final class SpacecraftUplink extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
47 | private SpacecraftUplink() { | ||
48 | super(GeneratedPQuery.INSTANCE); | ||
49 | } | ||
50 | |||
51 | /** | ||
52 | * @return the singleton instance of the query specification | ||
53 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
54 | * | ||
55 | */ | ||
56 | public static SpacecraftUplink instance() { | ||
57 | try{ | ||
58 | return LazyHolder.INSTANCE; | ||
59 | } catch (ExceptionInInitializerError err) { | ||
60 | throw processInitializerError(err); | ||
61 | } | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink (visibility: PUBLIC, simpleName: SpacecraftUplink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
66 | * <b>not</b> at the class load time of the outer class, | ||
67 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink (visibility: PUBLIC, simpleName: SpacecraftUplink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
68 | * | ||
69 | * <p> This workaround is required e.g. to support recursion. | ||
70 | * | ||
71 | */ | ||
72 | private static class LazyHolder { | ||
73 | private static final SpacecraftUplink INSTANCE = new SpacecraftUplink(); | ||
74 | |||
75 | /** | ||
76 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
77 | * This initialization order is required to support indirect recursion. | ||
78 | * | ||
79 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
80 | * | ||
81 | */ | ||
82 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
83 | |||
84 | public static Object ensureInitialized() { | ||
85 | INSTANCE.ensureInitializedInternal(); | ||
86 | return null; | ||
87 | } | ||
88 | } | ||
89 | |||
90 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
91 | private static final SpacecraftUplink.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
92 | |||
93 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
94 | |||
95 | private final PParameter parameter_Band = new PParameter("Band", "hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "TransceiverBand")), PParameterDirection.INOUT); | ||
96 | |||
97 | private final PParameter parameter_Target = new PParameter("Target", "hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
98 | |||
99 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Band, parameter_Target); | ||
100 | |||
101 | private GeneratedPQuery() { | ||
102 | super(PVisibility.PRIVATE); | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public String getFullyQualifiedName() { | ||
107 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftUplink"; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<String> getParameterNames() { | ||
112 | return Arrays.asList("Spacecraft","Band","Target"); | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<PParameter> getParameters() { | ||
117 | return parameters; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public Set<PBody> doGetContainedBodies() { | ||
122 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
123 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
124 | { | ||
125 | PBody body = new PBody(this); | ||
126 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
127 | PVariable var_Band = body.getOrCreateVariableByName("Band"); | ||
128 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
129 | PVariable var_Link = body.getOrCreateVariableByName("Link"); | ||
130 | PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem"); | ||
131 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
132 | new TypeConstraint(body, Tuples.flatTupleOf(var_Band), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand"))); | ||
133 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
134 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
135 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
136 | new ExportedParameter(body, var_Band, parameter_Band), | ||
137 | new ExportedParameter(body, var_Target, parameter_Target) | ||
138 | )); | ||
139 | // CommunicatingElement.communicationLink(Spacecraft, Link) | ||
140 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
141 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
142 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "communicationLink"))); | ||
143 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
144 | new Equality(body, var__virtual_0_, var_Link); | ||
145 | // DirectedCommunicationLink.source.band(Link, Band) | ||
146 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
147 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
148 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source"))); | ||
149 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
150 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
151 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band"))); | ||
152 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand"))); | ||
153 | new Equality(body, var__virtual_2_, var_Band); | ||
154 | // DirectedCommunicationLink.target(Link, TargetSubsystem) | ||
155 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
156 | PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}"); | ||
157 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target"))); | ||
158 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
159 | new Equality(body, var__virtual_3_, var_TargetSubsystem); | ||
160 | // CommunicatingElement.commSubsystem(Target, TargetSubsystem) | ||
161 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
162 | PVariable var__virtual_4_ = body.getOrCreateVariableByName(".virtual{4}"); | ||
163 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_4_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
164 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
165 | new Equality(body, var__virtual_4_, var_TargetSubsystem); | ||
166 | bodies.add(body); | ||
167 | } | ||
168 | return bodies; | ||
169 | } | ||
170 | } | ||
171 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
13 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
24 | import 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") | ||
43 | public 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-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java new file mode 100644 index 00000000..98f1be7b --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithTwoCommSubsystems.java | |||
@@ -0,0 +1,146 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.LinkedHashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EClass; | ||
11 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
13 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
26 | |||
27 | /** | ||
28 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
29 | * | ||
30 | * <p>Original source: | ||
31 | * <code><pre> | ||
32 | * private pattern spacecraftWithTwoCommSubsystems(Spacecraft : Spacecraft) { | ||
33 | * Spacecraft.commSubsystem(Spacecraft, Subsystem1); | ||
34 | * Spacecraft.commSubsystem(Spacecraft, Subsystem2); | ||
35 | * Subsystem1 != Subsystem2; | ||
36 | * } | ||
37 | * </pre></code> | ||
38 | * | ||
39 | * @see GenericPatternMatcher | ||
40 | * @see GenericPatternMatch | ||
41 | * | ||
42 | */ | ||
43 | @SuppressWarnings("all") | ||
44 | public final class SpacecraftWithTwoCommSubsystems extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
45 | private SpacecraftWithTwoCommSubsystems() { | ||
46 | super(GeneratedPQuery.INSTANCE); | ||
47 | } | ||
48 | |||
49 | /** | ||
50 | * @return the singleton instance of the query specification | ||
51 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
52 | * | ||
53 | */ | ||
54 | public static SpacecraftWithTwoCommSubsystems instance() { | ||
55 | try{ | ||
56 | return LazyHolder.INSTANCE; | ||
57 | } catch (ExceptionInInitializerError err) { | ||
58 | throw processInitializerError(err); | ||
59 | } | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems (visibility: PUBLIC, simpleName: SpacecraftWithTwoCommSubsystems, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
64 | * <b>not</b> at the class load time of the outer class, | ||
65 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems (visibility: PUBLIC, simpleName: SpacecraftWithTwoCommSubsystems, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithTwoCommSubsystems, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
66 | * | ||
67 | * <p> This workaround is required e.g. to support recursion. | ||
68 | * | ||
69 | */ | ||
70 | private static class LazyHolder { | ||
71 | private static final SpacecraftWithTwoCommSubsystems INSTANCE = new SpacecraftWithTwoCommSubsystems(); | ||
72 | |||
73 | /** | ||
74 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
75 | * This initialization order is required to support indirect recursion. | ||
76 | * | ||
77 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
78 | * | ||
79 | */ | ||
80 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
81 | |||
82 | public static Object ensureInitialized() { | ||
83 | INSTANCE.ensureInitializedInternal(); | ||
84 | return null; | ||
85 | } | ||
86 | } | ||
87 | |||
88 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
89 | private static final SpacecraftWithTwoCommSubsystems.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
90 | |||
91 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
92 | |||
93 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft); | ||
94 | |||
95 | private GeneratedPQuery() { | ||
96 | super(PVisibility.PRIVATE); | ||
97 | } | ||
98 | |||
99 | @Override | ||
100 | public String getFullyQualifiedName() { | ||
101 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithTwoCommSubsystems"; | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public List<String> getParameterNames() { | ||
106 | return Arrays.asList("Spacecraft"); | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public List<PParameter> getParameters() { | ||
111 | return parameters; | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public Set<PBody> doGetContainedBodies() { | ||
116 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
117 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
118 | { | ||
119 | PBody body = new PBody(this); | ||
120 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
121 | PVariable var_Subsystem1 = body.getOrCreateVariableByName("Subsystem1"); | ||
122 | PVariable var_Subsystem2 = body.getOrCreateVariableByName("Subsystem2"); | ||
123 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
124 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
125 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft) | ||
126 | )); | ||
127 | // Spacecraft.commSubsystem(Spacecraft, Subsystem1) | ||
128 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
129 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
130 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
131 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
132 | new Equality(body, var__virtual_0_, var_Subsystem1); | ||
133 | // Spacecraft.commSubsystem(Spacecraft, Subsystem2) | ||
134 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
135 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
136 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
137 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
138 | new Equality(body, var__virtual_1_, var_Subsystem2); | ||
139 | // Subsystem1 != Subsystem2 | ||
140 | new Inequality(body, var_Subsystem1, var_Subsystem2); | ||
141 | bodies.add(body); | ||
142 | } | ||
143 | return bodies; | ||
144 | } | ||
145 | } | ||
146 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java new file mode 100644 index 00000000..2faa7733 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitRate.java | |||
@@ -0,0 +1,277 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftUplink; | ||
7 | import java.util.Arrays; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
13 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
14 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
15 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
16 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
29 | |||
30 | /** | ||
31 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
32 | * | ||
33 | * <p>Original source: | ||
34 | * <code><pre> | ||
35 | * private pattern transmitRate(Spacecraft : Spacecraft, TransmitRate : java Double) { | ||
36 | * find spacecraftUplink(Spacecraft, TransceiverBand::UHF, Target); | ||
37 | * Spacecraft(Target); | ||
38 | * TransmitRate == 5.0; | ||
39 | * } or { | ||
40 | * find spacecraftUplink(Spacecraft, TransceiverBand::X, Target); | ||
41 | * Spacecraft(Target); | ||
42 | * TransmitRate == 1.6; | ||
43 | * } or { | ||
44 | * find spacecraftUplink(Spacecraft, TransceiverBand::X, Target); | ||
45 | * GroundStationNetwork(Target); | ||
46 | * TransmitRate == 0.7; | ||
47 | * } or { | ||
48 | * find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target); | ||
49 | * Spacecraft(Target); | ||
50 | * TransmitRate == 220.0; | ||
51 | * } or { | ||
52 | * find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target); | ||
53 | * GroundStationNetwork(Target); | ||
54 | * TransmitRate == 80.0; | ||
55 | * } | ||
56 | * </pre></code> | ||
57 | * | ||
58 | * @see GenericPatternMatcher | ||
59 | * @see GenericPatternMatch | ||
60 | * | ||
61 | */ | ||
62 | @SuppressWarnings("all") | ||
63 | public final class TransmitRate extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
64 | private TransmitRate() { | ||
65 | super(GeneratedPQuery.INSTANCE); | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * @return the singleton instance of the query specification | ||
70 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
71 | * | ||
72 | */ | ||
73 | public static TransmitRate instance() { | ||
74 | try{ | ||
75 | return LazyHolder.INSTANCE; | ||
76 | } catch (ExceptionInInitializerError err) { | ||
77 | throw processInitializerError(err); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | /** | ||
82 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate (visibility: PUBLIC, simpleName: TransmitRate, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
83 | * <b>not</b> at the class load time of the outer class, | ||
84 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate (visibility: PUBLIC, simpleName: TransmitRate, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
85 | * | ||
86 | * <p> This workaround is required e.g. to support recursion. | ||
87 | * | ||
88 | */ | ||
89 | private static class LazyHolder { | ||
90 | private static final TransmitRate INSTANCE = new TransmitRate(); | ||
91 | |||
92 | /** | ||
93 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
94 | * This initialization order is required to support indirect recursion. | ||
95 | * | ||
96 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
97 | * | ||
98 | */ | ||
99 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
100 | |||
101 | public static Object ensureInitialized() { | ||
102 | INSTANCE.ensureInitializedInternal(); | ||
103 | return null; | ||
104 | } | ||
105 | } | ||
106 | |||
107 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
108 | private static final TransmitRate.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
109 | |||
110 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
111 | |||
112 | private final PParameter parameter_TransmitRate = new PParameter("TransmitRate", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
113 | |||
114 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_TransmitRate); | ||
115 | |||
116 | private GeneratedPQuery() { | ||
117 | super(PVisibility.PRIVATE); | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public String getFullyQualifiedName() { | ||
122 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmitRate"; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public List<String> getParameterNames() { | ||
127 | return Arrays.asList("Spacecraft","TransmitRate"); | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public List<PParameter> getParameters() { | ||
132 | return parameters; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public Set<PBody> doGetContainedBodies() { | ||
137 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
138 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
139 | { | ||
140 | PBody body = new PBody(this); | ||
141 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
142 | PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate"); | ||
143 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
144 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
145 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
146 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
147 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
148 | new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate) | ||
149 | )); | ||
150 | // find spacecraftUplink(Spacecraft, TransceiverBand::UHF, Target) | ||
151 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
152 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "UHF").getInstance()); | ||
153 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation()); | ||
154 | // Spacecraft(Target) | ||
155 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
156 | // TransmitRate == 5.0 | ||
157 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
158 | new ConstantValue(body, var__virtual_1_, 5.0); | ||
159 | new Equality(body, var_TransmitRate, var__virtual_1_); | ||
160 | bodies.add(body); | ||
161 | } | ||
162 | { | ||
163 | PBody body = new PBody(this); | ||
164 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
165 | PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate"); | ||
166 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
167 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
168 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
169 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
170 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
171 | new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate) | ||
172 | )); | ||
173 | // find spacecraftUplink(Spacecraft, TransceiverBand::X, Target) | ||
174 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
175 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "X").getInstance()); | ||
176 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation()); | ||
177 | // Spacecraft(Target) | ||
178 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
179 | // TransmitRate == 1.6 | ||
180 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
181 | new ConstantValue(body, var__virtual_1_, 1.6); | ||
182 | new Equality(body, var_TransmitRate, var__virtual_1_); | ||
183 | bodies.add(body); | ||
184 | } | ||
185 | { | ||
186 | PBody body = new PBody(this); | ||
187 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
188 | PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate"); | ||
189 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
190 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
191 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
192 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
193 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
194 | new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate) | ||
195 | )); | ||
196 | // find spacecraftUplink(Spacecraft, TransceiverBand::X, Target) | ||
197 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
198 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "X").getInstance()); | ||
199 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation()); | ||
200 | // GroundStationNetwork(Target) | ||
201 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork"))); | ||
202 | // TransmitRate == 0.7 | ||
203 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
204 | new ConstantValue(body, var__virtual_1_, 0.7); | ||
205 | new Equality(body, var_TransmitRate, var__virtual_1_); | ||
206 | bodies.add(body); | ||
207 | } | ||
208 | { | ||
209 | PBody body = new PBody(this); | ||
210 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
211 | PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate"); | ||
212 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
213 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
214 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
215 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
216 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
217 | new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate) | ||
218 | )); | ||
219 | // find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target) | ||
220 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
221 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "Ka").getInstance()); | ||
222 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation()); | ||
223 | // Spacecraft(Target) | ||
224 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
225 | // TransmitRate == 220.0 | ||
226 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
227 | new ConstantValue(body, var__virtual_1_, 220.0); | ||
228 | new Equality(body, var_TransmitRate, var__virtual_1_); | ||
229 | bodies.add(body); | ||
230 | } | ||
231 | { | ||
232 | PBody body = new PBody(this); | ||
233 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
234 | PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate"); | ||
235 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
236 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
237 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitRate), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
238 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
239 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
240 | new ExportedParameter(body, var_TransmitRate, parameter_TransmitRate) | ||
241 | )); | ||
242 | // find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target) | ||
243 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
244 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "Ka").getInstance()); | ||
245 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_, var_Target), SpacecraftUplink.instance().getInternalQueryRepresentation()); | ||
246 | // GroundStationNetwork(Target) | ||
247 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork"))); | ||
248 | // TransmitRate == 80.0 | ||
249 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
250 | new ConstantValue(body, var__virtual_1_, 80.0); | ||
251 | new Equality(body, var_TransmitRate, var__virtual_1_); | ||
252 | bodies.add(body); | ||
253 | } | ||
254 | return bodies; | ||
255 | } | ||
256 | } | ||
257 | |||
258 | private static double evaluateExpression_1_1() { | ||
259 | return 5.0; | ||
260 | } | ||
261 | |||
262 | private static double evaluateExpression_2_1() { | ||
263 | return 1.6; | ||
264 | } | ||
265 | |||
266 | private static double evaluateExpression_3_1() { | ||
267 | return 0.7; | ||
268 | } | ||
269 | |||
270 | private static double evaluateExpression_4_1() { | ||
271 | return 220.0; | ||
272 | } | ||
273 | |||
274 | private static double evaluateExpression_5_1() { | ||
275 | return 80.0; | ||
276 | } | ||
277 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java new file mode 100644 index 00000000..eb338bec --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmitTime.java | |||
@@ -0,0 +1,200 @@ | |||
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 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IncomingData; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.ScienceData; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitRate; | ||
9 | import java.util.Arrays; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Set; | ||
13 | import org.eclipse.emf.ecore.EClass; | ||
14 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
15 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher; | ||
16 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
17 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.aggregators.sum; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; | ||
22 | import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; | ||
23 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
24 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
25 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.AggregatorConstraint; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import org.eclipse.xtext.xbase.lib.DoubleExtensions; | ||
37 | |||
38 | /** | ||
39 | * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way. | ||
40 | * | ||
41 | * <p>Original source: | ||
42 | * <code><pre> | ||
43 | * private pattern transmitTime(Mission : InterferometryMission, Spacecraft : Spacecraft, TransmitTime : java Double) { | ||
44 | * ConstellationMission.spacecraft(Mission, Spacecraft); | ||
45 | * find scienceData(Spacecraft, ScienceData); | ||
46 | * IncomingData == sum find incomingData(Spacecraft, _, #_); | ||
47 | * find transmitRate(Spacecraft, TransmitRate); | ||
48 | * TransmitTime == eval((ScienceData + IncomingData) / (7.5 TransmitRate)); | ||
49 | * } | ||
50 | * </pre></code> | ||
51 | * | ||
52 | * @see GenericPatternMatcher | ||
53 | * @see GenericPatternMatch | ||
54 | * | ||
55 | */ | ||
56 | @SuppressWarnings("all") | ||
57 | public final class TransmitTime extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
58 | private TransmitTime() { | ||
59 | super(GeneratedPQuery.INSTANCE); | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * @return the singleton instance of the query specification | ||
64 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
65 | * | ||
66 | */ | ||
67 | public static TransmitTime instance() { | ||
68 | try{ | ||
69 | return LazyHolder.INSTANCE; | ||
70 | } catch (ExceptionInInitializerError err) { | ||
71 | throw processInitializerError(err); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | /** | ||
76 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime (visibility: PUBLIC, simpleName: TransmitTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
77 | * <b>not</b> at the class load time of the outer class, | ||
78 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime (visibility: PUBLIC, simpleName: TransmitTime, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmitTime, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
79 | * | ||
80 | * <p> This workaround is required e.g. to support recursion. | ||
81 | * | ||
82 | */ | ||
83 | private static class LazyHolder { | ||
84 | private static final TransmitTime INSTANCE = new TransmitTime(); | ||
85 | |||
86 | /** | ||
87 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
88 | * This initialization order is required to support indirect recursion. | ||
89 | * | ||
90 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
91 | * | ||
92 | */ | ||
93 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
94 | |||
95 | public static Object ensureInitialized() { | ||
96 | INSTANCE.ensureInitializedInternal(); | ||
97 | return null; | ||
98 | } | ||
99 | } | ||
100 | |||
101 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
102 | private static final TransmitTime.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
103 | |||
104 | private final PParameter parameter_Mission = new PParameter("Mission", "hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
105 | |||
106 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
107 | |||
108 | private final PParameter parameter_TransmitTime = new PParameter("TransmitTime", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT); | ||
109 | |||
110 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft, parameter_TransmitTime); | ||
111 | |||
112 | private GeneratedPQuery() { | ||
113 | super(PVisibility.PRIVATE); | ||
114 | } | ||
115 | |||
116 | @Override | ||
117 | public String getFullyQualifiedName() { | ||
118 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmitTime"; | ||
119 | } | ||
120 | |||
121 | @Override | ||
122 | public List<String> getParameterNames() { | ||
123 | return Arrays.asList("Mission","Spacecraft","TransmitTime"); | ||
124 | } | ||
125 | |||
126 | @Override | ||
127 | public List<PParameter> getParameters() { | ||
128 | return parameters; | ||
129 | } | ||
130 | |||
131 | @Override | ||
132 | public Set<PBody> doGetContainedBodies() { | ||
133 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
134 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
135 | { | ||
136 | PBody body = new PBody(this); | ||
137 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
138 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
139 | PVariable var_TransmitTime = body.getOrCreateVariableByName("TransmitTime"); | ||
140 | PVariable var_ScienceData = body.getOrCreateVariableByName("ScienceData"); | ||
141 | PVariable var_IncomingData = body.getOrCreateVariableByName("IncomingData"); | ||
142 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
143 | PVariable var___1_ = body.getOrCreateVariableByName("_<1>"); | ||
144 | PVariable var_TransmitRate = body.getOrCreateVariableByName("TransmitRate"); | ||
145 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
146 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
147 | new TypeFilterConstraint(body, Tuples.flatTupleOf(var_TransmitTime), new JavaTransitiveInstancesKey(java.lang.Double.class)); | ||
148 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
149 | new ExportedParameter(body, var_Mission, parameter_Mission), | ||
150 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
151 | new ExportedParameter(body, var_TransmitTime, parameter_TransmitTime) | ||
152 | )); | ||
153 | // ConstellationMission.spacecraft(Mission, Spacecraft) | ||
154 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
155 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
156 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft"))); | ||
157 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
158 | new Equality(body, var__virtual_0_, var_Spacecraft); | ||
159 | // find scienceData(Spacecraft, ScienceData) | ||
160 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_ScienceData), ScienceData.instance().getInternalQueryRepresentation()); | ||
161 | // IncomingData == sum find incomingData(Spacecraft, _, #_) | ||
162 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
163 | new AggregatorConstraint(new sum().getAggregatorLogic(Double.class), body, Tuples.flatTupleOf(var_Spacecraft, var___0_, var___1_), IncomingData.instance().getInternalQueryRepresentation(), var__virtual_1_, 2); | ||
164 | new Equality(body, var_IncomingData, var__virtual_1_); | ||
165 | // find transmitRate(Spacecraft, TransmitRate) | ||
166 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_TransmitRate), TransmitRate.instance().getInternalQueryRepresentation()); | ||
167 | // TransmitTime == eval((ScienceData + IncomingData) / (7.5 * TransmitRate)) | ||
168 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
169 | new ExpressionEvaluation(body, new IExpressionEvaluator() { | ||
170 | |||
171 | @Override | ||
172 | public String getShortDescription() { | ||
173 | return "Expression evaluation from pattern transmitTime"; | ||
174 | } | ||
175 | |||
176 | @Override | ||
177 | public Iterable<String> getInputParameterNames() { | ||
178 | return Arrays.asList("IncomingData", "ScienceData", "TransmitRate");} | ||
179 | |||
180 | @Override | ||
181 | public Object evaluateExpression(IValueProvider provider) throws Exception { | ||
182 | Double IncomingData = (Double) provider.getValue("IncomingData"); | ||
183 | Double ScienceData = (Double) provider.getValue("ScienceData"); | ||
184 | Double TransmitRate = (Double) provider.getValue("TransmitRate"); | ||
185 | return evaluateExpression_1_1(IncomingData, ScienceData, TransmitRate); | ||
186 | } | ||
187 | }, var__virtual_2_ ); | ||
188 | new Equality(body, var_TransmitTime, var__virtual_2_); | ||
189 | bodies.add(body); | ||
190 | } | ||
191 | return bodies; | ||
192 | } | ||
193 | } | ||
194 | |||
195 | private static double evaluateExpression_1_1(final Double IncomingData, final Double ScienceData, final Double TransmitRate) { | ||
196 | double _plus = DoubleExtensions.operator_plus(ScienceData, IncomingData); | ||
197 | double _divide = (_plus / (7.5 * (TransmitRate).doubleValue())); | ||
198 | return _divide; | ||
199 | } | ||
200 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql new file mode 100644 index 00000000..7ca948cc --- /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,300 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries | ||
2 | |||
3 | import "http://www.example.org/satellite" | ||
4 | |||
5 | @Constraint(severity = "error", key = {Link}, | ||
6 | message = "Communication links must start from the containing element.") | ||
7 | pattern 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.") | ||
18 | pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) { | ||
19 | InterferometryMission(Mission); | ||
20 | neg find atLeastTwoInterferometryPayloads(Mission); | ||
21 | } | ||
22 | |||
23 | private pattern atLeastTwoInterferometryPayloads(Mission : InterferometryMission) { | ||
24 | find spacecraftWithInterferometryPayload(Mission, Spacecraft1); | ||
25 | find spacecraftWithInterferometryPayload(Mission, Spacecraft2); | ||
26 | Spacecraft1 != Spacecraft2; | ||
27 | } | ||
28 | |||
29 | private 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.") | ||
39 | pattern 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.") | ||
50 | pattern communicationLoop(Element : CommunicatingElement) { | ||
51 | find indirectCommunicationLink(Element, Element); | ||
52 | } | ||
53 | |||
54 | private pattern indirectCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) { | ||
55 | find directCommunicationLink+(Source, Target); | ||
56 | } | ||
57 | |||
58 | private 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.") | ||
69 | pattern 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 | |||
76 | private 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.") | ||
82 | pattern 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 | |||
89 | private 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.") | ||
97 | pattern 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 | |||
105 | private 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.") | ||
113 | pattern xAntennaGainNotMedium(Comm : CommSubsystem) { | ||
114 | CommSubsystem.band(Comm, TransceiverBand::X); | ||
115 | neg find commSubsystemGainMedium(Comm); | ||
116 | } | ||
117 | |||
118 | private 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.") | ||
126 | pattern 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.") | ||
136 | pattern threeUCubeSatWithNonUhfCrossLink(Sat : Spacecraft) { | ||
137 | Spacecraft.kind(Sat, SpacecraftKind::CubeSat3U); | ||
138 | CommunicatingElement.commSubsystem(Sat, SourceComm); | ||
139 | neg find commSubsystemBandUhf(SourceComm); | ||
140 | DirectedCommunicationLink.source(Link, SourceComm); | ||
141 | DirectedCommunicationLink.target(Link, TargetComm); | ||
142 | CommunicatingElement.commSubsystem(Target, TargetComm); | ||
143 | neg find groundStationNetwork(Target); | ||
144 | } | ||
145 | |||
146 | private pattern commSubsystemBandUhf(Comm : CommSubsystem) { | ||
147 | CommSubsystem.band(Comm, TransceiverBand::UHF); | ||
148 | } | ||
149 | |||
150 | private pattern groundStationNetwork(Network : GroundStationNetwork) { | ||
151 | GroundStationNetwork(Network); | ||
152 | } | ||
153 | |||
154 | // Only a Small Satellite can be configured with a Ka-band communication system | ||
155 | |||
156 | @Constraint(severity = "error", key = {Spacecraft}, | ||
157 | message = "Only a Small Satellite can be configured with a Ka-band communication system.") | ||
158 | pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) { | ||
159 | CommunicatingElement.commSubsystem.band(Spacecraft, TransceiverBand::Ka); | ||
160 | neg find smallSat(Spacecraft); | ||
161 | } | ||
162 | |||
163 | private pattern smallSat(Sat : Spacecraft) { | ||
164 | Spacecraft.kind(Sat, SpacecraftKind::SmallSat); | ||
165 | } | ||
166 | |||
167 | // | ||
168 | // Metrics | ||
169 | // | ||
170 | |||
171 | // Coverage | ||
172 | |||
173 | pattern coverageMetric(Coverage : java Double) { | ||
174 | Coverage == sum find missionCoverage(_, #_); | ||
175 | } | ||
176 | |||
177 | private pattern missionCoverage(Mission : InterferometryMission, Coverage : java Double) { | ||
178 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
179 | ObserverCount == count find spacecraftWithInterferometryPayload(Mission, _); | ||
180 | Coverage == eval(Math.pow(1 - 2.0 / ObserverCount, 1 + 9 * (1.0 / ObservationTime)) + 0.05 * ObservationTime / 3); | ||
181 | } | ||
182 | |||
183 | // Time | ||
184 | |||
185 | pattern timeMetric(Time : java Double) { | ||
186 | Time == sum find missionTime(_, #_); | ||
187 | } | ||
188 | |||
189 | private pattern missionTime(Mission : InterferometryMission, Time : java Double) { | ||
190 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
191 | TrasmitTime == sum find transmitTime(Mission, _, #_); | ||
192 | Time == eval(TrasmitTime + 60.0 * ObservationTime); | ||
193 | } | ||
194 | |||
195 | private pattern transmitTime(Mission : InterferometryMission, Spacecraft : Spacecraft, TransmitTime : java Double) { | ||
196 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
197 | find scienceData(Spacecraft, ScienceData); | ||
198 | IncomingData == sum find incomingData(Spacecraft, _, #_); | ||
199 | find transmitRate(Spacecraft, TransmitRate); | ||
200 | TransmitTime == eval((ScienceData + IncomingData) / (7.5 * TransmitRate)); | ||
201 | } | ||
202 | |||
203 | private pattern incomingData(Spacecraft : Spacecraft, Source : Spacecraft, Data : java Double) { | ||
204 | find indirectCommunicationLink(Source, Spacecraft); | ||
205 | find scienceData(Source, Data); | ||
206 | } | ||
207 | |||
208 | private pattern scienceData(Spacecraft : Spacecraft, Data : java Double) { | ||
209 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
210 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
211 | Data == eval(12.0 * ObservationTime); | ||
212 | } | ||
213 | |||
214 | private pattern transmitRate(Spacecraft : Spacecraft, TransmitRate : java Double) { | ||
215 | find spacecraftUplink(Spacecraft, TransceiverBand::UHF, Target); | ||
216 | Spacecraft(Target); | ||
217 | TransmitRate == 5.0; | ||
218 | } or { | ||
219 | find spacecraftUplink(Spacecraft, TransceiverBand::X, Target); | ||
220 | Spacecraft(Target); | ||
221 | TransmitRate == 1.6; | ||
222 | } or { | ||
223 | find spacecraftUplink(Spacecraft, TransceiverBand::X, Target); | ||
224 | GroundStationNetwork(Target); | ||
225 | TransmitRate == 0.7; | ||
226 | } or { | ||
227 | find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target); | ||
228 | Spacecraft(Target); | ||
229 | TransmitRate == 220.0; | ||
230 | } or { | ||
231 | find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target); | ||
232 | GroundStationNetwork(Target); | ||
233 | TransmitRate == 80.0; | ||
234 | } | ||
235 | |||
236 | private pattern spacecraftUplink(Spacecraft : Spacecraft, Band : TransceiverBand, Target : CommunicatingElement) { | ||
237 | CommunicatingElement.communicationLink(Spacecraft, Link); | ||
238 | DirectedCommunicationLink.source.band(Link, Band); | ||
239 | DirectedCommunicationLink.target(Link, TargetSubsystem); | ||
240 | CommunicatingElement.commSubsystem(Target, TargetSubsystem); | ||
241 | } | ||
242 | |||
243 | // Cost | ||
244 | |||
245 | pattern costMetric(Cost : java Double) { | ||
246 | Cost == sum find missionCost(_, #_); | ||
247 | } | ||
248 | |||
249 | private pattern missionCost(Mission : InterferometryMission, Cost : java Double) { | ||
250 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
251 | SpacecraftCost == sum find spacecraftCost(Mission, _, #_); | ||
252 | Cost == eval(SpacecraftCost + 100000.0 * ObservationTime); | ||
253 | } | ||
254 | |||
255 | private pattern spacecraftCost(Mission : InterferometryMission, Spacecraft : Spacecraft, Cost : java Double) { | ||
256 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
257 | Spacecraft.kind(Spacecraft, Kind); | ||
258 | KindCount == count find spacecraftOfKind(_, Kind); | ||
259 | find basePrice(Spacecraft, BasePrice); | ||
260 | find interferometryPayloadCost(Spacecraft, InterferometryPayloadCost); | ||
261 | find additionalCommSubsystemCost(Spacecraft, AdditionalCommSubsystemCost); | ||
262 | Cost == eval(BasePrice * Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost); | ||
263 | } | ||
264 | |||
265 | private pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) { | ||
266 | Spacecraft.kind(Spacecraft, Kind); | ||
267 | } | ||
268 | |||
269 | private pattern basePrice(Spacecraft : Spacecraft, BasePrice : java Double) { | ||
270 | Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat3U); | ||
271 | BasePrice == 250000.0; | ||
272 | } or { | ||
273 | Spacecraft.kind(Spacecraft, SpacecraftKind::CubeSat6U); | ||
274 | BasePrice == 750000.0; | ||
275 | } or { | ||
276 | Spacecraft.kind(Spacecraft, SpacecraftKind::SmallSat); | ||
277 | BasePrice == 3000000.0; | ||
278 | } | ||
279 | |||
280 | private pattern interferometryPayloadCost(Spacecraft : Spacecraft, Cost : java Double) { | ||
281 | find spacecraftWithInterferometryPayload(_, Spacecraft); | ||
282 | Cost == 50000.0; | ||
283 | } or { | ||
284 | neg find spacecraftWithInterferometryPayload(_, Spacecraft); | ||
285 | Cost == 0.0; | ||
286 | } | ||
287 | |||
288 | private pattern additionalCommSubsystemCost(Spacecraft : Spacecraft, Cost : java Double) { | ||
289 | find spacecraftWithTwoCommSubsystems(Spacecraft); | ||
290 | Cost == 100000.0; | ||
291 | } or { | ||
292 | neg find spacecraftWithTwoCommSubsystems(Spacecraft); | ||
293 | Cost == 0.0; | ||
294 | } | ||
295 | |||
296 | private pattern spacecraftWithTwoCommSubsystems(Spacecraft : Spacecraft) { | ||
297 | Spacecraft.commSubsystem(Spacecraft, Subsystem1); | ||
298 | Spacecraft.commSubsystem(Spacecraft, Subsystem2); | ||
299 | Subsystem1 != Subsystem2; | ||
300 | } | ||
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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.satellite.runner | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor | ||
4 | |||
5 | final 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/.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.yakindu.sgraph/META-INF/MANIFEST.MF b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF index f15381b2..73ebb2c7 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF | |||
@@ -6,16 +6,16 @@ Bundle-Version: 1.0.0.qualifier | |||
6 | Bundle-ClassPath: . | 6 | Bundle-ClassPath: . |
7 | Bundle-Vendor: %providerName | 7 | Bundle-Vendor: %providerName |
8 | Bundle-Localization: plugin | 8 | Bundle-Localization: plugin |
9 | Export-Package: hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm, | 9 | Export-Package: hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm, |
10 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl, | 10 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl, |
11 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.util, | 11 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.util, |
12 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu, | 12 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu, |
13 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated, | 13 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated, |
14 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.util, | 14 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.util, |
15 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.util | 15 | hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.util |
16 | Require-Bundle: org.eclipse.viatra.query.runtime, | 16 | Require-Bundle: org.eclipse.viatra.query.runtime, |
17 | org.eclipse.core.runtime, | 17 | org.eclipse.core.runtime, |
18 | org.eclipse.emf.ecore;visibility:=reexport, | 18 | org.eclipse.emf.ecore;visibility:=reexport, |
19 | com.google.guava;bundle-version="15.0.0" | 19 | com.google.guava;bundle-version="15.0.0" |
20 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | 20 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 |
21 | Bundle-ActivationPolicy: lazy | 21 | Bundle-ActivationPolicy: lazy |
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml index 8069f168..993ec75d 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml | |||
@@ -1,103 +1,103 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><plugin> | 1 | <?xml version="1.0" encoding="UTF-8"?><plugin> |
2 | <extension point="org.eclipse.emf.ecore.generated_package"> | 2 | <extension point="org.eclipse.emf.ecore.generated_package"> |
3 | <!-- @generated yakindu_simplified --> | 3 | <!-- @generated yakindu_simplified --> |
4 | <package class="hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage" genModel="model/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/> | 4 | <package class="hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage" genModel="model/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/> |
5 | </extension> | 5 | </extension> |
6 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | 6 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns" point="org.eclipse.viatra.query.runtime.queryspecification"> |
7 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns"> | 7 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns"> |
8 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.entryInRegion"/> | 8 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.entryInRegion"/> |
9 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noEntryInRegion"/> | 9 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noEntryInRegion"/> |
10 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleEntryInRegion"/> | 10 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleEntryInRegion"/> |
11 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transition"/> | 11 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transition"/> |
12 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.incomingToEntry"/> | 12 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.incomingToEntry"/> |
13 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noOutgoingTransitionFromEntry"/> | 13 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noOutgoingTransitionFromEntry"/> |
14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleTransitionFromEntry"/> | 14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleTransitionFromEntry"/> |
15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.outgoingFromExit"/> | 15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.outgoingFromExit"/> |
16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.outgoingFromFinal"/> | 16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.outgoingFromFinal"/> |
17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noStateInRegion"/> | 17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noStateInRegion"/> |
18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.StateInRegion"/> | 18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.StateInRegion"/> |
19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.choiceHasNoOutgoing"/> | 19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.choiceHasNoOutgoing"/> |
20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.choiceHasNoIncoming"/> | 20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.choiceHasNoIncoming"/> |
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoOutgoing"/> | 21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoOutgoing"/> |
22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoIncoming"/> | 22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoIncoming"/> |
23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegion"/> | 23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegion"/> |
24 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.notSynchronizingStates"/> | 24 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.notSynchronizingStates"/> |
25 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleOutgoingTrainsition"/> | 25 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleOutgoingTrainsition"/> |
26 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleIncomingTrainsition"/> | 26 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleIncomingTrainsition"/> |
27 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblings"/> | 27 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblings"/> |
28 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.child"/> | 28 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.child"/> |
29 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionDoesNotHaveMultipleRegions"/> | 29 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionDoesNotHaveMultipleRegions"/> |
30 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleRegions"/> | 30 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleRegions"/> |
31 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchThree"/> | 31 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchThree"/> |
32 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.twoSynch"/> | 32 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.twoSynch"/> |
33 | </group> | 33 | </group> |
34 | </extension> | 34 | </extension> |
35 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" point="org.eclipse.viatra.query.runtime.queryspecification"> | 35 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" point="org.eclipse.viatra.query.runtime.queryspecification"> |
36 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated"> | 36 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated"> |
37 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M0"/> | 37 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M0"/> |
38 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M1"/> | 38 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M1"/> |
39 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M2"/> | 39 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M2"/> |
40 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M0"/> | 40 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M0"/> |
41 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M1"/> | 41 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M1"/> |
42 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M2"/> | 42 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M2"/> |
43 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M3"/> | 43 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M3"/> |
44 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M4"/> | 44 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M4"/> |
45 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M5"/> | 45 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M5"/> |
46 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M0"/> | 46 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M0"/> |
47 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M1"/> | 47 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M1"/> |
48 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M2"/> | 48 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M2"/> |
49 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M3"/> | 49 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M3"/> |
50 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M4"/> | 50 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M4"/> |
51 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M5"/> | 51 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M5"/> |
52 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M0"/> | 52 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M0"/> |
53 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M1"/> | 53 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M1"/> |
54 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M2"/> | 54 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M2"/> |
55 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M3"/> | 55 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M3"/> |
56 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M4"/> | 56 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M4"/> |
57 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_M0"/> | 57 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_M0"/> |
58 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_1"/> | 58 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_1"/> |
59 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_2"/> | 59 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_2"/> |
60 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_3"/> | 60 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_3"/> |
61 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_4"/> | 61 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_4"/> |
62 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_5"/> | 62 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_5"/> |
63 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M0"/> | 63 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M0"/> |
64 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M1"/> | 64 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M1"/> |
65 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M2"/> | 65 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M2"/> |
66 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M3"/> | 66 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M3"/> |
67 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M4"/> | 67 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M4"/> |
68 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M5"/> | 68 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M5"/> |
69 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M0"/> | 69 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M0"/> |
70 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M1"/> | 70 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M1"/> |
71 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M2"/> | 71 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M2"/> |
72 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M3"/> | 72 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M3"/> |
73 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M4"/> | 73 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M4"/> |
74 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M0"/> | 74 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M0"/> |
75 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M1"/> | 75 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M1"/> |
76 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M2"/> | 76 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M2"/> |
77 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M0"/> | 77 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M0"/> |
78 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M1"/> | 78 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M1"/> |
79 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M2"/> | 79 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M2"/> |
80 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M0"/> | 80 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M0"/> |
81 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M1"/> | 81 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M1"/> |
82 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M2"/> | 82 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M2"/> |
83 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M3"/> | 83 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M3"/> |
84 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M0"/> | 84 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M0"/> |
85 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M1"/> | 85 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M1"/> |
86 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M2"/> | 86 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M2"/> |
87 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M0"/> | 87 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M0"/> |
88 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M1"/> | 88 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M1"/> |
89 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M2"/> | 89 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M2"/> |
90 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M3"/> | 90 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M3"/> |
91 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M4"/> | 91 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M4"/> |
92 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M5"/> | 92 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M5"/> |
93 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M6"/> | 93 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M6"/> |
94 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M0"/> | 94 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M0"/> |
95 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M1"/> | 95 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M1"/> |
96 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M2"/> | 96 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M2"/> |
97 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M3"/> | 97 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M3"/> |
98 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M4"/> | 98 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M4"/> |
99 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M5"/> | 99 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M5"/> |
100 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M6"/> | 100 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M6"/> |
101 | </group> | 101 | </group> |
102 | </extension> | 102 | </extension> |
103 | </plugin> | 103 | </plugin> |