diff options
Diffstat (limited to 'Domains')
151 files changed, 39406 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..21769598 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF | |||
@@ -0,0 +1,28 @@ | |||
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.queries, | ||
12 | hu.bme.mit.inf.dslreasoner.domains.satellite.runner, | ||
13 | hu.bme.mit.inf.dslreasoner.domains.satellite.util, | ||
14 | satellite, | ||
15 | satellite.impl, | ||
16 | satellite.util | ||
17 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, | ||
18 | org.eclipse.viatra.query.runtime, | ||
19 | org.eclipse.viatra.query.runtime.rete, | ||
20 | org.eclipse.viatra.query.runtime.localsearch, | ||
21 | org.eclipse.xtext.xbase.lib, | ||
22 | org.eclipse.emf.ecore;visibility:=reexport, | ||
23 | org.eclipse.core.runtime, | ||
24 | hu.bme.mit.inf.dslreasoner.application | ||
25 | Import-Package: org.apache.log4j | ||
26 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite | ||
27 | Bundle-ActivationPolicy: lazy | ||
28 | 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..1942980c --- /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 += 16..32 | ||
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/CubeSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat.java new file mode 100644 index 00000000..ef66dce5 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat.java | |||
@@ -0,0 +1,16 @@ | |||
1 | /** | ||
2 | */ | ||
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 Sat</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * | ||
11 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getCubeSat() | ||
12 | * @model abstract="true" | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface CubeSat extends Spacecraft { | ||
16 | } // CubeSat | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/CubeSat3U.java new file mode 100644 index 00000000..98dea285 --- /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 CubeSat { | ||
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..eb64fe33 --- /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 CubeSat { | ||
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..3b2bc48a --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SatelliteFactory.java | |||
@@ -0,0 +1,105 @@ | |||
1 | /** | ||
2 | */ | ||
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 a new object of class '<em>Cube Sat3 U</em>'. | ||
71 | * <!-- begin-user-doc --> | ||
72 | * <!-- end-user-doc --> | ||
73 | * @return a new object of class '<em>Cube Sat3 U</em>'. | ||
74 | * @generated | ||
75 | */ | ||
76 | CubeSat3U createCubeSat3U(); | ||
77 | |||
78 | /** | ||
79 | * Returns a new object of class '<em>Cube Sat6 U</em>'. | ||
80 | * <!-- begin-user-doc --> | ||
81 | * <!-- end-user-doc --> | ||
82 | * @return a new object of class '<em>Cube Sat6 U</em>'. | ||
83 | * @generated | ||
84 | */ | ||
85 | CubeSat6U createCubeSat6U(); | ||
86 | |||
87 | /** | ||
88 | * Returns a new object of class '<em>Small Sat</em>'. | ||
89 | * <!-- begin-user-doc --> | ||
90 | * <!-- end-user-doc --> | ||
91 | * @return a new object of class '<em>Small Sat</em>'. | ||
92 | * @generated | ||
93 | */ | ||
94 | SmallSat createSmallSat(); | ||
95 | |||
96 | /** | ||
97 | * Returns the package supported by this factory. | ||
98 | * <!-- begin-user-doc --> | ||
99 | * <!-- end-user-doc --> | ||
100 | * @return the package supported by this factory. | ||
101 | * @generated | ||
102 | */ | ||
103 | SatellitePackage getSatellitePackage(); | ||
104 | |||
105 | } //SatelliteFactory | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/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..1e129422 --- /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,1306 @@ | |||
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.impl.CubeSatImpl <em>Cube Sat</em>}' class. | ||
467 | * <!-- begin-user-doc --> | ||
468 | * <!-- end-user-doc --> | ||
469 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl | ||
470 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat() | ||
471 | * @generated | ||
472 | */ | ||
473 | int CUBE_SAT = 12; | ||
474 | |||
475 | /** | ||
476 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
477 | * <!-- begin-user-doc --> | ||
478 | * <!-- end-user-doc --> | ||
479 | * @generated | ||
480 | * @ordered | ||
481 | */ | ||
482 | int CUBE_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM; | ||
483 | |||
484 | /** | ||
485 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
486 | * <!-- begin-user-doc --> | ||
487 | * <!-- end-user-doc --> | ||
488 | * @generated | ||
489 | * @ordered | ||
490 | */ | ||
491 | int CUBE_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK; | ||
492 | |||
493 | /** | ||
494 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
495 | * <!-- begin-user-doc --> | ||
496 | * <!-- end-user-doc --> | ||
497 | * @generated | ||
498 | * @ordered | ||
499 | */ | ||
500 | int CUBE_SAT__PAYLOAD = SPACECRAFT__PAYLOAD; | ||
501 | |||
502 | /** | ||
503 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
504 | * <!-- begin-user-doc --> | ||
505 | * <!-- end-user-doc --> | ||
506 | * @generated | ||
507 | * @ordered | ||
508 | */ | ||
509 | int CUBE_SAT__KIND = SPACECRAFT__KIND; | ||
510 | |||
511 | /** | ||
512 | * The number of structural features of the '<em>Cube Sat</em>' class. | ||
513 | * <!-- begin-user-doc --> | ||
514 | * <!-- end-user-doc --> | ||
515 | * @generated | ||
516 | * @ordered | ||
517 | */ | ||
518 | int CUBE_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0; | ||
519 | |||
520 | /** | ||
521 | * The number of operations of the '<em>Cube Sat</em>' class. | ||
522 | * <!-- begin-user-doc --> | ||
523 | * <!-- end-user-doc --> | ||
524 | * @generated | ||
525 | * @ordered | ||
526 | */ | ||
527 | int CUBE_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0; | ||
528 | |||
529 | /** | ||
530 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class. | ||
531 | * <!-- begin-user-doc --> | ||
532 | * <!-- end-user-doc --> | ||
533 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl | ||
534 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat3U() | ||
535 | * @generated | ||
536 | */ | ||
537 | int CUBE_SAT3_U = 9; | ||
538 | |||
539 | /** | ||
540 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
541 | * <!-- begin-user-doc --> | ||
542 | * <!-- end-user-doc --> | ||
543 | * @generated | ||
544 | * @ordered | ||
545 | */ | ||
546 | int CUBE_SAT3_U__COMM_SUBSYSTEM = CUBE_SAT__COMM_SUBSYSTEM; | ||
547 | |||
548 | /** | ||
549 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
550 | * <!-- begin-user-doc --> | ||
551 | * <!-- end-user-doc --> | ||
552 | * @generated | ||
553 | * @ordered | ||
554 | */ | ||
555 | int CUBE_SAT3_U__COMMUNICATION_LINK = CUBE_SAT__COMMUNICATION_LINK; | ||
556 | |||
557 | /** | ||
558 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
559 | * <!-- begin-user-doc --> | ||
560 | * <!-- end-user-doc --> | ||
561 | * @generated | ||
562 | * @ordered | ||
563 | */ | ||
564 | int CUBE_SAT3_U__PAYLOAD = CUBE_SAT__PAYLOAD; | ||
565 | |||
566 | /** | ||
567 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
568 | * <!-- begin-user-doc --> | ||
569 | * <!-- end-user-doc --> | ||
570 | * @generated | ||
571 | * @ordered | ||
572 | */ | ||
573 | int CUBE_SAT3_U__KIND = CUBE_SAT__KIND; | ||
574 | |||
575 | /** | ||
576 | * The number of structural features of the '<em>Cube Sat3 U</em>' class. | ||
577 | * <!-- begin-user-doc --> | ||
578 | * <!-- end-user-doc --> | ||
579 | * @generated | ||
580 | * @ordered | ||
581 | */ | ||
582 | int CUBE_SAT3_U_FEATURE_COUNT = CUBE_SAT_FEATURE_COUNT + 0; | ||
583 | |||
584 | /** | ||
585 | * The number of operations of the '<em>Cube Sat3 U</em>' class. | ||
586 | * <!-- begin-user-doc --> | ||
587 | * <!-- end-user-doc --> | ||
588 | * @generated | ||
589 | * @ordered | ||
590 | */ | ||
591 | int CUBE_SAT3_U_OPERATION_COUNT = CUBE_SAT_OPERATION_COUNT + 0; | ||
592 | |||
593 | /** | ||
594 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class. | ||
595 | * <!-- begin-user-doc --> | ||
596 | * <!-- end-user-doc --> | ||
597 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl | ||
598 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat6U() | ||
599 | * @generated | ||
600 | */ | ||
601 | int CUBE_SAT6_U = 10; | ||
602 | |||
603 | /** | ||
604 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
605 | * <!-- begin-user-doc --> | ||
606 | * <!-- end-user-doc --> | ||
607 | * @generated | ||
608 | * @ordered | ||
609 | */ | ||
610 | int CUBE_SAT6_U__COMM_SUBSYSTEM = CUBE_SAT__COMM_SUBSYSTEM; | ||
611 | |||
612 | /** | ||
613 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
614 | * <!-- begin-user-doc --> | ||
615 | * <!-- end-user-doc --> | ||
616 | * @generated | ||
617 | * @ordered | ||
618 | */ | ||
619 | int CUBE_SAT6_U__COMMUNICATION_LINK = CUBE_SAT__COMMUNICATION_LINK; | ||
620 | |||
621 | /** | ||
622 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
623 | * <!-- begin-user-doc --> | ||
624 | * <!-- end-user-doc --> | ||
625 | * @generated | ||
626 | * @ordered | ||
627 | */ | ||
628 | int CUBE_SAT6_U__PAYLOAD = CUBE_SAT__PAYLOAD; | ||
629 | |||
630 | /** | ||
631 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
632 | * <!-- begin-user-doc --> | ||
633 | * <!-- end-user-doc --> | ||
634 | * @generated | ||
635 | * @ordered | ||
636 | */ | ||
637 | int CUBE_SAT6_U__KIND = CUBE_SAT__KIND; | ||
638 | |||
639 | /** | ||
640 | * The number of structural features of the '<em>Cube Sat6 U</em>' class. | ||
641 | * <!-- begin-user-doc --> | ||
642 | * <!-- end-user-doc --> | ||
643 | * @generated | ||
644 | * @ordered | ||
645 | */ | ||
646 | int CUBE_SAT6_U_FEATURE_COUNT = CUBE_SAT_FEATURE_COUNT + 0; | ||
647 | |||
648 | /** | ||
649 | * The number of operations of the '<em>Cube Sat6 U</em>' class. | ||
650 | * <!-- begin-user-doc --> | ||
651 | * <!-- end-user-doc --> | ||
652 | * @generated | ||
653 | * @ordered | ||
654 | */ | ||
655 | int CUBE_SAT6_U_OPERATION_COUNT = CUBE_SAT_OPERATION_COUNT + 0; | ||
656 | |||
657 | /** | ||
658 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl <em>Small Sat</em>}' class. | ||
659 | * <!-- begin-user-doc --> | ||
660 | * <!-- end-user-doc --> | ||
661 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl | ||
662 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSmallSat() | ||
663 | * @generated | ||
664 | */ | ||
665 | int SMALL_SAT = 11; | ||
666 | |||
667 | /** | ||
668 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
669 | * <!-- begin-user-doc --> | ||
670 | * <!-- end-user-doc --> | ||
671 | * @generated | ||
672 | * @ordered | ||
673 | */ | ||
674 | int SMALL_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM; | ||
675 | |||
676 | /** | ||
677 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
678 | * <!-- begin-user-doc --> | ||
679 | * <!-- end-user-doc --> | ||
680 | * @generated | ||
681 | * @ordered | ||
682 | */ | ||
683 | int SMALL_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK; | ||
684 | |||
685 | /** | ||
686 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
687 | * <!-- begin-user-doc --> | ||
688 | * <!-- end-user-doc --> | ||
689 | * @generated | ||
690 | * @ordered | ||
691 | */ | ||
692 | int SMALL_SAT__PAYLOAD = SPACECRAFT__PAYLOAD; | ||
693 | |||
694 | /** | ||
695 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
696 | * <!-- begin-user-doc --> | ||
697 | * <!-- end-user-doc --> | ||
698 | * @generated | ||
699 | * @ordered | ||
700 | */ | ||
701 | int SMALL_SAT__KIND = SPACECRAFT__KIND; | ||
702 | |||
703 | /** | ||
704 | * The number of structural features of the '<em>Small Sat</em>' class. | ||
705 | * <!-- begin-user-doc --> | ||
706 | * <!-- end-user-doc --> | ||
707 | * @generated | ||
708 | * @ordered | ||
709 | */ | ||
710 | int SMALL_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0; | ||
711 | |||
712 | /** | ||
713 | * The number of operations of the '<em>Small Sat</em>' class. | ||
714 | * <!-- begin-user-doc --> | ||
715 | * <!-- end-user-doc --> | ||
716 | * @generated | ||
717 | * @ordered | ||
718 | */ | ||
719 | int SMALL_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0; | ||
720 | |||
721 | /** | ||
722 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum. | ||
723 | * <!-- begin-user-doc --> | ||
724 | * <!-- end-user-doc --> | ||
725 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand | ||
726 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand() | ||
727 | * @generated | ||
728 | */ | ||
729 | int TRANSCEIVER_BAND = 13; | ||
730 | |||
731 | /** | ||
732 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum. | ||
733 | * <!-- begin-user-doc --> | ||
734 | * <!-- end-user-doc --> | ||
735 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain | ||
736 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain() | ||
737 | * @generated | ||
738 | */ | ||
739 | int ANTENNA_GAIN = 14; | ||
740 | |||
741 | /** | ||
742 | * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. | ||
743 | * <!-- begin-user-doc --> | ||
744 | * <!-- end-user-doc --> | ||
745 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
746 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraftKind() | ||
747 | * @generated | ||
748 | */ | ||
749 | int SPACECRAFT_KIND = 15; | ||
750 | |||
751 | /** | ||
752 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'. | ||
753 | * <!-- begin-user-doc --> | ||
754 | * <!-- end-user-doc --> | ||
755 | * @return the meta object for class '<em>Constellation Mission</em>'. | ||
756 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission | ||
757 | * @generated | ||
758 | */ | ||
759 | EClass getConstellationMission(); | ||
760 | |||
761 | /** | ||
762 | * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}'. | ||
763 | * <!-- begin-user-doc --> | ||
764 | * <!-- end-user-doc --> | ||
765 | * @return the meta object for the containment reference '<em>Ground Station Network</em>'. | ||
766 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getGroundStationNetwork() | ||
767 | * @see #getConstellationMission() | ||
768 | * @generated | ||
769 | */ | ||
770 | EReference getConstellationMission_GroundStationNetwork(); | ||
771 | |||
772 | /** | ||
773 | * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}'. | ||
774 | * <!-- begin-user-doc --> | ||
775 | * <!-- end-user-doc --> | ||
776 | * @return the meta object for the containment reference list '<em>Spacecraft</em>'. | ||
777 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission#getSpacecraft() | ||
778 | * @see #getConstellationMission() | ||
779 | * @generated | ||
780 | */ | ||
781 | EReference getConstellationMission_Spacecraft(); | ||
782 | |||
783 | /** | ||
784 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission <em>Interferometry Mission</em>}'. | ||
785 | * <!-- begin-user-doc --> | ||
786 | * <!-- end-user-doc --> | ||
787 | * @return the meta object for class '<em>Interferometry Mission</em>'. | ||
788 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission | ||
789 | * @generated | ||
790 | */ | ||
791 | EClass getInterferometryMission(); | ||
792 | |||
793 | /** | ||
794 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'. | ||
795 | * <!-- begin-user-doc --> | ||
796 | * <!-- end-user-doc --> | ||
797 | * @return the meta object for the attribute '<em>Observation Time</em>'. | ||
798 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission#getObservationTime() | ||
799 | * @see #getInterferometryMission() | ||
800 | * @generated | ||
801 | */ | ||
802 | EAttribute getInterferometryMission_ObservationTime(); | ||
803 | |||
804 | /** | ||
805 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement <em>Communicating Element</em>}'. | ||
806 | * <!-- begin-user-doc --> | ||
807 | * <!-- end-user-doc --> | ||
808 | * @return the meta object for class '<em>Communicating Element</em>'. | ||
809 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement | ||
810 | * @generated | ||
811 | */ | ||
812 | EClass getCommunicatingElement(); | ||
813 | |||
814 | /** | ||
815 | * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}'. | ||
816 | * <!-- begin-user-doc --> | ||
817 | * <!-- end-user-doc --> | ||
818 | * @return the meta object for the containment reference list '<em>Comm Subsystem</em>'. | ||
819 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommSubsystem() | ||
820 | * @see #getCommunicatingElement() | ||
821 | * @generated | ||
822 | */ | ||
823 | EReference getCommunicatingElement_CommSubsystem(); | ||
824 | |||
825 | /** | ||
826 | * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}'. | ||
827 | * <!-- begin-user-doc --> | ||
828 | * <!-- end-user-doc --> | ||
829 | * @return the meta object for the containment reference '<em>Communication Link</em>'. | ||
830 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement#getCommunicationLink() | ||
831 | * @see #getCommunicatingElement() | ||
832 | * @generated | ||
833 | */ | ||
834 | EReference getCommunicatingElement_CommunicationLink(); | ||
835 | |||
836 | /** | ||
837 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork <em>Ground Station Network</em>}'. | ||
838 | * <!-- begin-user-doc --> | ||
839 | * <!-- end-user-doc --> | ||
840 | * @return the meta object for class '<em>Ground Station Network</em>'. | ||
841 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork | ||
842 | * @generated | ||
843 | */ | ||
844 | EClass getGroundStationNetwork(); | ||
845 | |||
846 | /** | ||
847 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft <em>Spacecraft</em>}'. | ||
848 | * <!-- begin-user-doc --> | ||
849 | * <!-- end-user-doc --> | ||
850 | * @return the meta object for class '<em>Spacecraft</em>'. | ||
851 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft | ||
852 | * @generated | ||
853 | */ | ||
854 | EClass getSpacecraft(); | ||
855 | |||
856 | /** | ||
857 | * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload <em>Payload</em>}'. | ||
858 | * <!-- begin-user-doc --> | ||
859 | * <!-- end-user-doc --> | ||
860 | * @return the meta object for the containment reference '<em>Payload</em>'. | ||
861 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getPayload() | ||
862 | * @see #getSpacecraft() | ||
863 | * @generated | ||
864 | */ | ||
865 | EReference getSpacecraft_Payload(); | ||
866 | |||
867 | /** | ||
868 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind <em>Kind</em>}'. | ||
869 | * <!-- begin-user-doc --> | ||
870 | * <!-- end-user-doc --> | ||
871 | * @return the meta object for the attribute '<em>Kind</em>'. | ||
872 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft#getKind() | ||
873 | * @see #getSpacecraft() | ||
874 | * @generated | ||
875 | */ | ||
876 | EAttribute getSpacecraft_Kind(); | ||
877 | |||
878 | /** | ||
879 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem <em>Comm Subsystem</em>}'. | ||
880 | * <!-- begin-user-doc --> | ||
881 | * <!-- end-user-doc --> | ||
882 | * @return the meta object for class '<em>Comm Subsystem</em>'. | ||
883 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem | ||
884 | * @generated | ||
885 | */ | ||
886 | EClass getCommSubsystem(); | ||
887 | |||
888 | /** | ||
889 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand <em>Band</em>}'. | ||
890 | * <!-- begin-user-doc --> | ||
891 | * <!-- end-user-doc --> | ||
892 | * @return the meta object for the attribute '<em>Band</em>'. | ||
893 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getBand() | ||
894 | * @see #getCommSubsystem() | ||
895 | * @generated | ||
896 | */ | ||
897 | EAttribute getCommSubsystem_Band(); | ||
898 | |||
899 | /** | ||
900 | * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain <em>Gain</em>}'. | ||
901 | * <!-- begin-user-doc --> | ||
902 | * <!-- end-user-doc --> | ||
903 | * @return the meta object for the attribute '<em>Gain</em>'. | ||
904 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem#getGain() | ||
905 | * @see #getCommSubsystem() | ||
906 | * @generated | ||
907 | */ | ||
908 | EAttribute getCommSubsystem_Gain(); | ||
909 | |||
910 | /** | ||
911 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'. | ||
912 | * <!-- begin-user-doc --> | ||
913 | * <!-- end-user-doc --> | ||
914 | * @return the meta object for class '<em>Directed Communication Link</em>'. | ||
915 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink | ||
916 | * @generated | ||
917 | */ | ||
918 | EClass getDirectedCommunicationLink(); | ||
919 | |||
920 | /** | ||
921 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource <em>Source</em>}'. | ||
922 | * <!-- begin-user-doc --> | ||
923 | * <!-- end-user-doc --> | ||
924 | * @return the meta object for the reference '<em>Source</em>'. | ||
925 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getSource() | ||
926 | * @see #getDirectedCommunicationLink() | ||
927 | * @generated | ||
928 | */ | ||
929 | EReference getDirectedCommunicationLink_Source(); | ||
930 | |||
931 | /** | ||
932 | * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget <em>Target</em>}'. | ||
933 | * <!-- begin-user-doc --> | ||
934 | * <!-- end-user-doc --> | ||
935 | * @return the meta object for the reference '<em>Target</em>'. | ||
936 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink#getTarget() | ||
937 | * @see #getDirectedCommunicationLink() | ||
938 | * @generated | ||
939 | */ | ||
940 | EReference getDirectedCommunicationLink_Target(); | ||
941 | |||
942 | /** | ||
943 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Payload <em>Payload</em>}'. | ||
944 | * <!-- begin-user-doc --> | ||
945 | * <!-- end-user-doc --> | ||
946 | * @return the meta object for class '<em>Payload</em>'. | ||
947 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Payload | ||
948 | * @generated | ||
949 | */ | ||
950 | EClass getPayload(); | ||
951 | |||
952 | /** | ||
953 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload <em>Interferometry Payload</em>}'. | ||
954 | * <!-- begin-user-doc --> | ||
955 | * <!-- end-user-doc --> | ||
956 | * @return the meta object for class '<em>Interferometry Payload</em>'. | ||
957 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload | ||
958 | * @generated | ||
959 | */ | ||
960 | EClass getInterferometryPayload(); | ||
961 | |||
962 | /** | ||
963 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U <em>Cube Sat3 U</em>}'. | ||
964 | * <!-- begin-user-doc --> | ||
965 | * <!-- end-user-doc --> | ||
966 | * @return the meta object for class '<em>Cube Sat3 U</em>'. | ||
967 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U | ||
968 | * @generated | ||
969 | */ | ||
970 | EClass getCubeSat3U(); | ||
971 | |||
972 | /** | ||
973 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U <em>Cube Sat6 U</em>}'. | ||
974 | * <!-- begin-user-doc --> | ||
975 | * <!-- end-user-doc --> | ||
976 | * @return the meta object for class '<em>Cube Sat6 U</em>'. | ||
977 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U | ||
978 | * @generated | ||
979 | */ | ||
980 | EClass getCubeSat6U(); | ||
981 | |||
982 | /** | ||
983 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat <em>Small Sat</em>}'. | ||
984 | * <!-- begin-user-doc --> | ||
985 | * <!-- end-user-doc --> | ||
986 | * @return the meta object for class '<em>Small Sat</em>'. | ||
987 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat | ||
988 | * @generated | ||
989 | */ | ||
990 | EClass getSmallSat(); | ||
991 | |||
992 | /** | ||
993 | * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat <em>Cube Sat</em>}'. | ||
994 | * <!-- begin-user-doc --> | ||
995 | * <!-- end-user-doc --> | ||
996 | * @return the meta object for class '<em>Cube Sat</em>'. | ||
997 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat | ||
998 | * @generated | ||
999 | */ | ||
1000 | EClass getCubeSat(); | ||
1001 | |||
1002 | /** | ||
1003 | * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}'. | ||
1004 | * <!-- begin-user-doc --> | ||
1005 | * <!-- end-user-doc --> | ||
1006 | * @return the meta object for enum '<em>Transceiver Band</em>'. | ||
1007 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand | ||
1008 | * @generated | ||
1009 | */ | ||
1010 | EEnum getTransceiverBand(); | ||
1011 | |||
1012 | /** | ||
1013 | * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}'. | ||
1014 | * <!-- begin-user-doc --> | ||
1015 | * <!-- end-user-doc --> | ||
1016 | * @return the meta object for enum '<em>Antenna Gain</em>'. | ||
1017 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain | ||
1018 | * @generated | ||
1019 | */ | ||
1020 | EEnum getAntennaGain(); | ||
1021 | |||
1022 | /** | ||
1023 | * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}'. | ||
1024 | * <!-- begin-user-doc --> | ||
1025 | * <!-- end-user-doc --> | ||
1026 | * @return the meta object for enum '<em>Spacecraft Kind</em>'. | ||
1027 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
1028 | * @generated | ||
1029 | */ | ||
1030 | EEnum getSpacecraftKind(); | ||
1031 | |||
1032 | /** | ||
1033 | * Returns the factory that creates the instances of the model. | ||
1034 | * <!-- begin-user-doc --> | ||
1035 | * <!-- end-user-doc --> | ||
1036 | * @return the factory that creates the instances of the model. | ||
1037 | * @generated | ||
1038 | */ | ||
1039 | SatelliteFactory getSatelliteFactory(); | ||
1040 | |||
1041 | /** | ||
1042 | * <!-- begin-user-doc --> | ||
1043 | * Defines literals for the meta objects that represent | ||
1044 | * <ul> | ||
1045 | * <li>each class,</li> | ||
1046 | * <li>each feature of each class,</li> | ||
1047 | * <li>each operation of each class,</li> | ||
1048 | * <li>each enum,</li> | ||
1049 | * <li>and each data type</li> | ||
1050 | * </ul> | ||
1051 | * <!-- end-user-doc --> | ||
1052 | * @generated | ||
1053 | */ | ||
1054 | interface Literals { | ||
1055 | /** | ||
1056 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class. | ||
1057 | * <!-- begin-user-doc --> | ||
1058 | * <!-- end-user-doc --> | ||
1059 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.ConstellationMissionImpl | ||
1060 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getConstellationMission() | ||
1061 | * @generated | ||
1062 | */ | ||
1063 | EClass CONSTELLATION_MISSION = eINSTANCE.getConstellationMission(); | ||
1064 | |||
1065 | /** | ||
1066 | * The meta object literal for the '<em><b>Ground Station Network</b></em>' containment reference feature. | ||
1067 | * <!-- begin-user-doc --> | ||
1068 | * <!-- end-user-doc --> | ||
1069 | * @generated | ||
1070 | */ | ||
1071 | EReference CONSTELLATION_MISSION__GROUND_STATION_NETWORK = eINSTANCE | ||
1072 | .getConstellationMission_GroundStationNetwork(); | ||
1073 | |||
1074 | /** | ||
1075 | * The meta object literal for the '<em><b>Spacecraft</b></em>' containment reference list feature. | ||
1076 | * <!-- begin-user-doc --> | ||
1077 | * <!-- end-user-doc --> | ||
1078 | * @generated | ||
1079 | */ | ||
1080 | EReference CONSTELLATION_MISSION__SPACECRAFT = eINSTANCE.getConstellationMission_Spacecraft(); | ||
1081 | |||
1082 | /** | ||
1083 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class. | ||
1084 | * <!-- begin-user-doc --> | ||
1085 | * <!-- end-user-doc --> | ||
1086 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryMissionImpl | ||
1087 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryMission() | ||
1088 | * @generated | ||
1089 | */ | ||
1090 | EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission(); | ||
1091 | |||
1092 | /** | ||
1093 | * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature. | ||
1094 | * <!-- begin-user-doc --> | ||
1095 | * <!-- end-user-doc --> | ||
1096 | * @generated | ||
1097 | */ | ||
1098 | EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime(); | ||
1099 | |||
1100 | /** | ||
1101 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class. | ||
1102 | * <!-- begin-user-doc --> | ||
1103 | * <!-- end-user-doc --> | ||
1104 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommunicatingElementImpl | ||
1105 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommunicatingElement() | ||
1106 | * @generated | ||
1107 | */ | ||
1108 | EClass COMMUNICATING_ELEMENT = eINSTANCE.getCommunicatingElement(); | ||
1109 | |||
1110 | /** | ||
1111 | * The meta object literal for the '<em><b>Comm Subsystem</b></em>' containment reference list feature. | ||
1112 | * <!-- begin-user-doc --> | ||
1113 | * <!-- end-user-doc --> | ||
1114 | * @generated | ||
1115 | */ | ||
1116 | EReference COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = eINSTANCE.getCommunicatingElement_CommSubsystem(); | ||
1117 | |||
1118 | /** | ||
1119 | * The meta object literal for the '<em><b>Communication Link</b></em>' containment reference feature. | ||
1120 | * <!-- begin-user-doc --> | ||
1121 | * <!-- end-user-doc --> | ||
1122 | * @generated | ||
1123 | */ | ||
1124 | EReference COMMUNICATING_ELEMENT__COMMUNICATION_LINK = eINSTANCE.getCommunicatingElement_CommunicationLink(); | ||
1125 | |||
1126 | /** | ||
1127 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class. | ||
1128 | * <!-- begin-user-doc --> | ||
1129 | * <!-- end-user-doc --> | ||
1130 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.GroundStationNetworkImpl | ||
1131 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getGroundStationNetwork() | ||
1132 | * @generated | ||
1133 | */ | ||
1134 | EClass GROUND_STATION_NETWORK = eINSTANCE.getGroundStationNetwork(); | ||
1135 | |||
1136 | /** | ||
1137 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class. | ||
1138 | * <!-- begin-user-doc --> | ||
1139 | * <!-- end-user-doc --> | ||
1140 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SpacecraftImpl | ||
1141 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraft() | ||
1142 | * @generated | ||
1143 | */ | ||
1144 | EClass SPACECRAFT = eINSTANCE.getSpacecraft(); | ||
1145 | |||
1146 | /** | ||
1147 | * The meta object literal for the '<em><b>Payload</b></em>' containment reference feature. | ||
1148 | * <!-- begin-user-doc --> | ||
1149 | * <!-- end-user-doc --> | ||
1150 | * @generated | ||
1151 | */ | ||
1152 | EReference SPACECRAFT__PAYLOAD = eINSTANCE.getSpacecraft_Payload(); | ||
1153 | |||
1154 | /** | ||
1155 | * The meta object literal for the '<em><b>Kind</b></em>' attribute feature. | ||
1156 | * <!-- begin-user-doc --> | ||
1157 | * <!-- end-user-doc --> | ||
1158 | * @generated | ||
1159 | */ | ||
1160 | EAttribute SPACECRAFT__KIND = eINSTANCE.getSpacecraft_Kind(); | ||
1161 | |||
1162 | /** | ||
1163 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class. | ||
1164 | * <!-- begin-user-doc --> | ||
1165 | * <!-- end-user-doc --> | ||
1166 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CommSubsystemImpl | ||
1167 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCommSubsystem() | ||
1168 | * @generated | ||
1169 | */ | ||
1170 | EClass COMM_SUBSYSTEM = eINSTANCE.getCommSubsystem(); | ||
1171 | |||
1172 | /** | ||
1173 | * The meta object literal for the '<em><b>Band</b></em>' attribute feature. | ||
1174 | * <!-- begin-user-doc --> | ||
1175 | * <!-- end-user-doc --> | ||
1176 | * @generated | ||
1177 | */ | ||
1178 | EAttribute COMM_SUBSYSTEM__BAND = eINSTANCE.getCommSubsystem_Band(); | ||
1179 | |||
1180 | /** | ||
1181 | * The meta object literal for the '<em><b>Gain</b></em>' attribute feature. | ||
1182 | * <!-- begin-user-doc --> | ||
1183 | * <!-- end-user-doc --> | ||
1184 | * @generated | ||
1185 | */ | ||
1186 | EAttribute COMM_SUBSYSTEM__GAIN = eINSTANCE.getCommSubsystem_Gain(); | ||
1187 | |||
1188 | /** | ||
1189 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class. | ||
1190 | * <!-- begin-user-doc --> | ||
1191 | * <!-- end-user-doc --> | ||
1192 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.DirectedCommunicationLinkImpl | ||
1193 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink() | ||
1194 | * @generated | ||
1195 | */ | ||
1196 | EClass DIRECTED_COMMUNICATION_LINK = eINSTANCE.getDirectedCommunicationLink(); | ||
1197 | |||
1198 | /** | ||
1199 | * The meta object literal for the '<em><b>Source</b></em>' reference feature. | ||
1200 | * <!-- begin-user-doc --> | ||
1201 | * <!-- end-user-doc --> | ||
1202 | * @generated | ||
1203 | */ | ||
1204 | EReference DIRECTED_COMMUNICATION_LINK__SOURCE = eINSTANCE.getDirectedCommunicationLink_Source(); | ||
1205 | |||
1206 | /** | ||
1207 | * The meta object literal for the '<em><b>Target</b></em>' reference feature. | ||
1208 | * <!-- begin-user-doc --> | ||
1209 | * <!-- end-user-doc --> | ||
1210 | * @generated | ||
1211 | */ | ||
1212 | EReference DIRECTED_COMMUNICATION_LINK__TARGET = eINSTANCE.getDirectedCommunicationLink_Target(); | ||
1213 | |||
1214 | /** | ||
1215 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl <em>Payload</em>}' class. | ||
1216 | * <!-- begin-user-doc --> | ||
1217 | * <!-- end-user-doc --> | ||
1218 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.PayloadImpl | ||
1219 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getPayload() | ||
1220 | * @generated | ||
1221 | */ | ||
1222 | EClass PAYLOAD = eINSTANCE.getPayload(); | ||
1223 | |||
1224 | /** | ||
1225 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class. | ||
1226 | * <!-- begin-user-doc --> | ||
1227 | * <!-- end-user-doc --> | ||
1228 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.InterferometryPayloadImpl | ||
1229 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getInterferometryPayload() | ||
1230 | * @generated | ||
1231 | */ | ||
1232 | EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload(); | ||
1233 | |||
1234 | /** | ||
1235 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class. | ||
1236 | * <!-- begin-user-doc --> | ||
1237 | * <!-- end-user-doc --> | ||
1238 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat3UImpl | ||
1239 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat3U() | ||
1240 | * @generated | ||
1241 | */ | ||
1242 | EClass CUBE_SAT3_U = eINSTANCE.getCubeSat3U(); | ||
1243 | |||
1244 | /** | ||
1245 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class. | ||
1246 | * <!-- begin-user-doc --> | ||
1247 | * <!-- end-user-doc --> | ||
1248 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSat6UImpl | ||
1249 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat6U() | ||
1250 | * @generated | ||
1251 | */ | ||
1252 | EClass CUBE_SAT6_U = eINSTANCE.getCubeSat6U(); | ||
1253 | |||
1254 | /** | ||
1255 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl <em>Small Sat</em>}' class. | ||
1256 | * <!-- begin-user-doc --> | ||
1257 | * <!-- end-user-doc --> | ||
1258 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SmallSatImpl | ||
1259 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSmallSat() | ||
1260 | * @generated | ||
1261 | */ | ||
1262 | EClass SMALL_SAT = eINSTANCE.getSmallSat(); | ||
1263 | |||
1264 | /** | ||
1265 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl <em>Cube Sat</em>}' class. | ||
1266 | * <!-- begin-user-doc --> | ||
1267 | * <!-- end-user-doc --> | ||
1268 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.CubeSatImpl | ||
1269 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getCubeSat() | ||
1270 | * @generated | ||
1271 | */ | ||
1272 | EClass CUBE_SAT = eINSTANCE.getCubeSat(); | ||
1273 | |||
1274 | /** | ||
1275 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand <em>Transceiver Band</em>}' enum. | ||
1276 | * <!-- begin-user-doc --> | ||
1277 | * <!-- end-user-doc --> | ||
1278 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand | ||
1279 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getTransceiverBand() | ||
1280 | * @generated | ||
1281 | */ | ||
1282 | EEnum TRANSCEIVER_BAND = eINSTANCE.getTransceiverBand(); | ||
1283 | |||
1284 | /** | ||
1285 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain <em>Antenna Gain</em>}' enum. | ||
1286 | * <!-- begin-user-doc --> | ||
1287 | * <!-- end-user-doc --> | ||
1288 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.AntennaGain | ||
1289 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getAntennaGain() | ||
1290 | * @generated | ||
1291 | */ | ||
1292 | EEnum ANTENNA_GAIN = eINSTANCE.getAntennaGain(); | ||
1293 | |||
1294 | /** | ||
1295 | * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. | ||
1296 | * <!-- begin-user-doc --> | ||
1297 | * <!-- end-user-doc --> | ||
1298 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind | ||
1299 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.impl.SatellitePackageImpl#getSpacecraftKind() | ||
1300 | * @generated | ||
1301 | */ | ||
1302 | EEnum SPACECRAFT_KIND = eINSTANCE.getSpacecraftKind(); | ||
1303 | |||
1304 | } | ||
1305 | |||
1306 | } //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..34f9750a --- /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,66 @@ | |||
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 hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#getSpacecraft_Kind() | ||
61 | * @model required="true" transient="true" changeable="false" volatile="true" derived="true" | ||
62 | * @generated | ||
63 | */ | ||
64 | SpacecraftKind getKind(); | ||
65 | |||
66 | } // Spacecraft | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/SpacecraftKind.java new file mode 100644 index 00000000..b0b6aede --- /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/CubeSat3UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat3UImpl.java new file mode 100644 index 00000000..3e0d6f2c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat3UImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U; | ||
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>Cube Sat3 U</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public class CubeSat3UImpl extends CubeSatImpl implements CubeSat3U { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected CubeSat3UImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.CUBE_SAT3_U; | ||
35 | } | ||
36 | |||
37 | } //CubeSat3UImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java new file mode 100644 index 00000000..7ad2bc87 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSat6UImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U; | ||
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>Cube Sat6 U</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public class CubeSat6UImpl extends CubeSatImpl implements CubeSat6U { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected CubeSat6UImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.CUBE_SAT6_U; | ||
35 | } | ||
36 | |||
37 | } //CubeSat6UImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java new file mode 100644 index 00000000..b8e364a3 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/CubeSatImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat; | ||
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>Cube Sat</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public abstract class CubeSatImpl extends SpacecraftImpl implements CubeSat { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected CubeSatImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.CUBE_SAT; | ||
35 | } | ||
36 | |||
37 | } //CubeSatImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/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..028ba662 --- /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,294 @@ | |||
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 | case SatellitePackage.CUBE_SAT3_U: | ||
71 | return createCubeSat3U(); | ||
72 | case SatellitePackage.CUBE_SAT6_U: | ||
73 | return createCubeSat6U(); | ||
74 | case SatellitePackage.SMALL_SAT: | ||
75 | return createSmallSat(); | ||
76 | default: | ||
77 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | /** | ||
82 | * <!-- begin-user-doc --> | ||
83 | * <!-- end-user-doc --> | ||
84 | * @generated | ||
85 | */ | ||
86 | @Override | ||
87 | public Object createFromString(EDataType eDataType, String initialValue) { | ||
88 | switch (eDataType.getClassifierID()) { | ||
89 | case SatellitePackage.TRANSCEIVER_BAND: | ||
90 | return createTransceiverBandFromString(eDataType, initialValue); | ||
91 | case SatellitePackage.ANTENNA_GAIN: | ||
92 | return createAntennaGainFromString(eDataType, initialValue); | ||
93 | case SatellitePackage.SPACECRAFT_KIND: | ||
94 | return createSpacecraftKindFromString(eDataType, initialValue); | ||
95 | default: | ||
96 | throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); | ||
97 | } | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * <!-- begin-user-doc --> | ||
102 | * <!-- end-user-doc --> | ||
103 | * @generated | ||
104 | */ | ||
105 | @Override | ||
106 | public String convertToString(EDataType eDataType, Object instanceValue) { | ||
107 | switch (eDataType.getClassifierID()) { | ||
108 | case SatellitePackage.TRANSCEIVER_BAND: | ||
109 | return convertTransceiverBandToString(eDataType, instanceValue); | ||
110 | case SatellitePackage.ANTENNA_GAIN: | ||
111 | return convertAntennaGainToString(eDataType, instanceValue); | ||
112 | case SatellitePackage.SPACECRAFT_KIND: | ||
113 | return convertSpacecraftKindToString(eDataType, instanceValue); | ||
114 | default: | ||
115 | throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); | ||
116 | } | ||
117 | } | ||
118 | |||
119 | /** | ||
120 | * <!-- begin-user-doc --> | ||
121 | * <!-- end-user-doc --> | ||
122 | * @generated | ||
123 | */ | ||
124 | @Override | ||
125 | public InterferometryMission createInterferometryMission() { | ||
126 | InterferometryMissionImpl interferometryMission = new InterferometryMissionImpl(); | ||
127 | return interferometryMission; | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * <!-- begin-user-doc --> | ||
132 | * <!-- end-user-doc --> | ||
133 | * @generated | ||
134 | */ | ||
135 | @Override | ||
136 | public GroundStationNetwork createGroundStationNetwork() { | ||
137 | GroundStationNetworkImpl groundStationNetwork = new GroundStationNetworkImpl(); | ||
138 | return groundStationNetwork; | ||
139 | } | ||
140 | |||
141 | /** | ||
142 | * <!-- begin-user-doc --> | ||
143 | * <!-- end-user-doc --> | ||
144 | * @generated | ||
145 | */ | ||
146 | @Override | ||
147 | public CommSubsystem createCommSubsystem() { | ||
148 | CommSubsystemImpl commSubsystem = new CommSubsystemImpl(); | ||
149 | return commSubsystem; | ||
150 | } | ||
151 | |||
152 | /** | ||
153 | * <!-- begin-user-doc --> | ||
154 | * <!-- end-user-doc --> | ||
155 | * @generated | ||
156 | */ | ||
157 | @Override | ||
158 | public DirectedCommunicationLink createDirectedCommunicationLink() { | ||
159 | DirectedCommunicationLinkImpl directedCommunicationLink = new DirectedCommunicationLinkImpl(); | ||
160 | return directedCommunicationLink; | ||
161 | } | ||
162 | |||
163 | /** | ||
164 | * <!-- begin-user-doc --> | ||
165 | * <!-- end-user-doc --> | ||
166 | * @generated | ||
167 | */ | ||
168 | @Override | ||
169 | public InterferometryPayload createInterferometryPayload() { | ||
170 | InterferometryPayloadImpl interferometryPayload = new InterferometryPayloadImpl(); | ||
171 | return interferometryPayload; | ||
172 | } | ||
173 | |||
174 | /** | ||
175 | * <!-- begin-user-doc --> | ||
176 | * <!-- end-user-doc --> | ||
177 | * @generated | ||
178 | */ | ||
179 | @Override | ||
180 | public CubeSat3U createCubeSat3U() { | ||
181 | CubeSat3UImpl cubeSat3U = new CubeSat3UImpl(); | ||
182 | return cubeSat3U; | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * <!-- begin-user-doc --> | ||
187 | * <!-- end-user-doc --> | ||
188 | * @generated | ||
189 | */ | ||
190 | @Override | ||
191 | public CubeSat6U createCubeSat6U() { | ||
192 | CubeSat6UImpl cubeSat6U = new CubeSat6UImpl(); | ||
193 | return cubeSat6U; | ||
194 | } | ||
195 | |||
196 | /** | ||
197 | * <!-- begin-user-doc --> | ||
198 | * <!-- end-user-doc --> | ||
199 | * @generated | ||
200 | */ | ||
201 | @Override | ||
202 | public SmallSat createSmallSat() { | ||
203 | SmallSatImpl smallSat = new SmallSatImpl(); | ||
204 | return smallSat; | ||
205 | } | ||
206 | |||
207 | /** | ||
208 | * <!-- begin-user-doc --> | ||
209 | * <!-- end-user-doc --> | ||
210 | * @generated | ||
211 | */ | ||
212 | public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) { | ||
213 | TransceiverBand result = TransceiverBand.get(initialValue); | ||
214 | if (result == null) | ||
215 | throw new IllegalArgumentException( | ||
216 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
217 | return result; | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * <!-- begin-user-doc --> | ||
222 | * <!-- end-user-doc --> | ||
223 | * @generated | ||
224 | */ | ||
225 | public String convertTransceiverBandToString(EDataType eDataType, Object instanceValue) { | ||
226 | return instanceValue == null ? null : instanceValue.toString(); | ||
227 | } | ||
228 | |||
229 | /** | ||
230 | * <!-- begin-user-doc --> | ||
231 | * <!-- end-user-doc --> | ||
232 | * @generated | ||
233 | */ | ||
234 | public AntennaGain createAntennaGainFromString(EDataType eDataType, String initialValue) { | ||
235 | AntennaGain result = AntennaGain.get(initialValue); | ||
236 | if (result == null) | ||
237 | throw new IllegalArgumentException( | ||
238 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
239 | return result; | ||
240 | } | ||
241 | |||
242 | /** | ||
243 | * <!-- begin-user-doc --> | ||
244 | * <!-- end-user-doc --> | ||
245 | * @generated | ||
246 | */ | ||
247 | public String convertAntennaGainToString(EDataType eDataType, Object instanceValue) { | ||
248 | return instanceValue == null ? null : instanceValue.toString(); | ||
249 | } | ||
250 | |||
251 | /** | ||
252 | * <!-- begin-user-doc --> | ||
253 | * <!-- end-user-doc --> | ||
254 | * @generated | ||
255 | */ | ||
256 | public SpacecraftKind createSpacecraftKindFromString(EDataType eDataType, String initialValue) { | ||
257 | SpacecraftKind result = SpacecraftKind.get(initialValue); | ||
258 | if (result == null) | ||
259 | throw new IllegalArgumentException( | ||
260 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
261 | return result; | ||
262 | } | ||
263 | |||
264 | /** | ||
265 | * <!-- begin-user-doc --> | ||
266 | * <!-- end-user-doc --> | ||
267 | * @generated | ||
268 | */ | ||
269 | public String convertSpacecraftKindToString(EDataType eDataType, Object instanceValue) { | ||
270 | return instanceValue == null ? null : instanceValue.toString(); | ||
271 | } | ||
272 | |||
273 | /** | ||
274 | * <!-- begin-user-doc --> | ||
275 | * <!-- end-user-doc --> | ||
276 | * @generated | ||
277 | */ | ||
278 | @Override | ||
279 | public SatellitePackage getSatellitePackage() { | ||
280 | return (SatellitePackage) getEPackage(); | ||
281 | } | ||
282 | |||
283 | /** | ||
284 | * <!-- begin-user-doc --> | ||
285 | * <!-- end-user-doc --> | ||
286 | * @deprecated | ||
287 | * @generated | ||
288 | */ | ||
289 | @Deprecated | ||
290 | public static SatellitePackage getPackage() { | ||
291 | return SatellitePackage.eINSTANCE; | ||
292 | } | ||
293 | |||
294 | } //SatelliteFactoryImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/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..bbe77e4d --- /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,684 @@ | |||
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.CubeSat; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U; | ||
11 | import hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U; | ||
12 | import hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink; | ||
13 | import hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork; | ||
14 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission; | ||
15 | import hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload; | ||
16 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Payload; | ||
17 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatelliteFactory; | ||
18 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
19 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat; | ||
20 | import hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft; | ||
21 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind; | ||
22 | import hu.bme.mit.inf.dslreasoner.domains.satellite.TransceiverBand; | ||
23 | |||
24 | import org.eclipse.emf.ecore.EAttribute; | ||
25 | import org.eclipse.emf.ecore.EClass; | ||
26 | import org.eclipse.emf.ecore.EEnum; | ||
27 | import org.eclipse.emf.ecore.EPackage; | ||
28 | import org.eclipse.emf.ecore.EReference; | ||
29 | |||
30 | import org.eclipse.emf.ecore.impl.EPackageImpl; | ||
31 | |||
32 | /** | ||
33 | * <!-- begin-user-doc --> | ||
34 | * An implementation of the model <b>Package</b>. | ||
35 | * <!-- end-user-doc --> | ||
36 | * @generated | ||
37 | */ | ||
38 | public class SatellitePackageImpl extends EPackageImpl implements SatellitePackage { | ||
39 | /** | ||
40 | * <!-- begin-user-doc --> | ||
41 | * <!-- end-user-doc --> | ||
42 | * @generated | ||
43 | */ | ||
44 | private EClass constellationMissionEClass = null; | ||
45 | |||
46 | /** | ||
47 | * <!-- begin-user-doc --> | ||
48 | * <!-- end-user-doc --> | ||
49 | * @generated | ||
50 | */ | ||
51 | private EClass interferometryMissionEClass = null; | ||
52 | |||
53 | /** | ||
54 | * <!-- begin-user-doc --> | ||
55 | * <!-- end-user-doc --> | ||
56 | * @generated | ||
57 | */ | ||
58 | private EClass communicatingElementEClass = null; | ||
59 | |||
60 | /** | ||
61 | * <!-- begin-user-doc --> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @generated | ||
64 | */ | ||
65 | private EClass groundStationNetworkEClass = null; | ||
66 | |||
67 | /** | ||
68 | * <!-- begin-user-doc --> | ||
69 | * <!-- end-user-doc --> | ||
70 | * @generated | ||
71 | */ | ||
72 | private EClass spacecraftEClass = null; | ||
73 | |||
74 | /** | ||
75 | * <!-- begin-user-doc --> | ||
76 | * <!-- end-user-doc --> | ||
77 | * @generated | ||
78 | */ | ||
79 | private EClass commSubsystemEClass = null; | ||
80 | |||
81 | /** | ||
82 | * <!-- begin-user-doc --> | ||
83 | * <!-- end-user-doc --> | ||
84 | * @generated | ||
85 | */ | ||
86 | private EClass directedCommunicationLinkEClass = null; | ||
87 | |||
88 | /** | ||
89 | * <!-- begin-user-doc --> | ||
90 | * <!-- end-user-doc --> | ||
91 | * @generated | ||
92 | */ | ||
93 | private EClass payloadEClass = null; | ||
94 | |||
95 | /** | ||
96 | * <!-- begin-user-doc --> | ||
97 | * <!-- end-user-doc --> | ||
98 | * @generated | ||
99 | */ | ||
100 | private EClass interferometryPayloadEClass = null; | ||
101 | |||
102 | /** | ||
103 | * <!-- begin-user-doc --> | ||
104 | * <!-- end-user-doc --> | ||
105 | * @generated | ||
106 | */ | ||
107 | private EClass cubeSat3UEClass = null; | ||
108 | |||
109 | /** | ||
110 | * <!-- begin-user-doc --> | ||
111 | * <!-- end-user-doc --> | ||
112 | * @generated | ||
113 | */ | ||
114 | private EClass cubeSat6UEClass = null; | ||
115 | |||
116 | /** | ||
117 | * <!-- begin-user-doc --> | ||
118 | * <!-- end-user-doc --> | ||
119 | * @generated | ||
120 | */ | ||
121 | private EClass smallSatEClass = null; | ||
122 | |||
123 | /** | ||
124 | * <!-- begin-user-doc --> | ||
125 | * <!-- end-user-doc --> | ||
126 | * @generated | ||
127 | */ | ||
128 | private EClass cubeSatEClass = null; | ||
129 | |||
130 | /** | ||
131 | * <!-- begin-user-doc --> | ||
132 | * <!-- end-user-doc --> | ||
133 | * @generated | ||
134 | */ | ||
135 | private EEnum transceiverBandEEnum = null; | ||
136 | |||
137 | /** | ||
138 | * <!-- begin-user-doc --> | ||
139 | * <!-- end-user-doc --> | ||
140 | * @generated | ||
141 | */ | ||
142 | private EEnum antennaGainEEnum = null; | ||
143 | |||
144 | /** | ||
145 | * <!-- begin-user-doc --> | ||
146 | * <!-- end-user-doc --> | ||
147 | * @generated | ||
148 | */ | ||
149 | private EEnum spacecraftKindEEnum = null; | ||
150 | |||
151 | /** | ||
152 | * Creates an instance of the model <b>Package</b>, registered with | ||
153 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package | ||
154 | * package URI value. | ||
155 | * <p>Note: the correct way to create the package is via the static | ||
156 | * factory method {@link #init init()}, which also performs | ||
157 | * initialization of the package, or returns the registered package, | ||
158 | * if one already exists. | ||
159 | * <!-- begin-user-doc --> | ||
160 | * <!-- end-user-doc --> | ||
161 | * @see org.eclipse.emf.ecore.EPackage.Registry | ||
162 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage#eNS_URI | ||
163 | * @see #init() | ||
164 | * @generated | ||
165 | */ | ||
166 | private SatellitePackageImpl() { | ||
167 | super(eNS_URI, SatelliteFactory.eINSTANCE); | ||
168 | } | ||
169 | |||
170 | /** | ||
171 | * <!-- begin-user-doc --> | ||
172 | * <!-- end-user-doc --> | ||
173 | * @generated | ||
174 | */ | ||
175 | private static boolean isInited = false; | ||
176 | |||
177 | /** | ||
178 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. | ||
179 | * | ||
180 | * <p>This method is used to initialize {@link SatellitePackage#eINSTANCE} when that field is accessed. | ||
181 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @see #eNS_URI | ||
185 | * @see #createPackageContents() | ||
186 | * @see #initializePackageContents() | ||
187 | * @generated | ||
188 | */ | ||
189 | public static SatellitePackage init() { | ||
190 | if (isInited) | ||
191 | return (SatellitePackage) EPackage.Registry.INSTANCE.getEPackage(SatellitePackage.eNS_URI); | ||
192 | |||
193 | // Obtain or create and register package | ||
194 | Object registeredSatellitePackage = EPackage.Registry.INSTANCE.get(eNS_URI); | ||
195 | SatellitePackageImpl theSatellitePackage = registeredSatellitePackage instanceof SatellitePackageImpl | ||
196 | ? (SatellitePackageImpl) registeredSatellitePackage | ||
197 | : new SatellitePackageImpl(); | ||
198 | |||
199 | isInited = true; | ||
200 | |||
201 | // Create package meta-data objects | ||
202 | theSatellitePackage.createPackageContents(); | ||
203 | |||
204 | // Initialize created meta-data | ||
205 | theSatellitePackage.initializePackageContents(); | ||
206 | |||
207 | // Mark meta-data to indicate it can't be changed | ||
208 | theSatellitePackage.freeze(); | ||
209 | |||
210 | // Update the registry and return the package | ||
211 | EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, theSatellitePackage); | ||
212 | return theSatellitePackage; | ||
213 | } | ||
214 | |||
215 | /** | ||
216 | * <!-- begin-user-doc --> | ||
217 | * <!-- end-user-doc --> | ||
218 | * @generated | ||
219 | */ | ||
220 | @Override | ||
221 | public EClass getConstellationMission() { | ||
222 | return constellationMissionEClass; | ||
223 | } | ||
224 | |||
225 | /** | ||
226 | * <!-- begin-user-doc --> | ||
227 | * <!-- end-user-doc --> | ||
228 | * @generated | ||
229 | */ | ||
230 | @Override | ||
231 | public EReference getConstellationMission_GroundStationNetwork() { | ||
232 | return (EReference) constellationMissionEClass.getEStructuralFeatures().get(0); | ||
233 | } | ||
234 | |||
235 | /** | ||
236 | * <!-- begin-user-doc --> | ||
237 | * <!-- end-user-doc --> | ||
238 | * @generated | ||
239 | */ | ||
240 | @Override | ||
241 | public EReference getConstellationMission_Spacecraft() { | ||
242 | return (EReference) constellationMissionEClass.getEStructuralFeatures().get(1); | ||
243 | } | ||
244 | |||
245 | /** | ||
246 | * <!-- begin-user-doc --> | ||
247 | * <!-- end-user-doc --> | ||
248 | * @generated | ||
249 | */ | ||
250 | @Override | ||
251 | public EClass getInterferometryMission() { | ||
252 | return interferometryMissionEClass; | ||
253 | } | ||
254 | |||
255 | /** | ||
256 | * <!-- begin-user-doc --> | ||
257 | * <!-- end-user-doc --> | ||
258 | * @generated | ||
259 | */ | ||
260 | @Override | ||
261 | public EAttribute getInterferometryMission_ObservationTime() { | ||
262 | return (EAttribute) interferometryMissionEClass.getEStructuralFeatures().get(0); | ||
263 | } | ||
264 | |||
265 | /** | ||
266 | * <!-- begin-user-doc --> | ||
267 | * <!-- end-user-doc --> | ||
268 | * @generated | ||
269 | */ | ||
270 | @Override | ||
271 | public EClass getCommunicatingElement() { | ||
272 | return communicatingElementEClass; | ||
273 | } | ||
274 | |||
275 | /** | ||
276 | * <!-- begin-user-doc --> | ||
277 | * <!-- end-user-doc --> | ||
278 | * @generated | ||
279 | */ | ||
280 | @Override | ||
281 | public EReference getCommunicatingElement_CommSubsystem() { | ||
282 | return (EReference) communicatingElementEClass.getEStructuralFeatures().get(0); | ||
283 | } | ||
284 | |||
285 | /** | ||
286 | * <!-- begin-user-doc --> | ||
287 | * <!-- end-user-doc --> | ||
288 | * @generated | ||
289 | */ | ||
290 | @Override | ||
291 | public EReference getCommunicatingElement_CommunicationLink() { | ||
292 | return (EReference) communicatingElementEClass.getEStructuralFeatures().get(1); | ||
293 | } | ||
294 | |||
295 | /** | ||
296 | * <!-- begin-user-doc --> | ||
297 | * <!-- end-user-doc --> | ||
298 | * @generated | ||
299 | */ | ||
300 | @Override | ||
301 | public EClass getGroundStationNetwork() { | ||
302 | return groundStationNetworkEClass; | ||
303 | } | ||
304 | |||
305 | /** | ||
306 | * <!-- begin-user-doc --> | ||
307 | * <!-- end-user-doc --> | ||
308 | * @generated | ||
309 | */ | ||
310 | @Override | ||
311 | public EClass getSpacecraft() { | ||
312 | return spacecraftEClass; | ||
313 | } | ||
314 | |||
315 | /** | ||
316 | * <!-- begin-user-doc --> | ||
317 | * <!-- end-user-doc --> | ||
318 | * @generated | ||
319 | */ | ||
320 | @Override | ||
321 | public EReference getSpacecraft_Payload() { | ||
322 | return (EReference) spacecraftEClass.getEStructuralFeatures().get(0); | ||
323 | } | ||
324 | |||
325 | /** | ||
326 | * <!-- begin-user-doc --> | ||
327 | * <!-- end-user-doc --> | ||
328 | * @generated | ||
329 | */ | ||
330 | @Override | ||
331 | public EAttribute getSpacecraft_Kind() { | ||
332 | return (EAttribute) spacecraftEClass.getEStructuralFeatures().get(1); | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * <!-- begin-user-doc --> | ||
337 | * <!-- end-user-doc --> | ||
338 | * @generated | ||
339 | */ | ||
340 | @Override | ||
341 | public EClass getCommSubsystem() { | ||
342 | return commSubsystemEClass; | ||
343 | } | ||
344 | |||
345 | /** | ||
346 | * <!-- begin-user-doc --> | ||
347 | * <!-- end-user-doc --> | ||
348 | * @generated | ||
349 | */ | ||
350 | @Override | ||
351 | public EAttribute getCommSubsystem_Band() { | ||
352 | return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(0); | ||
353 | } | ||
354 | |||
355 | /** | ||
356 | * <!-- begin-user-doc --> | ||
357 | * <!-- end-user-doc --> | ||
358 | * @generated | ||
359 | */ | ||
360 | @Override | ||
361 | public EAttribute getCommSubsystem_Gain() { | ||
362 | return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(1); | ||
363 | } | ||
364 | |||
365 | /** | ||
366 | * <!-- begin-user-doc --> | ||
367 | * <!-- end-user-doc --> | ||
368 | * @generated | ||
369 | */ | ||
370 | @Override | ||
371 | public EClass getDirectedCommunicationLink() { | ||
372 | return directedCommunicationLinkEClass; | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * <!-- begin-user-doc --> | ||
377 | * <!-- end-user-doc --> | ||
378 | * @generated | ||
379 | */ | ||
380 | @Override | ||
381 | public EReference getDirectedCommunicationLink_Source() { | ||
382 | return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(0); | ||
383 | } | ||
384 | |||
385 | /** | ||
386 | * <!-- begin-user-doc --> | ||
387 | * <!-- end-user-doc --> | ||
388 | * @generated | ||
389 | */ | ||
390 | @Override | ||
391 | public EReference getDirectedCommunicationLink_Target() { | ||
392 | return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(1); | ||
393 | } | ||
394 | |||
395 | /** | ||
396 | * <!-- begin-user-doc --> | ||
397 | * <!-- end-user-doc --> | ||
398 | * @generated | ||
399 | */ | ||
400 | @Override | ||
401 | public EClass getPayload() { | ||
402 | return payloadEClass; | ||
403 | } | ||
404 | |||
405 | /** | ||
406 | * <!-- begin-user-doc --> | ||
407 | * <!-- end-user-doc --> | ||
408 | * @generated | ||
409 | */ | ||
410 | @Override | ||
411 | public EClass getInterferometryPayload() { | ||
412 | return interferometryPayloadEClass; | ||
413 | } | ||
414 | |||
415 | /** | ||
416 | * <!-- begin-user-doc --> | ||
417 | * <!-- end-user-doc --> | ||
418 | * @generated | ||
419 | */ | ||
420 | @Override | ||
421 | public EClass getCubeSat3U() { | ||
422 | return cubeSat3UEClass; | ||
423 | } | ||
424 | |||
425 | /** | ||
426 | * <!-- begin-user-doc --> | ||
427 | * <!-- end-user-doc --> | ||
428 | * @generated | ||
429 | */ | ||
430 | @Override | ||
431 | public EClass getCubeSat6U() { | ||
432 | return cubeSat6UEClass; | ||
433 | } | ||
434 | |||
435 | /** | ||
436 | * <!-- begin-user-doc --> | ||
437 | * <!-- end-user-doc --> | ||
438 | * @generated | ||
439 | */ | ||
440 | @Override | ||
441 | public EClass getSmallSat() { | ||
442 | return smallSatEClass; | ||
443 | } | ||
444 | |||
445 | /** | ||
446 | * <!-- begin-user-doc --> | ||
447 | * <!-- end-user-doc --> | ||
448 | * @generated | ||
449 | */ | ||
450 | @Override | ||
451 | public EClass getCubeSat() { | ||
452 | return cubeSatEClass; | ||
453 | } | ||
454 | |||
455 | /** | ||
456 | * <!-- begin-user-doc --> | ||
457 | * <!-- end-user-doc --> | ||
458 | * @generated | ||
459 | */ | ||
460 | @Override | ||
461 | public EEnum getTransceiverBand() { | ||
462 | return transceiverBandEEnum; | ||
463 | } | ||
464 | |||
465 | /** | ||
466 | * <!-- begin-user-doc --> | ||
467 | * <!-- end-user-doc --> | ||
468 | * @generated | ||
469 | */ | ||
470 | @Override | ||
471 | public EEnum getAntennaGain() { | ||
472 | return antennaGainEEnum; | ||
473 | } | ||
474 | |||
475 | /** | ||
476 | * <!-- begin-user-doc --> | ||
477 | * <!-- end-user-doc --> | ||
478 | * @generated | ||
479 | */ | ||
480 | @Override | ||
481 | public EEnum getSpacecraftKind() { | ||
482 | return spacecraftKindEEnum; | ||
483 | } | ||
484 | |||
485 | /** | ||
486 | * <!-- begin-user-doc --> | ||
487 | * <!-- end-user-doc --> | ||
488 | * @generated | ||
489 | */ | ||
490 | @Override | ||
491 | public SatelliteFactory getSatelliteFactory() { | ||
492 | return (SatelliteFactory) getEFactoryInstance(); | ||
493 | } | ||
494 | |||
495 | /** | ||
496 | * <!-- begin-user-doc --> | ||
497 | * <!-- end-user-doc --> | ||
498 | * @generated | ||
499 | */ | ||
500 | private boolean isCreated = false; | ||
501 | |||
502 | /** | ||
503 | * Creates the meta-model objects for the package. This method is | ||
504 | * guarded to have no affect on any invocation but its first. | ||
505 | * <!-- begin-user-doc --> | ||
506 | * <!-- end-user-doc --> | ||
507 | * @generated | ||
508 | */ | ||
509 | public void createPackageContents() { | ||
510 | if (isCreated) | ||
511 | return; | ||
512 | isCreated = true; | ||
513 | |||
514 | // Create classes and their features | ||
515 | constellationMissionEClass = createEClass(CONSTELLATION_MISSION); | ||
516 | createEReference(constellationMissionEClass, CONSTELLATION_MISSION__GROUND_STATION_NETWORK); | ||
517 | createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT); | ||
518 | |||
519 | interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION); | ||
520 | createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME); | ||
521 | |||
522 | communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT); | ||
523 | createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM); | ||
524 | createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMMUNICATION_LINK); | ||
525 | |||
526 | groundStationNetworkEClass = createEClass(GROUND_STATION_NETWORK); | ||
527 | |||
528 | spacecraftEClass = createEClass(SPACECRAFT); | ||
529 | createEReference(spacecraftEClass, SPACECRAFT__PAYLOAD); | ||
530 | createEAttribute(spacecraftEClass, SPACECRAFT__KIND); | ||
531 | |||
532 | commSubsystemEClass = createEClass(COMM_SUBSYSTEM); | ||
533 | createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__BAND); | ||
534 | createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__GAIN); | ||
535 | |||
536 | directedCommunicationLinkEClass = createEClass(DIRECTED_COMMUNICATION_LINK); | ||
537 | createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__SOURCE); | ||
538 | createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__TARGET); | ||
539 | |||
540 | payloadEClass = createEClass(PAYLOAD); | ||
541 | |||
542 | interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD); | ||
543 | |||
544 | cubeSat3UEClass = createEClass(CUBE_SAT3_U); | ||
545 | |||
546 | cubeSat6UEClass = createEClass(CUBE_SAT6_U); | ||
547 | |||
548 | smallSatEClass = createEClass(SMALL_SAT); | ||
549 | |||
550 | cubeSatEClass = createEClass(CUBE_SAT); | ||
551 | |||
552 | // Create enums | ||
553 | transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND); | ||
554 | antennaGainEEnum = createEEnum(ANTENNA_GAIN); | ||
555 | spacecraftKindEEnum = createEEnum(SPACECRAFT_KIND); | ||
556 | } | ||
557 | |||
558 | /** | ||
559 | * <!-- begin-user-doc --> | ||
560 | * <!-- end-user-doc --> | ||
561 | * @generated | ||
562 | */ | ||
563 | private boolean isInitialized = false; | ||
564 | |||
565 | /** | ||
566 | * Complete the initialization of the package and its meta-model. This | ||
567 | * method is guarded to have no affect on any invocation but its first. | ||
568 | * <!-- begin-user-doc --> | ||
569 | * <!-- end-user-doc --> | ||
570 | * @generated | ||
571 | */ | ||
572 | public void initializePackageContents() { | ||
573 | if (isInitialized) | ||
574 | return; | ||
575 | isInitialized = true; | ||
576 | |||
577 | // Initialize package | ||
578 | setName(eNAME); | ||
579 | setNsPrefix(eNS_PREFIX); | ||
580 | setNsURI(eNS_URI); | ||
581 | |||
582 | // Create type parameters | ||
583 | |||
584 | // Set bounds for type parameters | ||
585 | |||
586 | // Add supertypes to classes | ||
587 | interferometryMissionEClass.getESuperTypes().add(this.getConstellationMission()); | ||
588 | groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement()); | ||
589 | spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement()); | ||
590 | interferometryPayloadEClass.getESuperTypes().add(this.getPayload()); | ||
591 | cubeSat3UEClass.getESuperTypes().add(this.getCubeSat()); | ||
592 | cubeSat6UEClass.getESuperTypes().add(this.getCubeSat()); | ||
593 | smallSatEClass.getESuperTypes().add(this.getSpacecraft()); | ||
594 | cubeSatEClass.getESuperTypes().add(this.getSpacecraft()); | ||
595 | |||
596 | // Initialize classes, features, and operations; add parameters | ||
597 | initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT, | ||
598 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
599 | initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null, | ||
600 | "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, | ||
601 | IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
602 | initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, 50, | ||
603 | ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, | ||
604 | !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
605 | |||
606 | initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT, | ||
607 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
608 | initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEFloat(), "observationTime", "2.0", | ||
609 | 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, | ||
610 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
611 | |||
612 | initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT, | ||
613 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
614 | initEReference(getCommunicatingElement_CommSubsystem(), this.getCommSubsystem(), null, "commSubsystem", null, 1, | ||
615 | 2, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, | ||
616 | !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
617 | initEReference(getCommunicatingElement_CommunicationLink(), this.getDirectedCommunicationLink(), null, | ||
618 | "communicationLink", null, 0, 1, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, | ||
619 | IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
620 | |||
621 | initEClass(groundStationNetworkEClass, GroundStationNetwork.class, "GroundStationNetwork", !IS_ABSTRACT, | ||
622 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
623 | |||
624 | initEClass(spacecraftEClass, Spacecraft.class, "Spacecraft", IS_ABSTRACT, !IS_INTERFACE, | ||
625 | IS_GENERATED_INSTANCE_CLASS); | ||
626 | initEReference(getSpacecraft_Payload(), this.getPayload(), null, "payload", null, 0, 1, Spacecraft.class, | ||
627 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, | ||
628 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
629 | initEAttribute(getSpacecraft_Kind(), this.getSpacecraftKind(), "kind", null, 1, 1, Spacecraft.class, | ||
630 | IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); | ||
631 | |||
632 | initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, | ||
633 | IS_GENERATED_INSTANCE_CLASS); | ||
634 | initEAttribute(getCommSubsystem_Band(), this.getTransceiverBand(), "band", null, 1, 1, CommSubsystem.class, | ||
635 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
636 | initEAttribute(getCommSubsystem_Gain(), this.getAntennaGain(), "gain", null, 1, 1, CommSubsystem.class, | ||
637 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
638 | |||
639 | initEClass(directedCommunicationLinkEClass, DirectedCommunicationLink.class, "DirectedCommunicationLink", | ||
640 | !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
641 | initEReference(getDirectedCommunicationLink_Source(), this.getCommSubsystem(), null, "source", null, 1, 1, | ||
642 | DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, | ||
643 | IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
644 | initEReference(getDirectedCommunicationLink_Target(), this.getCommSubsystem(), null, "target", null, 1, 1, | ||
645 | DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, | ||
646 | IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
647 | |||
648 | initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
649 | |||
650 | initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT, | ||
651 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
652 | |||
653 | initEClass(cubeSat3UEClass, CubeSat3U.class, "CubeSat3U", !IS_ABSTRACT, !IS_INTERFACE, | ||
654 | IS_GENERATED_INSTANCE_CLASS); | ||
655 | |||
656 | initEClass(cubeSat6UEClass, CubeSat6U.class, "CubeSat6U", !IS_ABSTRACT, !IS_INTERFACE, | ||
657 | IS_GENERATED_INSTANCE_CLASS); | ||
658 | |||
659 | initEClass(smallSatEClass, SmallSat.class, "SmallSat", !IS_ABSTRACT, !IS_INTERFACE, | ||
660 | IS_GENERATED_INSTANCE_CLASS); | ||
661 | |||
662 | initEClass(cubeSatEClass, CubeSat.class, "CubeSat", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
663 | |||
664 | // Initialize enums and add enum literals | ||
665 | initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand"); | ||
666 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF); | ||
667 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.X); | ||
668 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.KA); | ||
669 | |||
670 | initEEnum(antennaGainEEnum, AntennaGain.class, "AntennaGain"); | ||
671 | addEEnumLiteral(antennaGainEEnum, AntennaGain.LOW); | ||
672 | addEEnumLiteral(antennaGainEEnum, AntennaGain.MEDIUM); | ||
673 | addEEnumLiteral(antennaGainEEnum, AntennaGain.HIGH); | ||
674 | |||
675 | initEEnum(spacecraftKindEEnum, SpacecraftKind.class, "SpacecraftKind"); | ||
676 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT3_U); | ||
677 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT6_U); | ||
678 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.SMALL_SAT); | ||
679 | |||
680 | // Create resource | ||
681 | createResource(eNS_URI); | ||
682 | } | ||
683 | |||
684 | } //SatellitePackageImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java new file mode 100644 index 00000000..522991ad --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SmallSatImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package hu.bme.mit.inf.dslreasoner.domains.satellite.impl; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SatellitePackage; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat; | ||
7 | |||
8 | import org.eclipse.emf.ecore.EClass; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * An implementation of the model object '<em><b>Small Sat</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public class SmallSatImpl extends SpacecraftImpl implements SmallSat { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected SmallSatImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.SMALL_SAT; | ||
35 | } | ||
36 | |||
37 | } //SmallSatImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/impl/SpacecraftImpl.java new file mode 100644 index 00000000..9d74270a --- /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,212 @@ | |||
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 | /** | ||
54 | * <!-- begin-user-doc --> | ||
55 | * <!-- end-user-doc --> | ||
56 | * @generated | ||
57 | */ | ||
58 | protected SpacecraftImpl() { | ||
59 | super(); | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * <!-- begin-user-doc --> | ||
64 | * <!-- end-user-doc --> | ||
65 | * @generated | ||
66 | */ | ||
67 | @Override | ||
68 | protected EClass eStaticClass() { | ||
69 | return SatellitePackage.Literals.SPACECRAFT; | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * <!-- begin-user-doc --> | ||
74 | * <!-- end-user-doc --> | ||
75 | * @generated | ||
76 | */ | ||
77 | @Override | ||
78 | public Payload getPayload() { | ||
79 | return payload; | ||
80 | } | ||
81 | |||
82 | /** | ||
83 | * <!-- begin-user-doc --> | ||
84 | * <!-- end-user-doc --> | ||
85 | * @generated | ||
86 | */ | ||
87 | public NotificationChain basicSetPayload(Payload newPayload, NotificationChain msgs) { | ||
88 | Payload oldPayload = payload; | ||
89 | payload = newPayload; | ||
90 | if (eNotificationRequired()) { | ||
91 | ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, | ||
92 | SatellitePackage.SPACECRAFT__PAYLOAD, oldPayload, newPayload); | ||
93 | if (msgs == null) | ||
94 | msgs = notification; | ||
95 | else | ||
96 | msgs.add(notification); | ||
97 | } | ||
98 | return msgs; | ||
99 | } | ||
100 | |||
101 | /** | ||
102 | * <!-- begin-user-doc --> | ||
103 | * <!-- end-user-doc --> | ||
104 | * @generated | ||
105 | */ | ||
106 | @Override | ||
107 | public void setPayload(Payload newPayload) { | ||
108 | if (newPayload != payload) { | ||
109 | NotificationChain msgs = null; | ||
110 | if (payload != null) | ||
111 | msgs = ((InternalEObject) payload).eInverseRemove(this, | ||
112 | EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs); | ||
113 | if (newPayload != null) | ||
114 | msgs = ((InternalEObject) newPayload).eInverseAdd(this, | ||
115 | EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs); | ||
116 | msgs = basicSetPayload(newPayload, msgs); | ||
117 | if (msgs != null) | ||
118 | msgs.dispatch(); | ||
119 | } else if (eNotificationRequired()) | ||
120 | eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, newPayload, | ||
121 | newPayload)); | ||
122 | } | ||
123 | |||
124 | /** | ||
125 | * <!-- begin-user-doc --> | ||
126 | * <!-- end-user-doc --> | ||
127 | * @generated | ||
128 | */ | ||
129 | @Override | ||
130 | public SpacecraftKind getKind() { | ||
131 | // TODO: implement this method to return the 'Kind' attribute | ||
132 | // Ensure that you remove @generated or mark it @generated NOT | ||
133 | throw new UnsupportedOperationException(); | ||
134 | } | ||
135 | |||
136 | /** | ||
137 | * <!-- begin-user-doc --> | ||
138 | * <!-- end-user-doc --> | ||
139 | * @generated | ||
140 | */ | ||
141 | @Override | ||
142 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | ||
143 | switch (featureID) { | ||
144 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
145 | return basicSetPayload(null, msgs); | ||
146 | } | ||
147 | return super.eInverseRemove(otherEnd, featureID, msgs); | ||
148 | } | ||
149 | |||
150 | /** | ||
151 | * <!-- begin-user-doc --> | ||
152 | * <!-- end-user-doc --> | ||
153 | * @generated | ||
154 | */ | ||
155 | @Override | ||
156 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
157 | switch (featureID) { | ||
158 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
159 | return getPayload(); | ||
160 | case SatellitePackage.SPACECRAFT__KIND: | ||
161 | return getKind(); | ||
162 | } | ||
163 | return super.eGet(featureID, resolve, coreType); | ||
164 | } | ||
165 | |||
166 | /** | ||
167 | * <!-- begin-user-doc --> | ||
168 | * <!-- end-user-doc --> | ||
169 | * @generated | ||
170 | */ | ||
171 | @Override | ||
172 | public void eSet(int featureID, Object newValue) { | ||
173 | switch (featureID) { | ||
174 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
175 | setPayload((Payload) newValue); | ||
176 | return; | ||
177 | } | ||
178 | super.eSet(featureID, newValue); | ||
179 | } | ||
180 | |||
181 | /** | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @generated | ||
185 | */ | ||
186 | @Override | ||
187 | public void eUnset(int featureID) { | ||
188 | switch (featureID) { | ||
189 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
190 | setPayload((Payload) null); | ||
191 | return; | ||
192 | } | ||
193 | super.eUnset(featureID); | ||
194 | } | ||
195 | |||
196 | /** | ||
197 | * <!-- begin-user-doc --> | ||
198 | * <!-- end-user-doc --> | ||
199 | * @generated | ||
200 | */ | ||
201 | @Override | ||
202 | public boolean eIsSet(int featureID) { | ||
203 | switch (featureID) { | ||
204 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
205 | return payload != null; | ||
206 | case SatellitePackage.SPACECRAFT__KIND: | ||
207 | return getKind() != KIND_EDEFAULT; | ||
208 | } | ||
209 | return super.eIsSet(featureID); | ||
210 | } | ||
211 | |||
212 | } //SpacecraftImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/util/SatelliteAdapterFactory.java new file mode 100644 index 00000000..fd948334 --- /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,347 @@ | |||
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 caseCubeSat3U(CubeSat3U object) { | ||
116 | return createCubeSat3UAdapter(); | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public Adapter caseCubeSat6U(CubeSat6U object) { | ||
121 | return createCubeSat6UAdapter(); | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public Adapter caseSmallSat(SmallSat object) { | ||
126 | return createSmallSatAdapter(); | ||
127 | } | ||
128 | |||
129 | @Override | ||
130 | public Adapter caseCubeSat(CubeSat object) { | ||
131 | return createCubeSatAdapter(); | ||
132 | } | ||
133 | |||
134 | @Override | ||
135 | public Adapter defaultCase(EObject object) { | ||
136 | return createEObjectAdapter(); | ||
137 | } | ||
138 | }; | ||
139 | |||
140 | /** | ||
141 | * Creates an adapter for the <code>target</code>. | ||
142 | * <!-- begin-user-doc --> | ||
143 | * <!-- end-user-doc --> | ||
144 | * @param target the object to adapt. | ||
145 | * @return the adapter for the <code>target</code>. | ||
146 | * @generated | ||
147 | */ | ||
148 | @Override | ||
149 | public Adapter createAdapter(Notifier target) { | ||
150 | return modelSwitch.doSwitch((EObject) target); | ||
151 | } | ||
152 | |||
153 | /** | ||
154 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission <em>Constellation Mission</em>}'. | ||
155 | * <!-- begin-user-doc --> | ||
156 | * This default implementation returns null so that we can easily ignore cases; | ||
157 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
158 | * <!-- end-user-doc --> | ||
159 | * @return the new adapter. | ||
160 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.ConstellationMission | ||
161 | * @generated | ||
162 | */ | ||
163 | public Adapter createConstellationMissionAdapter() { | ||
164 | return null; | ||
165 | } | ||
166 | |||
167 | /** | ||
168 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission <em>Interferometry Mission</em>}'. | ||
169 | * <!-- begin-user-doc --> | ||
170 | * This default implementation returns null so that we can easily ignore cases; | ||
171 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
172 | * <!-- end-user-doc --> | ||
173 | * @return the new adapter. | ||
174 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryMission | ||
175 | * @generated | ||
176 | */ | ||
177 | public Adapter createInterferometryMissionAdapter() { | ||
178 | return null; | ||
179 | } | ||
180 | |||
181 | /** | ||
182 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement <em>Communicating Element</em>}'. | ||
183 | * <!-- begin-user-doc --> | ||
184 | * This default implementation returns null so that we can easily ignore cases; | ||
185 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
186 | * <!-- end-user-doc --> | ||
187 | * @return the new adapter. | ||
188 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommunicatingElement | ||
189 | * @generated | ||
190 | */ | ||
191 | public Adapter createCommunicatingElementAdapter() { | ||
192 | return null; | ||
193 | } | ||
194 | |||
195 | /** | ||
196 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork <em>Ground Station Network</em>}'. | ||
197 | * <!-- begin-user-doc --> | ||
198 | * This default implementation returns null so that we can easily ignore cases; | ||
199 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
200 | * <!-- end-user-doc --> | ||
201 | * @return the new adapter. | ||
202 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.GroundStationNetwork | ||
203 | * @generated | ||
204 | */ | ||
205 | public Adapter createGroundStationNetworkAdapter() { | ||
206 | return null; | ||
207 | } | ||
208 | |||
209 | /** | ||
210 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft <em>Spacecraft</em>}'. | ||
211 | * <!-- begin-user-doc --> | ||
212 | * This default implementation returns null so that we can easily ignore cases; | ||
213 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
214 | * <!-- end-user-doc --> | ||
215 | * @return the new adapter. | ||
216 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Spacecraft | ||
217 | * @generated | ||
218 | */ | ||
219 | public Adapter createSpacecraftAdapter() { | ||
220 | return null; | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem <em>Comm Subsystem</em>}'. | ||
225 | * <!-- begin-user-doc --> | ||
226 | * This default implementation returns null so that we can easily ignore cases; | ||
227 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
228 | * <!-- end-user-doc --> | ||
229 | * @return the new adapter. | ||
230 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CommSubsystem | ||
231 | * @generated | ||
232 | */ | ||
233 | public Adapter createCommSubsystemAdapter() { | ||
234 | return null; | ||
235 | } | ||
236 | |||
237 | /** | ||
238 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'. | ||
239 | * <!-- begin-user-doc --> | ||
240 | * This default implementation returns null so that we can easily ignore cases; | ||
241 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
242 | * <!-- end-user-doc --> | ||
243 | * @return the new adapter. | ||
244 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.DirectedCommunicationLink | ||
245 | * @generated | ||
246 | */ | ||
247 | public Adapter createDirectedCommunicationLinkAdapter() { | ||
248 | return null; | ||
249 | } | ||
250 | |||
251 | /** | ||
252 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.Payload <em>Payload</em>}'. | ||
253 | * <!-- begin-user-doc --> | ||
254 | * This default implementation returns null so that we can easily ignore cases; | ||
255 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
256 | * <!-- end-user-doc --> | ||
257 | * @return the new adapter. | ||
258 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.Payload | ||
259 | * @generated | ||
260 | */ | ||
261 | public Adapter createPayloadAdapter() { | ||
262 | return null; | ||
263 | } | ||
264 | |||
265 | /** | ||
266 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload <em>Interferometry Payload</em>}'. | ||
267 | * <!-- begin-user-doc --> | ||
268 | * This default implementation returns null so that we can easily ignore cases; | ||
269 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
270 | * <!-- end-user-doc --> | ||
271 | * @return the new adapter. | ||
272 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.InterferometryPayload | ||
273 | * @generated | ||
274 | */ | ||
275 | public Adapter createInterferometryPayloadAdapter() { | ||
276 | return null; | ||
277 | } | ||
278 | |||
279 | /** | ||
280 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U <em>Cube Sat3 U</em>}'. | ||
281 | * <!-- begin-user-doc --> | ||
282 | * This default implementation returns null so that we can easily ignore cases; | ||
283 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
284 | * <!-- end-user-doc --> | ||
285 | * @return the new adapter. | ||
286 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat3U | ||
287 | * @generated | ||
288 | */ | ||
289 | public Adapter createCubeSat3UAdapter() { | ||
290 | return null; | ||
291 | } | ||
292 | |||
293 | /** | ||
294 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U <em>Cube Sat6 U</em>}'. | ||
295 | * <!-- begin-user-doc --> | ||
296 | * This default implementation returns null so that we can easily ignore cases; | ||
297 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
298 | * <!-- end-user-doc --> | ||
299 | * @return the new adapter. | ||
300 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat6U | ||
301 | * @generated | ||
302 | */ | ||
303 | public Adapter createCubeSat6UAdapter() { | ||
304 | return null; | ||
305 | } | ||
306 | |||
307 | /** | ||
308 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat <em>Small Sat</em>}'. | ||
309 | * <!-- begin-user-doc --> | ||
310 | * This default implementation returns null so that we can easily ignore cases; | ||
311 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
312 | * <!-- end-user-doc --> | ||
313 | * @return the new adapter. | ||
314 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.SmallSat | ||
315 | * @generated | ||
316 | */ | ||
317 | public Adapter createSmallSatAdapter() { | ||
318 | return null; | ||
319 | } | ||
320 | |||
321 | /** | ||
322 | * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat <em>Cube Sat</em>}'. | ||
323 | * <!-- begin-user-doc --> | ||
324 | * This default implementation returns null so that we can easily ignore cases; | ||
325 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
326 | * <!-- end-user-doc --> | ||
327 | * @return the new adapter. | ||
328 | * @see hu.bme.mit.inf.dslreasoner.domains.satellite.CubeSat | ||
329 | * @generated | ||
330 | */ | ||
331 | public Adapter createCubeSatAdapter() { | ||
332 | return null; | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * Creates a new adapter for the default case. | ||
337 | * <!-- begin-user-doc --> | ||
338 | * This default implementation returns null. | ||
339 | * <!-- end-user-doc --> | ||
340 | * @return the new adapter. | ||
341 | * @generated | ||
342 | */ | ||
343 | public Adapter createEObjectAdapter() { | ||
344 | return null; | ||
345 | } | ||
346 | |||
347 | } //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..08180b64 --- /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,404 @@ | |||
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 | case SatellitePackage.CUBE_SAT3_U: { | ||
141 | CubeSat3U cubeSat3U = (CubeSat3U) theEObject; | ||
142 | T result = caseCubeSat3U(cubeSat3U); | ||
143 | if (result == null) | ||
144 | result = caseCubeSat(cubeSat3U); | ||
145 | if (result == null) | ||
146 | result = caseSpacecraft(cubeSat3U); | ||
147 | if (result == null) | ||
148 | result = caseCommunicatingElement(cubeSat3U); | ||
149 | if (result == null) | ||
150 | result = defaultCase(theEObject); | ||
151 | return result; | ||
152 | } | ||
153 | case SatellitePackage.CUBE_SAT6_U: { | ||
154 | CubeSat6U cubeSat6U = (CubeSat6U) theEObject; | ||
155 | T result = caseCubeSat6U(cubeSat6U); | ||
156 | if (result == null) | ||
157 | result = caseCubeSat(cubeSat6U); | ||
158 | if (result == null) | ||
159 | result = caseSpacecraft(cubeSat6U); | ||
160 | if (result == null) | ||
161 | result = caseCommunicatingElement(cubeSat6U); | ||
162 | if (result == null) | ||
163 | result = defaultCase(theEObject); | ||
164 | return result; | ||
165 | } | ||
166 | case SatellitePackage.SMALL_SAT: { | ||
167 | SmallSat smallSat = (SmallSat) theEObject; | ||
168 | T result = caseSmallSat(smallSat); | ||
169 | if (result == null) | ||
170 | result = caseSpacecraft(smallSat); | ||
171 | if (result == null) | ||
172 | result = caseCommunicatingElement(smallSat); | ||
173 | if (result == null) | ||
174 | result = defaultCase(theEObject); | ||
175 | return result; | ||
176 | } | ||
177 | case SatellitePackage.CUBE_SAT: { | ||
178 | CubeSat cubeSat = (CubeSat) theEObject; | ||
179 | T result = caseCubeSat(cubeSat); | ||
180 | if (result == null) | ||
181 | result = caseSpacecraft(cubeSat); | ||
182 | if (result == null) | ||
183 | result = caseCommunicatingElement(cubeSat); | ||
184 | if (result == null) | ||
185 | result = defaultCase(theEObject); | ||
186 | return result; | ||
187 | } | ||
188 | default: | ||
189 | return defaultCase(theEObject); | ||
190 | } | ||
191 | } | ||
192 | |||
193 | /** | ||
194 | * Returns the result of interpreting the object as an instance of '<em>Constellation Mission</em>'. | ||
195 | * <!-- begin-user-doc --> | ||
196 | * This implementation returns null; | ||
197 | * returning a non-null result will terminate the switch. | ||
198 | * <!-- end-user-doc --> | ||
199 | * @param object the target of the switch. | ||
200 | * @return the result of interpreting the object as an instance of '<em>Constellation Mission</em>'. | ||
201 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
202 | * @generated | ||
203 | */ | ||
204 | public T caseConstellationMission(ConstellationMission object) { | ||
205 | return null; | ||
206 | } | ||
207 | |||
208 | /** | ||
209 | * Returns the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'. | ||
210 | * <!-- begin-user-doc --> | ||
211 | * This implementation returns null; | ||
212 | * returning a non-null result will terminate the switch. | ||
213 | * <!-- end-user-doc --> | ||
214 | * @param object the target of the switch. | ||
215 | * @return the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'. | ||
216 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
217 | * @generated | ||
218 | */ | ||
219 | public T caseInterferometryMission(InterferometryMission object) { | ||
220 | return null; | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * Returns the result of interpreting the object as an instance of '<em>Communicating Element</em>'. | ||
225 | * <!-- begin-user-doc --> | ||
226 | * This implementation returns null; | ||
227 | * returning a non-null result will terminate the switch. | ||
228 | * <!-- end-user-doc --> | ||
229 | * @param object the target of the switch. | ||
230 | * @return the result of interpreting the object as an instance of '<em>Communicating Element</em>'. | ||
231 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
232 | * @generated | ||
233 | */ | ||
234 | public T caseCommunicatingElement(CommunicatingElement object) { | ||
235 | return null; | ||
236 | } | ||
237 | |||
238 | /** | ||
239 | * Returns the result of interpreting the object as an instance of '<em>Ground Station Network</em>'. | ||
240 | * <!-- begin-user-doc --> | ||
241 | * This implementation returns null; | ||
242 | * returning a non-null result will terminate the switch. | ||
243 | * <!-- end-user-doc --> | ||
244 | * @param object the target of the switch. | ||
245 | * @return the result of interpreting the object as an instance of '<em>Ground Station Network</em>'. | ||
246 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
247 | * @generated | ||
248 | */ | ||
249 | public T caseGroundStationNetwork(GroundStationNetwork object) { | ||
250 | return null; | ||
251 | } | ||
252 | |||
253 | /** | ||
254 | * Returns the result of interpreting the object as an instance of '<em>Spacecraft</em>'. | ||
255 | * <!-- begin-user-doc --> | ||
256 | * This implementation returns null; | ||
257 | * returning a non-null result will terminate the switch. | ||
258 | * <!-- end-user-doc --> | ||
259 | * @param object the target of the switch. | ||
260 | * @return the result of interpreting the object as an instance of '<em>Spacecraft</em>'. | ||
261 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
262 | * @generated | ||
263 | */ | ||
264 | public T caseSpacecraft(Spacecraft object) { | ||
265 | return null; | ||
266 | } | ||
267 | |||
268 | /** | ||
269 | * Returns the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'. | ||
270 | * <!-- begin-user-doc --> | ||
271 | * This implementation returns null; | ||
272 | * returning a non-null result will terminate the switch. | ||
273 | * <!-- end-user-doc --> | ||
274 | * @param object the target of the switch. | ||
275 | * @return the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'. | ||
276 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
277 | * @generated | ||
278 | */ | ||
279 | public T caseCommSubsystem(CommSubsystem object) { | ||
280 | return null; | ||
281 | } | ||
282 | |||
283 | /** | ||
284 | * Returns the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'. | ||
285 | * <!-- begin-user-doc --> | ||
286 | * This implementation returns null; | ||
287 | * returning a non-null result will terminate the switch. | ||
288 | * <!-- end-user-doc --> | ||
289 | * @param object the target of the switch. | ||
290 | * @return the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'. | ||
291 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
292 | * @generated | ||
293 | */ | ||
294 | public T caseDirectedCommunicationLink(DirectedCommunicationLink object) { | ||
295 | return null; | ||
296 | } | ||
297 | |||
298 | /** | ||
299 | * Returns the result of interpreting the object as an instance of '<em>Payload</em>'. | ||
300 | * <!-- begin-user-doc --> | ||
301 | * This implementation returns null; | ||
302 | * returning a non-null result will terminate the switch. | ||
303 | * <!-- end-user-doc --> | ||
304 | * @param object the target of the switch. | ||
305 | * @return the result of interpreting the object as an instance of '<em>Payload</em>'. | ||
306 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
307 | * @generated | ||
308 | */ | ||
309 | public T casePayload(Payload object) { | ||
310 | return null; | ||
311 | } | ||
312 | |||
313 | /** | ||
314 | * Returns the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'. | ||
315 | * <!-- begin-user-doc --> | ||
316 | * This implementation returns null; | ||
317 | * returning a non-null result will terminate the switch. | ||
318 | * <!-- end-user-doc --> | ||
319 | * @param object the target of the switch. | ||
320 | * @return the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'. | ||
321 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
322 | * @generated | ||
323 | */ | ||
324 | public T caseInterferometryPayload(InterferometryPayload object) { | ||
325 | return null; | ||
326 | } | ||
327 | |||
328 | /** | ||
329 | * Returns the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'. | ||
330 | * <!-- begin-user-doc --> | ||
331 | * This implementation returns null; | ||
332 | * returning a non-null result will terminate the switch. | ||
333 | * <!-- end-user-doc --> | ||
334 | * @param object the target of the switch. | ||
335 | * @return the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'. | ||
336 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
337 | * @generated | ||
338 | */ | ||
339 | public T caseCubeSat3U(CubeSat3U object) { | ||
340 | return null; | ||
341 | } | ||
342 | |||
343 | /** | ||
344 | * Returns the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'. | ||
345 | * <!-- begin-user-doc --> | ||
346 | * This implementation returns null; | ||
347 | * returning a non-null result will terminate the switch. | ||
348 | * <!-- end-user-doc --> | ||
349 | * @param object the target of the switch. | ||
350 | * @return the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'. | ||
351 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
352 | * @generated | ||
353 | */ | ||
354 | public T caseCubeSat6U(CubeSat6U object) { | ||
355 | return null; | ||
356 | } | ||
357 | |||
358 | /** | ||
359 | * Returns the result of interpreting the object as an instance of '<em>Small Sat</em>'. | ||
360 | * <!-- begin-user-doc --> | ||
361 | * This implementation returns null; | ||
362 | * returning a non-null result will terminate the switch. | ||
363 | * <!-- end-user-doc --> | ||
364 | * @param object the target of the switch. | ||
365 | * @return the result of interpreting the object as an instance of '<em>Small Sat</em>'. | ||
366 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
367 | * @generated | ||
368 | */ | ||
369 | public T caseSmallSat(SmallSat object) { | ||
370 | return null; | ||
371 | } | ||
372 | |||
373 | /** | ||
374 | * Returns the result of interpreting the object as an instance of '<em>Cube Sat</em>'. | ||
375 | * <!-- begin-user-doc --> | ||
376 | * This implementation returns null; | ||
377 | * returning a non-null result will terminate the switch. | ||
378 | * <!-- end-user-doc --> | ||
379 | * @param object the target of the switch. | ||
380 | * @return the result of interpreting the object as an instance of '<em>Cube Sat</em>'. | ||
381 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
382 | * @generated | ||
383 | */ | ||
384 | public T caseCubeSat(CubeSat object) { | ||
385 | return null; | ||
386 | } | ||
387 | |||
388 | /** | ||
389 | * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
390 | * <!-- begin-user-doc --> | ||
391 | * This implementation returns null; | ||
392 | * returning a non-null result will terminate the switch, but this is the last case anyway. | ||
393 | * <!-- end-user-doc --> | ||
394 | * @param object the target of the switch. | ||
395 | * @return the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
396 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) | ||
397 | * @generated | ||
398 | */ | ||
399 | @Override | ||
400 | public T defaultCase(EObject object) { | ||
401 | return null; | ||
402 | } | ||
403 | |||
404 | } //SatelliteSwitch | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java new file mode 100644 index 00000000..75bc548d --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/AntennaGain.java | |||
@@ -0,0 +1,242 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 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/satellite/CommSubsystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java new file mode 100644 index 00000000..072a9705 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java | |||
@@ -0,0 +1,83 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 satellite.CommSubsystem#getBand <em>Band</em>}</li> | ||
17 | * <li>{@link satellite.CommSubsystem#getGain <em>Gain</em>}</li> | ||
18 | * </ul> | ||
19 | * | ||
20 | * @see satellite.SatellitePackage#getCommSubsystem() | ||
21 | * @model | ||
22 | * @generated | ||
23 | */ | ||
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 satellite.TransceiverBand}. | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <p> | ||
30 | * If the meaning of the '<em>Band</em>' attribute isn't clear, | ||
31 | * there really should be more of a description here... | ||
32 | * </p> | ||
33 | * <!-- end-user-doc --> | ||
34 | * @return the value of the '<em>Band</em>' attribute. | ||
35 | * @see satellite.TransceiverBand | ||
36 | * @see #setBand(TransceiverBand) | ||
37 | * @see satellite.SatellitePackage#getCommSubsystem_Band() | ||
38 | * @model required="true" | ||
39 | * @generated | ||
40 | */ | ||
41 | TransceiverBand getBand(); | ||
42 | |||
43 | /** | ||
44 | * Sets the value of the '{@link satellite.CommSubsystem#getBand <em>Band</em>}' attribute. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * <!-- end-user-doc --> | ||
47 | * @param value the new value of the '<em>Band</em>' attribute. | ||
48 | * @see satellite.TransceiverBand | ||
49 | * @see #getBand() | ||
50 | * @generated | ||
51 | */ | ||
52 | void setBand(TransceiverBand value); | ||
53 | |||
54 | /** | ||
55 | * Returns the value of the '<em><b>Gain</b></em>' attribute. | ||
56 | * The literals are from the enumeration {@link satellite.AntennaGain}. | ||
57 | * <!-- begin-user-doc --> | ||
58 | * <p> | ||
59 | * If the meaning of the '<em>Gain</em>' attribute isn't clear, | ||
60 | * there really should be more of a description here... | ||
61 | * </p> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @return the value of the '<em>Gain</em>' attribute. | ||
64 | * @see satellite.AntennaGain | ||
65 | * @see #setGain(AntennaGain) | ||
66 | * @see satellite.SatellitePackage#getCommSubsystem_Gain() | ||
67 | * @model required="true" | ||
68 | * @generated | ||
69 | */ | ||
70 | AntennaGain getGain(); | ||
71 | |||
72 | /** | ||
73 | * Sets the value of the '{@link satellite.CommSubsystem#getGain <em>Gain</em>}' attribute. | ||
74 | * <!-- begin-user-doc --> | ||
75 | * <!-- end-user-doc --> | ||
76 | * @param value the new value of the '<em>Gain</em>' attribute. | ||
77 | * @see satellite.AntennaGain | ||
78 | * @see #getGain() | ||
79 | * @generated | ||
80 | */ | ||
81 | void setGain(AntennaGain value); | ||
82 | |||
83 | } // CommSubsystem | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java new file mode 100644 index 00000000..b96b281f --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommunicatingElement.java | |||
@@ -0,0 +1,69 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}</li> | ||
19 | * <li>{@link satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}</li> | ||
20 | * </ul> | ||
21 | * | ||
22 | * @see satellite.SatellitePackage#getCommunicatingElement() | ||
23 | * @model abstract="true" | ||
24 | * @generated | ||
25 | */ | ||
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 satellite.CommSubsystem}. | ||
30 | * <!-- begin-user-doc --> | ||
31 | * <p> | ||
32 | * If the meaning of the '<em>Comm Subsystem</em>' containment reference list isn't clear, | ||
33 | * there really should be more of a description here... | ||
34 | * </p> | ||
35 | * <!-- end-user-doc --> | ||
36 | * @return the value of the '<em>Comm Subsystem</em>' containment reference list. | ||
37 | * @see satellite.SatellitePackage#getCommunicatingElement_CommSubsystem() | ||
38 | * @model containment="true" required="true" upper="2" | ||
39 | * @generated | ||
40 | */ | ||
41 | EList<CommSubsystem> getCommSubsystem(); | ||
42 | |||
43 | /** | ||
44 | * Returns the value of the '<em><b>Communication Link</b></em>' containment reference. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * <p> | ||
47 | * If the meaning of the '<em>Communication Link</em>' containment reference isn't clear, | ||
48 | * there really should be more of a description here... | ||
49 | * </p> | ||
50 | * <!-- end-user-doc --> | ||
51 | * @return the value of the '<em>Communication Link</em>' containment reference. | ||
52 | * @see #setCommunicationLink(DirectedCommunicationLink) | ||
53 | * @see satellite.SatellitePackage#getCommunicatingElement_CommunicationLink() | ||
54 | * @model containment="true" | ||
55 | * @generated | ||
56 | */ | ||
57 | DirectedCommunicationLink getCommunicationLink(); | ||
58 | |||
59 | /** | ||
60 | * Sets the value of the '{@link satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}' containment reference. | ||
61 | * <!-- begin-user-doc --> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @param value the new value of the '<em>Communication Link</em>' containment reference. | ||
64 | * @see #getCommunicationLink() | ||
65 | * @generated | ||
66 | */ | ||
67 | void setCommunicationLink(DirectedCommunicationLink value); | ||
68 | |||
69 | } // CommunicatingElement | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java new file mode 100644 index 00000000..9402232d --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java | |||
@@ -0,0 +1,69 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}</li> | ||
19 | * <li>{@link satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}</li> | ||
20 | * </ul> | ||
21 | * | ||
22 | * @see satellite.SatellitePackage#getConstellationMission() | ||
23 | * @model abstract="true" | ||
24 | * @generated | ||
25 | */ | ||
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 satellite.SatellitePackage#getConstellationMission_GroundStationNetwork() | ||
38 | * @model containment="true" required="true" | ||
39 | * @generated | ||
40 | */ | ||
41 | GroundStationNetwork getGroundStationNetwork(); | ||
42 | |||
43 | /** | ||
44 | * Sets the value of the '{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}' containment reference. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * <!-- end-user-doc --> | ||
47 | * @param value the new value of the '<em>Ground Station Network</em>' containment reference. | ||
48 | * @see #getGroundStationNetwork() | ||
49 | * @generated | ||
50 | */ | ||
51 | void setGroundStationNetwork(GroundStationNetwork value); | ||
52 | |||
53 | /** | ||
54 | * Returns the value of the '<em><b>Spacecraft</b></em>' containment reference list. | ||
55 | * The list contents are of type {@link satellite.Spacecraft}. | ||
56 | * <!-- begin-user-doc --> | ||
57 | * <p> | ||
58 | * If the meaning of the '<em>Spacecraft</em>' containment reference list isn't clear, | ||
59 | * there really should be more of a description here... | ||
60 | * </p> | ||
61 | * <!-- end-user-doc --> | ||
62 | * @return the value of the '<em>Spacecraft</em>' containment reference list. | ||
63 | * @see satellite.SatellitePackage#getConstellationMission_Spacecraft() | ||
64 | * @model containment="true" lower="2" upper="50" | ||
65 | * @generated | ||
66 | */ | ||
67 | EList<Spacecraft> getSpacecraft(); | ||
68 | |||
69 | } // ConstellationMission | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java new file mode 100644 index 00000000..5758e165 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat3U.java | |||
@@ -0,0 +1,16 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Cube Sat3 U</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * | ||
11 | * @see satellite.SatellitePackage#getCubeSat3U() | ||
12 | * @model | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface CubeSat3U extends Spacecraft { | ||
16 | } // CubeSat3U | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java new file mode 100644 index 00000000..a8d8830f --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CubeSat6U.java | |||
@@ -0,0 +1,16 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Cube Sat6 U</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * | ||
11 | * @see satellite.SatellitePackage#getCubeSat6U() | ||
12 | * @model | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface CubeSat6U extends Spacecraft { | ||
16 | } // CubeSat6U | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java new file mode 100644 index 00000000..67c8fcc8 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/DirectedCommunicationLink.java | |||
@@ -0,0 +1,77 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 satellite.DirectedCommunicationLink#getSource <em>Source</em>}</li> | ||
17 | * <li>{@link satellite.DirectedCommunicationLink#getTarget <em>Target</em>}</li> | ||
18 | * </ul> | ||
19 | * | ||
20 | * @see satellite.SatellitePackage#getDirectedCommunicationLink() | ||
21 | * @model | ||
22 | * @generated | ||
23 | */ | ||
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 satellite.SatellitePackage#getDirectedCommunicationLink_Source() | ||
36 | * @model required="true" | ||
37 | * @generated | ||
38 | */ | ||
39 | CommSubsystem getSource(); | ||
40 | |||
41 | /** | ||
42 | * Sets the value of the '{@link satellite.DirectedCommunicationLink#getSource <em>Source</em>}' reference. | ||
43 | * <!-- begin-user-doc --> | ||
44 | * <!-- end-user-doc --> | ||
45 | * @param value the new value of the '<em>Source</em>' reference. | ||
46 | * @see #getSource() | ||
47 | * @generated | ||
48 | */ | ||
49 | void setSource(CommSubsystem value); | ||
50 | |||
51 | /** | ||
52 | * Returns the value of the '<em><b>Target</b></em>' reference. | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <p> | ||
55 | * If the meaning of the '<em>Target</em>' reference isn't clear, | ||
56 | * there really should be more of a description here... | ||
57 | * </p> | ||
58 | * <!-- end-user-doc --> | ||
59 | * @return the value of the '<em>Target</em>' reference. | ||
60 | * @see #setTarget(CommSubsystem) | ||
61 | * @see satellite.SatellitePackage#getDirectedCommunicationLink_Target() | ||
62 | * @model required="true" | ||
63 | * @generated | ||
64 | */ | ||
65 | CommSubsystem getTarget(); | ||
66 | |||
67 | /** | ||
68 | * Sets the value of the '{@link satellite.DirectedCommunicationLink#getTarget <em>Target</em>}' reference. | ||
69 | * <!-- begin-user-doc --> | ||
70 | * <!-- end-user-doc --> | ||
71 | * @param value the new value of the '<em>Target</em>' reference. | ||
72 | * @see #getTarget() | ||
73 | * @generated | ||
74 | */ | ||
75 | void setTarget(CommSubsystem value); | ||
76 | |||
77 | } // DirectedCommunicationLink | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java new file mode 100644 index 00000000..8df20913 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/GroundStationNetwork.java | |||
@@ -0,0 +1,16 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Ground Station Network</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * | ||
11 | * @see satellite.SatellitePackage#getGroundStationNetwork() | ||
12 | * @model | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface GroundStationNetwork extends CommunicatingElement { | ||
16 | } // GroundStationNetwork | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java new file mode 100644 index 00000000..967923d4 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java | |||
@@ -0,0 +1,49 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Interferometry Mission</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * <p> | ||
11 | * The following features are supported: | ||
12 | * </p> | ||
13 | * <ul> | ||
14 | * <li>{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}</li> | ||
15 | * </ul> | ||
16 | * | ||
17 | * @see satellite.SatellitePackage#getInterferometryMission() | ||
18 | * @model | ||
19 | * @generated | ||
20 | */ | ||
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 satellite.SatellitePackage#getInterferometryMission_ObservationTime() | ||
34 | * @model default="2.0" required="true" | ||
35 | * @generated | ||
36 | */ | ||
37 | float getObservationTime(); | ||
38 | |||
39 | /** | ||
40 | * Sets the value of the '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}' attribute. | ||
41 | * <!-- begin-user-doc --> | ||
42 | * <!-- end-user-doc --> | ||
43 | * @param value the new value of the '<em>Observation Time</em>' attribute. | ||
44 | * @see #getObservationTime() | ||
45 | * @generated | ||
46 | */ | ||
47 | void setObservationTime(float value); | ||
48 | |||
49 | } // InterferometryMission | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java new file mode 100644 index 00000000..67156bdb --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryPayload.java | |||
@@ -0,0 +1,16 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Interferometry Payload</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * | ||
11 | * @see satellite.SatellitePackage#getInterferometryPayload() | ||
12 | * @model | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface InterferometryPayload extends Payload { | ||
16 | } // InterferometryPayload | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java new file mode 100644 index 00000000..3222fd3b --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Payload.java | |||
@@ -0,0 +1,18 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 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/satellite/SatelliteFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatelliteFactory.java new file mode 100644 index 00000000..04cb80ce --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatelliteFactory.java | |||
@@ -0,0 +1,105 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 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 = satellite.impl.SatelliteFactoryImpl.init(); | ||
23 | |||
24 | /** | ||
25 | * Returns a new object of class '<em>Interferometry Mission</em>'. | ||
26 | * <!-- begin-user-doc --> | ||
27 | * <!-- end-user-doc --> | ||
28 | * @return a new object of class '<em>Interferometry Mission</em>'. | ||
29 | * @generated | ||
30 | */ | ||
31 | InterferometryMission createInterferometryMission(); | ||
32 | |||
33 | /** | ||
34 | * Returns a new object of class '<em>Ground Station Network</em>'. | ||
35 | * <!-- begin-user-doc --> | ||
36 | * <!-- end-user-doc --> | ||
37 | * @return a new object of class '<em>Ground Station Network</em>'. | ||
38 | * @generated | ||
39 | */ | ||
40 | GroundStationNetwork createGroundStationNetwork(); | ||
41 | |||
42 | /** | ||
43 | * Returns a new object of class '<em>Comm Subsystem</em>'. | ||
44 | * <!-- begin-user-doc --> | ||
45 | * <!-- end-user-doc --> | ||
46 | * @return a new object of class '<em>Comm Subsystem</em>'. | ||
47 | * @generated | ||
48 | */ | ||
49 | CommSubsystem createCommSubsystem(); | ||
50 | |||
51 | /** | ||
52 | * Returns a new object of class '<em>Directed Communication Link</em>'. | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <!-- end-user-doc --> | ||
55 | * @return a new object of class '<em>Directed Communication Link</em>'. | ||
56 | * @generated | ||
57 | */ | ||
58 | DirectedCommunicationLink createDirectedCommunicationLink(); | ||
59 | |||
60 | /** | ||
61 | * Returns a new object of class '<em>Interferometry Payload</em>'. | ||
62 | * <!-- begin-user-doc --> | ||
63 | * <!-- end-user-doc --> | ||
64 | * @return a new object of class '<em>Interferometry Payload</em>'. | ||
65 | * @generated | ||
66 | */ | ||
67 | InterferometryPayload createInterferometryPayload(); | ||
68 | |||
69 | /** | ||
70 | * Returns a new object of class '<em>Cube Sat3 U</em>'. | ||
71 | * <!-- begin-user-doc --> | ||
72 | * <!-- end-user-doc --> | ||
73 | * @return a new object of class '<em>Cube Sat3 U</em>'. | ||
74 | * @generated | ||
75 | */ | ||
76 | CubeSat3U createCubeSat3U(); | ||
77 | |||
78 | /** | ||
79 | * Returns a new object of class '<em>Cube Sat6 U</em>'. | ||
80 | * <!-- begin-user-doc --> | ||
81 | * <!-- end-user-doc --> | ||
82 | * @return a new object of class '<em>Cube Sat6 U</em>'. | ||
83 | * @generated | ||
84 | */ | ||
85 | CubeSat6U createCubeSat6U(); | ||
86 | |||
87 | /** | ||
88 | * Returns a new object of class '<em>Small Sat</em>'. | ||
89 | * <!-- begin-user-doc --> | ||
90 | * <!-- end-user-doc --> | ||
91 | * @return a new object of class '<em>Small Sat</em>'. | ||
92 | * @generated | ||
93 | */ | ||
94 | SmallSat createSmallSat(); | ||
95 | |||
96 | /** | ||
97 | * Returns the package supported by this factory. | ||
98 | * <!-- begin-user-doc --> | ||
99 | * <!-- end-user-doc --> | ||
100 | * @return the package supported by this factory. | ||
101 | * @generated | ||
102 | */ | ||
103 | SatellitePackage getSatellitePackage(); | ||
104 | |||
105 | } //SatelliteFactory | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java new file mode 100644 index 00000000..f0d80ac2 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java | |||
@@ -0,0 +1,1223 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 satellite.SatelliteFactory | ||
24 | * @model kind="package" | ||
25 | * annotation="http://www.eclipse.org/emf/2002/Ecore settingDelegates='org.eclipse.viatra.query.querybasedfeature'" | ||
26 | * @generated | ||
27 | */ | ||
28 | public interface SatellitePackage extends EPackage { | ||
29 | /** | ||
30 | * The package name. | ||
31 | * <!-- begin-user-doc --> | ||
32 | * <!-- end-user-doc --> | ||
33 | * @generated | ||
34 | */ | ||
35 | String eNAME = "satellite"; | ||
36 | |||
37 | /** | ||
38 | * The package namespace URI. | ||
39 | * <!-- begin-user-doc --> | ||
40 | * <!-- end-user-doc --> | ||
41 | * @generated | ||
42 | */ | ||
43 | String eNS_URI = "http://www.example.org/satellite"; | ||
44 | |||
45 | /** | ||
46 | * The package namespace name. | ||
47 | * <!-- begin-user-doc --> | ||
48 | * <!-- end-user-doc --> | ||
49 | * @generated | ||
50 | */ | ||
51 | String eNS_PREFIX = "satellite"; | ||
52 | |||
53 | /** | ||
54 | * The singleton instance of the package. | ||
55 | * <!-- begin-user-doc --> | ||
56 | * <!-- end-user-doc --> | ||
57 | * @generated | ||
58 | */ | ||
59 | SatellitePackage eINSTANCE = satellite.impl.SatellitePackageImpl.init(); | ||
60 | |||
61 | /** | ||
62 | * The meta object id for the '{@link satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class. | ||
63 | * <!-- begin-user-doc --> | ||
64 | * <!-- end-user-doc --> | ||
65 | * @see satellite.impl.ConstellationMissionImpl | ||
66 | * @see satellite.impl.SatellitePackageImpl#getConstellationMission() | ||
67 | * @generated | ||
68 | */ | ||
69 | int CONSTELLATION_MISSION = 0; | ||
70 | |||
71 | /** | ||
72 | * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference. | ||
73 | * <!-- begin-user-doc --> | ||
74 | * <!-- end-user-doc --> | ||
75 | * @generated | ||
76 | * @ordered | ||
77 | */ | ||
78 | int CONSTELLATION_MISSION__GROUND_STATION_NETWORK = 0; | ||
79 | |||
80 | /** | ||
81 | * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list. | ||
82 | * <!-- begin-user-doc --> | ||
83 | * <!-- end-user-doc --> | ||
84 | * @generated | ||
85 | * @ordered | ||
86 | */ | ||
87 | int CONSTELLATION_MISSION__SPACECRAFT = 1; | ||
88 | |||
89 | /** | ||
90 | * The number of structural features of the '<em>Constellation Mission</em>' class. | ||
91 | * <!-- begin-user-doc --> | ||
92 | * <!-- end-user-doc --> | ||
93 | * @generated | ||
94 | * @ordered | ||
95 | */ | ||
96 | int CONSTELLATION_MISSION_FEATURE_COUNT = 2; | ||
97 | |||
98 | /** | ||
99 | * The number of operations of the '<em>Constellation Mission</em>' class. | ||
100 | * <!-- begin-user-doc --> | ||
101 | * <!-- end-user-doc --> | ||
102 | * @generated | ||
103 | * @ordered | ||
104 | */ | ||
105 | int CONSTELLATION_MISSION_OPERATION_COUNT = 0; | ||
106 | |||
107 | /** | ||
108 | * The meta object id for the '{@link satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class. | ||
109 | * <!-- begin-user-doc --> | ||
110 | * <!-- end-user-doc --> | ||
111 | * @see satellite.impl.InterferometryMissionImpl | ||
112 | * @see satellite.impl.SatellitePackageImpl#getInterferometryMission() | ||
113 | * @generated | ||
114 | */ | ||
115 | int INTERFEROMETRY_MISSION = 1; | ||
116 | |||
117 | /** | ||
118 | * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference. | ||
119 | * <!-- begin-user-doc --> | ||
120 | * <!-- end-user-doc --> | ||
121 | * @generated | ||
122 | * @ordered | ||
123 | */ | ||
124 | int INTERFEROMETRY_MISSION__GROUND_STATION_NETWORK = CONSTELLATION_MISSION__GROUND_STATION_NETWORK; | ||
125 | |||
126 | /** | ||
127 | * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list. | ||
128 | * <!-- begin-user-doc --> | ||
129 | * <!-- end-user-doc --> | ||
130 | * @generated | ||
131 | * @ordered | ||
132 | */ | ||
133 | int INTERFEROMETRY_MISSION__SPACECRAFT = CONSTELLATION_MISSION__SPACECRAFT; | ||
134 | |||
135 | /** | ||
136 | * The feature id for the '<em><b>Observation Time</b></em>' attribute. | ||
137 | * <!-- begin-user-doc --> | ||
138 | * <!-- end-user-doc --> | ||
139 | * @generated | ||
140 | * @ordered | ||
141 | */ | ||
142 | int INTERFEROMETRY_MISSION__OBSERVATION_TIME = CONSTELLATION_MISSION_FEATURE_COUNT + 0; | ||
143 | |||
144 | /** | ||
145 | * The number of structural features of the '<em>Interferometry Mission</em>' class. | ||
146 | * <!-- begin-user-doc --> | ||
147 | * <!-- end-user-doc --> | ||
148 | * @generated | ||
149 | * @ordered | ||
150 | */ | ||
151 | int INTERFEROMETRY_MISSION_FEATURE_COUNT = CONSTELLATION_MISSION_FEATURE_COUNT + 1; | ||
152 | |||
153 | /** | ||
154 | * The number of operations of the '<em>Interferometry Mission</em>' class. | ||
155 | * <!-- begin-user-doc --> | ||
156 | * <!-- end-user-doc --> | ||
157 | * @generated | ||
158 | * @ordered | ||
159 | */ | ||
160 | int INTERFEROMETRY_MISSION_OPERATION_COUNT = CONSTELLATION_MISSION_OPERATION_COUNT + 0; | ||
161 | |||
162 | /** | ||
163 | * The meta object id for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class. | ||
164 | * <!-- begin-user-doc --> | ||
165 | * <!-- end-user-doc --> | ||
166 | * @see satellite.impl.CommunicatingElementImpl | ||
167 | * @see satellite.impl.SatellitePackageImpl#getCommunicatingElement() | ||
168 | * @generated | ||
169 | */ | ||
170 | int COMMUNICATING_ELEMENT = 2; | ||
171 | |||
172 | /** | ||
173 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
174 | * <!-- begin-user-doc --> | ||
175 | * <!-- end-user-doc --> | ||
176 | * @generated | ||
177 | * @ordered | ||
178 | */ | ||
179 | int COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = 0; | ||
180 | |||
181 | /** | ||
182 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
183 | * <!-- begin-user-doc --> | ||
184 | * <!-- end-user-doc --> | ||
185 | * @generated | ||
186 | * @ordered | ||
187 | */ | ||
188 | int COMMUNICATING_ELEMENT__COMMUNICATION_LINK = 1; | ||
189 | |||
190 | /** | ||
191 | * The number of structural features of the '<em>Communicating Element</em>' class. | ||
192 | * <!-- begin-user-doc --> | ||
193 | * <!-- end-user-doc --> | ||
194 | * @generated | ||
195 | * @ordered | ||
196 | */ | ||
197 | int COMMUNICATING_ELEMENT_FEATURE_COUNT = 2; | ||
198 | |||
199 | /** | ||
200 | * The number of operations of the '<em>Communicating Element</em>' class. | ||
201 | * <!-- begin-user-doc --> | ||
202 | * <!-- end-user-doc --> | ||
203 | * @generated | ||
204 | * @ordered | ||
205 | */ | ||
206 | int COMMUNICATING_ELEMENT_OPERATION_COUNT = 0; | ||
207 | |||
208 | /** | ||
209 | * The meta object id for the '{@link satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class. | ||
210 | * <!-- begin-user-doc --> | ||
211 | * <!-- end-user-doc --> | ||
212 | * @see satellite.impl.GroundStationNetworkImpl | ||
213 | * @see satellite.impl.SatellitePackageImpl#getGroundStationNetwork() | ||
214 | * @generated | ||
215 | */ | ||
216 | int GROUND_STATION_NETWORK = 3; | ||
217 | |||
218 | /** | ||
219 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
220 | * <!-- begin-user-doc --> | ||
221 | * <!-- end-user-doc --> | ||
222 | * @generated | ||
223 | * @ordered | ||
224 | */ | ||
225 | int GROUND_STATION_NETWORK__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM; | ||
226 | |||
227 | /** | ||
228 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
229 | * <!-- begin-user-doc --> | ||
230 | * <!-- end-user-doc --> | ||
231 | * @generated | ||
232 | * @ordered | ||
233 | */ | ||
234 | int GROUND_STATION_NETWORK__COMMUNICATION_LINK = COMMUNICATING_ELEMENT__COMMUNICATION_LINK; | ||
235 | |||
236 | /** | ||
237 | * The number of structural features of the '<em>Ground Station Network</em>' class. | ||
238 | * <!-- begin-user-doc --> | ||
239 | * <!-- end-user-doc --> | ||
240 | * @generated | ||
241 | * @ordered | ||
242 | */ | ||
243 | int GROUND_STATION_NETWORK_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0; | ||
244 | |||
245 | /** | ||
246 | * The number of operations of the '<em>Ground Station Network</em>' class. | ||
247 | * <!-- begin-user-doc --> | ||
248 | * <!-- end-user-doc --> | ||
249 | * @generated | ||
250 | * @ordered | ||
251 | */ | ||
252 | int GROUND_STATION_NETWORK_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0; | ||
253 | |||
254 | /** | ||
255 | * The meta object id for the '{@link satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class. | ||
256 | * <!-- begin-user-doc --> | ||
257 | * <!-- end-user-doc --> | ||
258 | * @see satellite.impl.SpacecraftImpl | ||
259 | * @see satellite.impl.SatellitePackageImpl#getSpacecraft() | ||
260 | * @generated | ||
261 | */ | ||
262 | int SPACECRAFT = 4; | ||
263 | |||
264 | /** | ||
265 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
266 | * <!-- begin-user-doc --> | ||
267 | * <!-- end-user-doc --> | ||
268 | * @generated | ||
269 | * @ordered | ||
270 | */ | ||
271 | int SPACECRAFT__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM; | ||
272 | |||
273 | /** | ||
274 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
275 | * <!-- begin-user-doc --> | ||
276 | * <!-- end-user-doc --> | ||
277 | * @generated | ||
278 | * @ordered | ||
279 | */ | ||
280 | int SPACECRAFT__COMMUNICATION_LINK = COMMUNICATING_ELEMENT__COMMUNICATION_LINK; | ||
281 | |||
282 | /** | ||
283 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
284 | * <!-- begin-user-doc --> | ||
285 | * <!-- end-user-doc --> | ||
286 | * @generated | ||
287 | * @ordered | ||
288 | */ | ||
289 | int SPACECRAFT__PAYLOAD = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0; | ||
290 | |||
291 | /** | ||
292 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
293 | * <!-- begin-user-doc --> | ||
294 | * <!-- end-user-doc --> | ||
295 | * @generated | ||
296 | * @ordered | ||
297 | */ | ||
298 | int SPACECRAFT__KIND = COMMUNICATING_ELEMENT_FEATURE_COUNT + 1; | ||
299 | |||
300 | /** | ||
301 | * The number of structural features of the '<em>Spacecraft</em>' class. | ||
302 | * <!-- begin-user-doc --> | ||
303 | * <!-- end-user-doc --> | ||
304 | * @generated | ||
305 | * @ordered | ||
306 | */ | ||
307 | int SPACECRAFT_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 2; | ||
308 | |||
309 | /** | ||
310 | * The number of operations of the '<em>Spacecraft</em>' class. | ||
311 | * <!-- begin-user-doc --> | ||
312 | * <!-- end-user-doc --> | ||
313 | * @generated | ||
314 | * @ordered | ||
315 | */ | ||
316 | int SPACECRAFT_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0; | ||
317 | |||
318 | /** | ||
319 | * The meta object id for the '{@link satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class. | ||
320 | * <!-- begin-user-doc --> | ||
321 | * <!-- end-user-doc --> | ||
322 | * @see satellite.impl.CommSubsystemImpl | ||
323 | * @see satellite.impl.SatellitePackageImpl#getCommSubsystem() | ||
324 | * @generated | ||
325 | */ | ||
326 | int COMM_SUBSYSTEM = 5; | ||
327 | |||
328 | /** | ||
329 | * The feature id for the '<em><b>Band</b></em>' attribute. | ||
330 | * <!-- begin-user-doc --> | ||
331 | * <!-- end-user-doc --> | ||
332 | * @generated | ||
333 | * @ordered | ||
334 | */ | ||
335 | int COMM_SUBSYSTEM__BAND = 0; | ||
336 | |||
337 | /** | ||
338 | * The feature id for the '<em><b>Gain</b></em>' attribute. | ||
339 | * <!-- begin-user-doc --> | ||
340 | * <!-- end-user-doc --> | ||
341 | * @generated | ||
342 | * @ordered | ||
343 | */ | ||
344 | int COMM_SUBSYSTEM__GAIN = 1; | ||
345 | |||
346 | /** | ||
347 | * The number of structural features of the '<em>Comm Subsystem</em>' class. | ||
348 | * <!-- begin-user-doc --> | ||
349 | * <!-- end-user-doc --> | ||
350 | * @generated | ||
351 | * @ordered | ||
352 | */ | ||
353 | int COMM_SUBSYSTEM_FEATURE_COUNT = 2; | ||
354 | |||
355 | /** | ||
356 | * The number of operations of the '<em>Comm Subsystem</em>' class. | ||
357 | * <!-- begin-user-doc --> | ||
358 | * <!-- end-user-doc --> | ||
359 | * @generated | ||
360 | * @ordered | ||
361 | */ | ||
362 | int COMM_SUBSYSTEM_OPERATION_COUNT = 0; | ||
363 | |||
364 | /** | ||
365 | * The meta object id for the '{@link satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class. | ||
366 | * <!-- begin-user-doc --> | ||
367 | * <!-- end-user-doc --> | ||
368 | * @see satellite.impl.DirectedCommunicationLinkImpl | ||
369 | * @see satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink() | ||
370 | * @generated | ||
371 | */ | ||
372 | int DIRECTED_COMMUNICATION_LINK = 6; | ||
373 | |||
374 | /** | ||
375 | * The feature id for the '<em><b>Source</b></em>' reference. | ||
376 | * <!-- begin-user-doc --> | ||
377 | * <!-- end-user-doc --> | ||
378 | * @generated | ||
379 | * @ordered | ||
380 | */ | ||
381 | int DIRECTED_COMMUNICATION_LINK__SOURCE = 0; | ||
382 | |||
383 | /** | ||
384 | * The feature id for the '<em><b>Target</b></em>' reference. | ||
385 | * <!-- begin-user-doc --> | ||
386 | * <!-- end-user-doc --> | ||
387 | * @generated | ||
388 | * @ordered | ||
389 | */ | ||
390 | int DIRECTED_COMMUNICATION_LINK__TARGET = 1; | ||
391 | |||
392 | /** | ||
393 | * The number of structural features of the '<em>Directed Communication Link</em>' class. | ||
394 | * <!-- begin-user-doc --> | ||
395 | * <!-- end-user-doc --> | ||
396 | * @generated | ||
397 | * @ordered | ||
398 | */ | ||
399 | int DIRECTED_COMMUNICATION_LINK_FEATURE_COUNT = 2; | ||
400 | |||
401 | /** | ||
402 | * The number of operations of the '<em>Directed Communication Link</em>' class. | ||
403 | * <!-- begin-user-doc --> | ||
404 | * <!-- end-user-doc --> | ||
405 | * @generated | ||
406 | * @ordered | ||
407 | */ | ||
408 | int DIRECTED_COMMUNICATION_LINK_OPERATION_COUNT = 0; | ||
409 | |||
410 | /** | ||
411 | * The meta object id for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class. | ||
412 | * <!-- begin-user-doc --> | ||
413 | * <!-- end-user-doc --> | ||
414 | * @see satellite.impl.PayloadImpl | ||
415 | * @see satellite.impl.SatellitePackageImpl#getPayload() | ||
416 | * @generated | ||
417 | */ | ||
418 | int PAYLOAD = 7; | ||
419 | |||
420 | /** | ||
421 | * The number of structural features of the '<em>Payload</em>' class. | ||
422 | * <!-- begin-user-doc --> | ||
423 | * <!-- end-user-doc --> | ||
424 | * @generated | ||
425 | * @ordered | ||
426 | */ | ||
427 | int PAYLOAD_FEATURE_COUNT = 0; | ||
428 | |||
429 | /** | ||
430 | * The number of operations of the '<em>Payload</em>' class. | ||
431 | * <!-- begin-user-doc --> | ||
432 | * <!-- end-user-doc --> | ||
433 | * @generated | ||
434 | * @ordered | ||
435 | */ | ||
436 | int PAYLOAD_OPERATION_COUNT = 0; | ||
437 | |||
438 | /** | ||
439 | * The meta object id for the '{@link satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class. | ||
440 | * <!-- begin-user-doc --> | ||
441 | * <!-- end-user-doc --> | ||
442 | * @see satellite.impl.InterferometryPayloadImpl | ||
443 | * @see satellite.impl.SatellitePackageImpl#getInterferometryPayload() | ||
444 | * @generated | ||
445 | */ | ||
446 | int INTERFEROMETRY_PAYLOAD = 8; | ||
447 | |||
448 | /** | ||
449 | * The number of structural features of the '<em>Interferometry Payload</em>' class. | ||
450 | * <!-- begin-user-doc --> | ||
451 | * <!-- end-user-doc --> | ||
452 | * @generated | ||
453 | * @ordered | ||
454 | */ | ||
455 | int INTERFEROMETRY_PAYLOAD_FEATURE_COUNT = PAYLOAD_FEATURE_COUNT + 0; | ||
456 | |||
457 | /** | ||
458 | * The number of operations of the '<em>Interferometry Payload</em>' class. | ||
459 | * <!-- begin-user-doc --> | ||
460 | * <!-- end-user-doc --> | ||
461 | * @generated | ||
462 | * @ordered | ||
463 | */ | ||
464 | int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0; | ||
465 | |||
466 | /** | ||
467 | * The meta object id for the '{@link satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class. | ||
468 | * <!-- begin-user-doc --> | ||
469 | * <!-- end-user-doc --> | ||
470 | * @see satellite.impl.CubeSat3UImpl | ||
471 | * @see satellite.impl.SatellitePackageImpl#getCubeSat3U() | ||
472 | * @generated | ||
473 | */ | ||
474 | int CUBE_SAT3_U = 9; | ||
475 | |||
476 | /** | ||
477 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
478 | * <!-- begin-user-doc --> | ||
479 | * <!-- end-user-doc --> | ||
480 | * @generated | ||
481 | * @ordered | ||
482 | */ | ||
483 | int CUBE_SAT3_U__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM; | ||
484 | |||
485 | /** | ||
486 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
487 | * <!-- begin-user-doc --> | ||
488 | * <!-- end-user-doc --> | ||
489 | * @generated | ||
490 | * @ordered | ||
491 | */ | ||
492 | int CUBE_SAT3_U__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK; | ||
493 | |||
494 | /** | ||
495 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
496 | * <!-- begin-user-doc --> | ||
497 | * <!-- end-user-doc --> | ||
498 | * @generated | ||
499 | * @ordered | ||
500 | */ | ||
501 | int CUBE_SAT3_U__PAYLOAD = SPACECRAFT__PAYLOAD; | ||
502 | |||
503 | /** | ||
504 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
505 | * <!-- begin-user-doc --> | ||
506 | * <!-- end-user-doc --> | ||
507 | * @generated | ||
508 | * @ordered | ||
509 | */ | ||
510 | int CUBE_SAT3_U__KIND = SPACECRAFT__KIND; | ||
511 | |||
512 | /** | ||
513 | * The number of structural features of the '<em>Cube Sat3 U</em>' class. | ||
514 | * <!-- begin-user-doc --> | ||
515 | * <!-- end-user-doc --> | ||
516 | * @generated | ||
517 | * @ordered | ||
518 | */ | ||
519 | int CUBE_SAT3_U_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0; | ||
520 | |||
521 | /** | ||
522 | * The number of operations of the '<em>Cube Sat3 U</em>' class. | ||
523 | * <!-- begin-user-doc --> | ||
524 | * <!-- end-user-doc --> | ||
525 | * @generated | ||
526 | * @ordered | ||
527 | */ | ||
528 | int CUBE_SAT3_U_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0; | ||
529 | |||
530 | /** | ||
531 | * The meta object id for the '{@link satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class. | ||
532 | * <!-- begin-user-doc --> | ||
533 | * <!-- end-user-doc --> | ||
534 | * @see satellite.impl.CubeSat6UImpl | ||
535 | * @see satellite.impl.SatellitePackageImpl#getCubeSat6U() | ||
536 | * @generated | ||
537 | */ | ||
538 | int CUBE_SAT6_U = 10; | ||
539 | |||
540 | /** | ||
541 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
542 | * <!-- begin-user-doc --> | ||
543 | * <!-- end-user-doc --> | ||
544 | * @generated | ||
545 | * @ordered | ||
546 | */ | ||
547 | int CUBE_SAT6_U__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM; | ||
548 | |||
549 | /** | ||
550 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
551 | * <!-- begin-user-doc --> | ||
552 | * <!-- end-user-doc --> | ||
553 | * @generated | ||
554 | * @ordered | ||
555 | */ | ||
556 | int CUBE_SAT6_U__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK; | ||
557 | |||
558 | /** | ||
559 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
560 | * <!-- begin-user-doc --> | ||
561 | * <!-- end-user-doc --> | ||
562 | * @generated | ||
563 | * @ordered | ||
564 | */ | ||
565 | int CUBE_SAT6_U__PAYLOAD = SPACECRAFT__PAYLOAD; | ||
566 | |||
567 | /** | ||
568 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
569 | * <!-- begin-user-doc --> | ||
570 | * <!-- end-user-doc --> | ||
571 | * @generated | ||
572 | * @ordered | ||
573 | */ | ||
574 | int CUBE_SAT6_U__KIND = SPACECRAFT__KIND; | ||
575 | |||
576 | /** | ||
577 | * The number of structural features of the '<em>Cube Sat6 U</em>' class. | ||
578 | * <!-- begin-user-doc --> | ||
579 | * <!-- end-user-doc --> | ||
580 | * @generated | ||
581 | * @ordered | ||
582 | */ | ||
583 | int CUBE_SAT6_U_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0; | ||
584 | |||
585 | /** | ||
586 | * The number of operations of the '<em>Cube Sat6 U</em>' class. | ||
587 | * <!-- begin-user-doc --> | ||
588 | * <!-- end-user-doc --> | ||
589 | * @generated | ||
590 | * @ordered | ||
591 | */ | ||
592 | int CUBE_SAT6_U_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0; | ||
593 | |||
594 | /** | ||
595 | * The meta object id for the '{@link satellite.impl.SmallSatImpl <em>Small Sat</em>}' class. | ||
596 | * <!-- begin-user-doc --> | ||
597 | * <!-- end-user-doc --> | ||
598 | * @see satellite.impl.SmallSatImpl | ||
599 | * @see satellite.impl.SatellitePackageImpl#getSmallSat() | ||
600 | * @generated | ||
601 | */ | ||
602 | int SMALL_SAT = 11; | ||
603 | |||
604 | /** | ||
605 | * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list. | ||
606 | * <!-- begin-user-doc --> | ||
607 | * <!-- end-user-doc --> | ||
608 | * @generated | ||
609 | * @ordered | ||
610 | */ | ||
611 | int SMALL_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM; | ||
612 | |||
613 | /** | ||
614 | * The feature id for the '<em><b>Communication Link</b></em>' containment reference. | ||
615 | * <!-- begin-user-doc --> | ||
616 | * <!-- end-user-doc --> | ||
617 | * @generated | ||
618 | * @ordered | ||
619 | */ | ||
620 | int SMALL_SAT__COMMUNICATION_LINK = SPACECRAFT__COMMUNICATION_LINK; | ||
621 | |||
622 | /** | ||
623 | * The feature id for the '<em><b>Payload</b></em>' containment reference. | ||
624 | * <!-- begin-user-doc --> | ||
625 | * <!-- end-user-doc --> | ||
626 | * @generated | ||
627 | * @ordered | ||
628 | */ | ||
629 | int SMALL_SAT__PAYLOAD = SPACECRAFT__PAYLOAD; | ||
630 | |||
631 | /** | ||
632 | * The feature id for the '<em><b>Kind</b></em>' attribute. | ||
633 | * <!-- begin-user-doc --> | ||
634 | * <!-- end-user-doc --> | ||
635 | * @generated | ||
636 | * @ordered | ||
637 | */ | ||
638 | int SMALL_SAT__KIND = SPACECRAFT__KIND; | ||
639 | |||
640 | /** | ||
641 | * The number of structural features of the '<em>Small Sat</em>' class. | ||
642 | * <!-- begin-user-doc --> | ||
643 | * <!-- end-user-doc --> | ||
644 | * @generated | ||
645 | * @ordered | ||
646 | */ | ||
647 | int SMALL_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0; | ||
648 | |||
649 | /** | ||
650 | * The number of operations of the '<em>Small Sat</em>' class. | ||
651 | * <!-- begin-user-doc --> | ||
652 | * <!-- end-user-doc --> | ||
653 | * @generated | ||
654 | * @ordered | ||
655 | */ | ||
656 | int SMALL_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0; | ||
657 | |||
658 | /** | ||
659 | * The meta object id for the '{@link satellite.TransceiverBand <em>Transceiver Band</em>}' enum. | ||
660 | * <!-- begin-user-doc --> | ||
661 | * <!-- end-user-doc --> | ||
662 | * @see satellite.TransceiverBand | ||
663 | * @see satellite.impl.SatellitePackageImpl#getTransceiverBand() | ||
664 | * @generated | ||
665 | */ | ||
666 | int TRANSCEIVER_BAND = 12; | ||
667 | |||
668 | /** | ||
669 | * The meta object id for the '{@link satellite.AntennaGain <em>Antenna Gain</em>}' enum. | ||
670 | * <!-- begin-user-doc --> | ||
671 | * <!-- end-user-doc --> | ||
672 | * @see satellite.AntennaGain | ||
673 | * @see satellite.impl.SatellitePackageImpl#getAntennaGain() | ||
674 | * @generated | ||
675 | */ | ||
676 | int ANTENNA_GAIN = 13; | ||
677 | |||
678 | /** | ||
679 | * The meta object id for the '{@link satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. | ||
680 | * <!-- begin-user-doc --> | ||
681 | * <!-- end-user-doc --> | ||
682 | * @see satellite.SpacecraftKind | ||
683 | * @see satellite.impl.SatellitePackageImpl#getSpacecraftKind() | ||
684 | * @generated | ||
685 | */ | ||
686 | int SPACECRAFT_KIND = 14; | ||
687 | |||
688 | /** | ||
689 | * Returns the meta object for class '{@link satellite.ConstellationMission <em>Constellation Mission</em>}'. | ||
690 | * <!-- begin-user-doc --> | ||
691 | * <!-- end-user-doc --> | ||
692 | * @return the meta object for class '<em>Constellation Mission</em>'. | ||
693 | * @see satellite.ConstellationMission | ||
694 | * @generated | ||
695 | */ | ||
696 | EClass getConstellationMission(); | ||
697 | |||
698 | /** | ||
699 | * Returns the meta object for the containment reference '{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}'. | ||
700 | * <!-- begin-user-doc --> | ||
701 | * <!-- end-user-doc --> | ||
702 | * @return the meta object for the containment reference '<em>Ground Station Network</em>'. | ||
703 | * @see satellite.ConstellationMission#getGroundStationNetwork() | ||
704 | * @see #getConstellationMission() | ||
705 | * @generated | ||
706 | */ | ||
707 | EReference getConstellationMission_GroundStationNetwork(); | ||
708 | |||
709 | /** | ||
710 | * Returns the meta object for the containment reference list '{@link satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}'. | ||
711 | * <!-- begin-user-doc --> | ||
712 | * <!-- end-user-doc --> | ||
713 | * @return the meta object for the containment reference list '<em>Spacecraft</em>'. | ||
714 | * @see satellite.ConstellationMission#getSpacecraft() | ||
715 | * @see #getConstellationMission() | ||
716 | * @generated | ||
717 | */ | ||
718 | EReference getConstellationMission_Spacecraft(); | ||
719 | |||
720 | /** | ||
721 | * Returns the meta object for class '{@link satellite.InterferometryMission <em>Interferometry Mission</em>}'. | ||
722 | * <!-- begin-user-doc --> | ||
723 | * <!-- end-user-doc --> | ||
724 | * @return the meta object for class '<em>Interferometry Mission</em>'. | ||
725 | * @see satellite.InterferometryMission | ||
726 | * @generated | ||
727 | */ | ||
728 | EClass getInterferometryMission(); | ||
729 | |||
730 | /** | ||
731 | * Returns the meta object for the attribute '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'. | ||
732 | * <!-- begin-user-doc --> | ||
733 | * <!-- end-user-doc --> | ||
734 | * @return the meta object for the attribute '<em>Observation Time</em>'. | ||
735 | * @see satellite.InterferometryMission#getObservationTime() | ||
736 | * @see #getInterferometryMission() | ||
737 | * @generated | ||
738 | */ | ||
739 | EAttribute getInterferometryMission_ObservationTime(); | ||
740 | |||
741 | /** | ||
742 | * Returns the meta object for class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'. | ||
743 | * <!-- begin-user-doc --> | ||
744 | * <!-- end-user-doc --> | ||
745 | * @return the meta object for class '<em>Communicating Element</em>'. | ||
746 | * @see satellite.CommunicatingElement | ||
747 | * @generated | ||
748 | */ | ||
749 | EClass getCommunicatingElement(); | ||
750 | |||
751 | /** | ||
752 | * Returns the meta object for the containment reference list '{@link satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}'. | ||
753 | * <!-- begin-user-doc --> | ||
754 | * <!-- end-user-doc --> | ||
755 | * @return the meta object for the containment reference list '<em>Comm Subsystem</em>'. | ||
756 | * @see satellite.CommunicatingElement#getCommSubsystem() | ||
757 | * @see #getCommunicatingElement() | ||
758 | * @generated | ||
759 | */ | ||
760 | EReference getCommunicatingElement_CommSubsystem(); | ||
761 | |||
762 | /** | ||
763 | * Returns the meta object for the containment reference '{@link satellite.CommunicatingElement#getCommunicationLink <em>Communication Link</em>}'. | ||
764 | * <!-- begin-user-doc --> | ||
765 | * <!-- end-user-doc --> | ||
766 | * @return the meta object for the containment reference '<em>Communication Link</em>'. | ||
767 | * @see satellite.CommunicatingElement#getCommunicationLink() | ||
768 | * @see #getCommunicatingElement() | ||
769 | * @generated | ||
770 | */ | ||
771 | EReference getCommunicatingElement_CommunicationLink(); | ||
772 | |||
773 | /** | ||
774 | * Returns the meta object for class '{@link satellite.GroundStationNetwork <em>Ground Station Network</em>}'. | ||
775 | * <!-- begin-user-doc --> | ||
776 | * <!-- end-user-doc --> | ||
777 | * @return the meta object for class '<em>Ground Station Network</em>'. | ||
778 | * @see satellite.GroundStationNetwork | ||
779 | * @generated | ||
780 | */ | ||
781 | EClass getGroundStationNetwork(); | ||
782 | |||
783 | /** | ||
784 | * Returns the meta object for class '{@link satellite.Spacecraft <em>Spacecraft</em>}'. | ||
785 | * <!-- begin-user-doc --> | ||
786 | * <!-- end-user-doc --> | ||
787 | * @return the meta object for class '<em>Spacecraft</em>'. | ||
788 | * @see satellite.Spacecraft | ||
789 | * @generated | ||
790 | */ | ||
791 | EClass getSpacecraft(); | ||
792 | |||
793 | /** | ||
794 | * Returns the meta object for the containment reference '{@link satellite.Spacecraft#getPayload <em>Payload</em>}'. | ||
795 | * <!-- begin-user-doc --> | ||
796 | * <!-- end-user-doc --> | ||
797 | * @return the meta object for the containment reference '<em>Payload</em>'. | ||
798 | * @see satellite.Spacecraft#getPayload() | ||
799 | * @see #getSpacecraft() | ||
800 | * @generated | ||
801 | */ | ||
802 | EReference getSpacecraft_Payload(); | ||
803 | |||
804 | /** | ||
805 | * Returns the meta object for the attribute '{@link satellite.Spacecraft#getKind <em>Kind</em>}'. | ||
806 | * <!-- begin-user-doc --> | ||
807 | * <!-- end-user-doc --> | ||
808 | * @return the meta object for the attribute '<em>Kind</em>'. | ||
809 | * @see satellite.Spacecraft#getKind() | ||
810 | * @see #getSpacecraft() | ||
811 | * @generated | ||
812 | */ | ||
813 | EAttribute getSpacecraft_Kind(); | ||
814 | |||
815 | /** | ||
816 | * Returns the meta object for class '{@link satellite.CommSubsystem <em>Comm Subsystem</em>}'. | ||
817 | * <!-- begin-user-doc --> | ||
818 | * <!-- end-user-doc --> | ||
819 | * @return the meta object for class '<em>Comm Subsystem</em>'. | ||
820 | * @see satellite.CommSubsystem | ||
821 | * @generated | ||
822 | */ | ||
823 | EClass getCommSubsystem(); | ||
824 | |||
825 | /** | ||
826 | * Returns the meta object for the attribute '{@link satellite.CommSubsystem#getBand <em>Band</em>}'. | ||
827 | * <!-- begin-user-doc --> | ||
828 | * <!-- end-user-doc --> | ||
829 | * @return the meta object for the attribute '<em>Band</em>'. | ||
830 | * @see satellite.CommSubsystem#getBand() | ||
831 | * @see #getCommSubsystem() | ||
832 | * @generated | ||
833 | */ | ||
834 | EAttribute getCommSubsystem_Band(); | ||
835 | |||
836 | /** | ||
837 | * Returns the meta object for the attribute '{@link satellite.CommSubsystem#getGain <em>Gain</em>}'. | ||
838 | * <!-- begin-user-doc --> | ||
839 | * <!-- end-user-doc --> | ||
840 | * @return the meta object for the attribute '<em>Gain</em>'. | ||
841 | * @see satellite.CommSubsystem#getGain() | ||
842 | * @see #getCommSubsystem() | ||
843 | * @generated | ||
844 | */ | ||
845 | EAttribute getCommSubsystem_Gain(); | ||
846 | |||
847 | /** | ||
848 | * Returns the meta object for class '{@link satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'. | ||
849 | * <!-- begin-user-doc --> | ||
850 | * <!-- end-user-doc --> | ||
851 | * @return the meta object for class '<em>Directed Communication Link</em>'. | ||
852 | * @see satellite.DirectedCommunicationLink | ||
853 | * @generated | ||
854 | */ | ||
855 | EClass getDirectedCommunicationLink(); | ||
856 | |||
857 | /** | ||
858 | * Returns the meta object for the reference '{@link satellite.DirectedCommunicationLink#getSource <em>Source</em>}'. | ||
859 | * <!-- begin-user-doc --> | ||
860 | * <!-- end-user-doc --> | ||
861 | * @return the meta object for the reference '<em>Source</em>'. | ||
862 | * @see satellite.DirectedCommunicationLink#getSource() | ||
863 | * @see #getDirectedCommunicationLink() | ||
864 | * @generated | ||
865 | */ | ||
866 | EReference getDirectedCommunicationLink_Source(); | ||
867 | |||
868 | /** | ||
869 | * Returns the meta object for the reference '{@link satellite.DirectedCommunicationLink#getTarget <em>Target</em>}'. | ||
870 | * <!-- begin-user-doc --> | ||
871 | * <!-- end-user-doc --> | ||
872 | * @return the meta object for the reference '<em>Target</em>'. | ||
873 | * @see satellite.DirectedCommunicationLink#getTarget() | ||
874 | * @see #getDirectedCommunicationLink() | ||
875 | * @generated | ||
876 | */ | ||
877 | EReference getDirectedCommunicationLink_Target(); | ||
878 | |||
879 | /** | ||
880 | * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'. | ||
881 | * <!-- begin-user-doc --> | ||
882 | * <!-- end-user-doc --> | ||
883 | * @return the meta object for class '<em>Payload</em>'. | ||
884 | * @see satellite.Payload | ||
885 | * @generated | ||
886 | */ | ||
887 | EClass getPayload(); | ||
888 | |||
889 | /** | ||
890 | * Returns the meta object for class '{@link satellite.InterferometryPayload <em>Interferometry Payload</em>}'. | ||
891 | * <!-- begin-user-doc --> | ||
892 | * <!-- end-user-doc --> | ||
893 | * @return the meta object for class '<em>Interferometry Payload</em>'. | ||
894 | * @see satellite.InterferometryPayload | ||
895 | * @generated | ||
896 | */ | ||
897 | EClass getInterferometryPayload(); | ||
898 | |||
899 | /** | ||
900 | * Returns the meta object for class '{@link satellite.CubeSat3U <em>Cube Sat3 U</em>}'. | ||
901 | * <!-- begin-user-doc --> | ||
902 | * <!-- end-user-doc --> | ||
903 | * @return the meta object for class '<em>Cube Sat3 U</em>'. | ||
904 | * @see satellite.CubeSat3U | ||
905 | * @generated | ||
906 | */ | ||
907 | EClass getCubeSat3U(); | ||
908 | |||
909 | /** | ||
910 | * Returns the meta object for class '{@link satellite.CubeSat6U <em>Cube Sat6 U</em>}'. | ||
911 | * <!-- begin-user-doc --> | ||
912 | * <!-- end-user-doc --> | ||
913 | * @return the meta object for class '<em>Cube Sat6 U</em>'. | ||
914 | * @see satellite.CubeSat6U | ||
915 | * @generated | ||
916 | */ | ||
917 | EClass getCubeSat6U(); | ||
918 | |||
919 | /** | ||
920 | * Returns the meta object for class '{@link satellite.SmallSat <em>Small Sat</em>}'. | ||
921 | * <!-- begin-user-doc --> | ||
922 | * <!-- end-user-doc --> | ||
923 | * @return the meta object for class '<em>Small Sat</em>'. | ||
924 | * @see satellite.SmallSat | ||
925 | * @generated | ||
926 | */ | ||
927 | EClass getSmallSat(); | ||
928 | |||
929 | /** | ||
930 | * Returns the meta object for enum '{@link satellite.TransceiverBand <em>Transceiver Band</em>}'. | ||
931 | * <!-- begin-user-doc --> | ||
932 | * <!-- end-user-doc --> | ||
933 | * @return the meta object for enum '<em>Transceiver Band</em>'. | ||
934 | * @see satellite.TransceiverBand | ||
935 | * @generated | ||
936 | */ | ||
937 | EEnum getTransceiverBand(); | ||
938 | |||
939 | /** | ||
940 | * Returns the meta object for enum '{@link satellite.AntennaGain <em>Antenna Gain</em>}'. | ||
941 | * <!-- begin-user-doc --> | ||
942 | * <!-- end-user-doc --> | ||
943 | * @return the meta object for enum '<em>Antenna Gain</em>'. | ||
944 | * @see satellite.AntennaGain | ||
945 | * @generated | ||
946 | */ | ||
947 | EEnum getAntennaGain(); | ||
948 | |||
949 | /** | ||
950 | * Returns the meta object for enum '{@link satellite.SpacecraftKind <em>Spacecraft Kind</em>}'. | ||
951 | * <!-- begin-user-doc --> | ||
952 | * <!-- end-user-doc --> | ||
953 | * @return the meta object for enum '<em>Spacecraft Kind</em>'. | ||
954 | * @see satellite.SpacecraftKind | ||
955 | * @generated | ||
956 | */ | ||
957 | EEnum getSpacecraftKind(); | ||
958 | |||
959 | /** | ||
960 | * Returns the factory that creates the instances of the model. | ||
961 | * <!-- begin-user-doc --> | ||
962 | * <!-- end-user-doc --> | ||
963 | * @return the factory that creates the instances of the model. | ||
964 | * @generated | ||
965 | */ | ||
966 | SatelliteFactory getSatelliteFactory(); | ||
967 | |||
968 | /** | ||
969 | * <!-- begin-user-doc --> | ||
970 | * Defines literals for the meta objects that represent | ||
971 | * <ul> | ||
972 | * <li>each class,</li> | ||
973 | * <li>each feature of each class,</li> | ||
974 | * <li>each operation of each class,</li> | ||
975 | * <li>each enum,</li> | ||
976 | * <li>and each data type</li> | ||
977 | * </ul> | ||
978 | * <!-- end-user-doc --> | ||
979 | * @generated | ||
980 | */ | ||
981 | interface Literals { | ||
982 | /** | ||
983 | * The meta object literal for the '{@link satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class. | ||
984 | * <!-- begin-user-doc --> | ||
985 | * <!-- end-user-doc --> | ||
986 | * @see satellite.impl.ConstellationMissionImpl | ||
987 | * @see satellite.impl.SatellitePackageImpl#getConstellationMission() | ||
988 | * @generated | ||
989 | */ | ||
990 | EClass CONSTELLATION_MISSION = eINSTANCE.getConstellationMission(); | ||
991 | |||
992 | /** | ||
993 | * The meta object literal for the '<em><b>Ground Station Network</b></em>' containment reference feature. | ||
994 | * <!-- begin-user-doc --> | ||
995 | * <!-- end-user-doc --> | ||
996 | * @generated | ||
997 | */ | ||
998 | EReference CONSTELLATION_MISSION__GROUND_STATION_NETWORK = eINSTANCE | ||
999 | .getConstellationMission_GroundStationNetwork(); | ||
1000 | |||
1001 | /** | ||
1002 | * The meta object literal for the '<em><b>Spacecraft</b></em>' containment reference list feature. | ||
1003 | * <!-- begin-user-doc --> | ||
1004 | * <!-- end-user-doc --> | ||
1005 | * @generated | ||
1006 | */ | ||
1007 | EReference CONSTELLATION_MISSION__SPACECRAFT = eINSTANCE.getConstellationMission_Spacecraft(); | ||
1008 | |||
1009 | /** | ||
1010 | * The meta object literal for the '{@link satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class. | ||
1011 | * <!-- begin-user-doc --> | ||
1012 | * <!-- end-user-doc --> | ||
1013 | * @see satellite.impl.InterferometryMissionImpl | ||
1014 | * @see satellite.impl.SatellitePackageImpl#getInterferometryMission() | ||
1015 | * @generated | ||
1016 | */ | ||
1017 | EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission(); | ||
1018 | |||
1019 | /** | ||
1020 | * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature. | ||
1021 | * <!-- begin-user-doc --> | ||
1022 | * <!-- end-user-doc --> | ||
1023 | * @generated | ||
1024 | */ | ||
1025 | EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime(); | ||
1026 | |||
1027 | /** | ||
1028 | * The meta object literal for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class. | ||
1029 | * <!-- begin-user-doc --> | ||
1030 | * <!-- end-user-doc --> | ||
1031 | * @see satellite.impl.CommunicatingElementImpl | ||
1032 | * @see satellite.impl.SatellitePackageImpl#getCommunicatingElement() | ||
1033 | * @generated | ||
1034 | */ | ||
1035 | EClass COMMUNICATING_ELEMENT = eINSTANCE.getCommunicatingElement(); | ||
1036 | |||
1037 | /** | ||
1038 | * The meta object literal for the '<em><b>Comm Subsystem</b></em>' containment reference list feature. | ||
1039 | * <!-- begin-user-doc --> | ||
1040 | * <!-- end-user-doc --> | ||
1041 | * @generated | ||
1042 | */ | ||
1043 | EReference COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = eINSTANCE.getCommunicatingElement_CommSubsystem(); | ||
1044 | |||
1045 | /** | ||
1046 | * The meta object literal for the '<em><b>Communication Link</b></em>' containment reference feature. | ||
1047 | * <!-- begin-user-doc --> | ||
1048 | * <!-- end-user-doc --> | ||
1049 | * @generated | ||
1050 | */ | ||
1051 | EReference COMMUNICATING_ELEMENT__COMMUNICATION_LINK = eINSTANCE.getCommunicatingElement_CommunicationLink(); | ||
1052 | |||
1053 | /** | ||
1054 | * The meta object literal for the '{@link satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class. | ||
1055 | * <!-- begin-user-doc --> | ||
1056 | * <!-- end-user-doc --> | ||
1057 | * @see satellite.impl.GroundStationNetworkImpl | ||
1058 | * @see satellite.impl.SatellitePackageImpl#getGroundStationNetwork() | ||
1059 | * @generated | ||
1060 | */ | ||
1061 | EClass GROUND_STATION_NETWORK = eINSTANCE.getGroundStationNetwork(); | ||
1062 | |||
1063 | /** | ||
1064 | * The meta object literal for the '{@link satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class. | ||
1065 | * <!-- begin-user-doc --> | ||
1066 | * <!-- end-user-doc --> | ||
1067 | * @see satellite.impl.SpacecraftImpl | ||
1068 | * @see satellite.impl.SatellitePackageImpl#getSpacecraft() | ||
1069 | * @generated | ||
1070 | */ | ||
1071 | EClass SPACECRAFT = eINSTANCE.getSpacecraft(); | ||
1072 | |||
1073 | /** | ||
1074 | * The meta object literal for the '<em><b>Payload</b></em>' containment reference feature. | ||
1075 | * <!-- begin-user-doc --> | ||
1076 | * <!-- end-user-doc --> | ||
1077 | * @generated | ||
1078 | */ | ||
1079 | EReference SPACECRAFT__PAYLOAD = eINSTANCE.getSpacecraft_Payload(); | ||
1080 | |||
1081 | /** | ||
1082 | * The meta object literal for the '<em><b>Kind</b></em>' attribute feature. | ||
1083 | * <!-- begin-user-doc --> | ||
1084 | * <!-- end-user-doc --> | ||
1085 | * @generated | ||
1086 | */ | ||
1087 | EAttribute SPACECRAFT__KIND = eINSTANCE.getSpacecraft_Kind(); | ||
1088 | |||
1089 | /** | ||
1090 | * The meta object literal for the '{@link satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class. | ||
1091 | * <!-- begin-user-doc --> | ||
1092 | * <!-- end-user-doc --> | ||
1093 | * @see satellite.impl.CommSubsystemImpl | ||
1094 | * @see satellite.impl.SatellitePackageImpl#getCommSubsystem() | ||
1095 | * @generated | ||
1096 | */ | ||
1097 | EClass COMM_SUBSYSTEM = eINSTANCE.getCommSubsystem(); | ||
1098 | |||
1099 | /** | ||
1100 | * The meta object literal for the '<em><b>Band</b></em>' attribute feature. | ||
1101 | * <!-- begin-user-doc --> | ||
1102 | * <!-- end-user-doc --> | ||
1103 | * @generated | ||
1104 | */ | ||
1105 | EAttribute COMM_SUBSYSTEM__BAND = eINSTANCE.getCommSubsystem_Band(); | ||
1106 | |||
1107 | /** | ||
1108 | * The meta object literal for the '<em><b>Gain</b></em>' attribute feature. | ||
1109 | * <!-- begin-user-doc --> | ||
1110 | * <!-- end-user-doc --> | ||
1111 | * @generated | ||
1112 | */ | ||
1113 | EAttribute COMM_SUBSYSTEM__GAIN = eINSTANCE.getCommSubsystem_Gain(); | ||
1114 | |||
1115 | /** | ||
1116 | * The meta object literal for the '{@link satellite.impl.DirectedCommunicationLinkImpl <em>Directed Communication Link</em>}' class. | ||
1117 | * <!-- begin-user-doc --> | ||
1118 | * <!-- end-user-doc --> | ||
1119 | * @see satellite.impl.DirectedCommunicationLinkImpl | ||
1120 | * @see satellite.impl.SatellitePackageImpl#getDirectedCommunicationLink() | ||
1121 | * @generated | ||
1122 | */ | ||
1123 | EClass DIRECTED_COMMUNICATION_LINK = eINSTANCE.getDirectedCommunicationLink(); | ||
1124 | |||
1125 | /** | ||
1126 | * The meta object literal for the '<em><b>Source</b></em>' reference feature. | ||
1127 | * <!-- begin-user-doc --> | ||
1128 | * <!-- end-user-doc --> | ||
1129 | * @generated | ||
1130 | */ | ||
1131 | EReference DIRECTED_COMMUNICATION_LINK__SOURCE = eINSTANCE.getDirectedCommunicationLink_Source(); | ||
1132 | |||
1133 | /** | ||
1134 | * The meta object literal for the '<em><b>Target</b></em>' reference feature. | ||
1135 | * <!-- begin-user-doc --> | ||
1136 | * <!-- end-user-doc --> | ||
1137 | * @generated | ||
1138 | */ | ||
1139 | EReference DIRECTED_COMMUNICATION_LINK__TARGET = eINSTANCE.getDirectedCommunicationLink_Target(); | ||
1140 | |||
1141 | /** | ||
1142 | * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class. | ||
1143 | * <!-- begin-user-doc --> | ||
1144 | * <!-- end-user-doc --> | ||
1145 | * @see satellite.impl.PayloadImpl | ||
1146 | * @see satellite.impl.SatellitePackageImpl#getPayload() | ||
1147 | * @generated | ||
1148 | */ | ||
1149 | EClass PAYLOAD = eINSTANCE.getPayload(); | ||
1150 | |||
1151 | /** | ||
1152 | * The meta object literal for the '{@link satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class. | ||
1153 | * <!-- begin-user-doc --> | ||
1154 | * <!-- end-user-doc --> | ||
1155 | * @see satellite.impl.InterferometryPayloadImpl | ||
1156 | * @see satellite.impl.SatellitePackageImpl#getInterferometryPayload() | ||
1157 | * @generated | ||
1158 | */ | ||
1159 | EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload(); | ||
1160 | |||
1161 | /** | ||
1162 | * The meta object literal for the '{@link satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class. | ||
1163 | * <!-- begin-user-doc --> | ||
1164 | * <!-- end-user-doc --> | ||
1165 | * @see satellite.impl.CubeSat3UImpl | ||
1166 | * @see satellite.impl.SatellitePackageImpl#getCubeSat3U() | ||
1167 | * @generated | ||
1168 | */ | ||
1169 | EClass CUBE_SAT3_U = eINSTANCE.getCubeSat3U(); | ||
1170 | |||
1171 | /** | ||
1172 | * The meta object literal for the '{@link satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class. | ||
1173 | * <!-- begin-user-doc --> | ||
1174 | * <!-- end-user-doc --> | ||
1175 | * @see satellite.impl.CubeSat6UImpl | ||
1176 | * @see satellite.impl.SatellitePackageImpl#getCubeSat6U() | ||
1177 | * @generated | ||
1178 | */ | ||
1179 | EClass CUBE_SAT6_U = eINSTANCE.getCubeSat6U(); | ||
1180 | |||
1181 | /** | ||
1182 | * The meta object literal for the '{@link satellite.impl.SmallSatImpl <em>Small Sat</em>}' class. | ||
1183 | * <!-- begin-user-doc --> | ||
1184 | * <!-- end-user-doc --> | ||
1185 | * @see satellite.impl.SmallSatImpl | ||
1186 | * @see satellite.impl.SatellitePackageImpl#getSmallSat() | ||
1187 | * @generated | ||
1188 | */ | ||
1189 | EClass SMALL_SAT = eINSTANCE.getSmallSat(); | ||
1190 | |||
1191 | /** | ||
1192 | * The meta object literal for the '{@link satellite.TransceiverBand <em>Transceiver Band</em>}' enum. | ||
1193 | * <!-- begin-user-doc --> | ||
1194 | * <!-- end-user-doc --> | ||
1195 | * @see satellite.TransceiverBand | ||
1196 | * @see satellite.impl.SatellitePackageImpl#getTransceiverBand() | ||
1197 | * @generated | ||
1198 | */ | ||
1199 | EEnum TRANSCEIVER_BAND = eINSTANCE.getTransceiverBand(); | ||
1200 | |||
1201 | /** | ||
1202 | * The meta object literal for the '{@link satellite.AntennaGain <em>Antenna Gain</em>}' enum. | ||
1203 | * <!-- begin-user-doc --> | ||
1204 | * <!-- end-user-doc --> | ||
1205 | * @see satellite.AntennaGain | ||
1206 | * @see satellite.impl.SatellitePackageImpl#getAntennaGain() | ||
1207 | * @generated | ||
1208 | */ | ||
1209 | EEnum ANTENNA_GAIN = eINSTANCE.getAntennaGain(); | ||
1210 | |||
1211 | /** | ||
1212 | * The meta object literal for the '{@link satellite.SpacecraftKind <em>Spacecraft Kind</em>}' enum. | ||
1213 | * <!-- begin-user-doc --> | ||
1214 | * <!-- end-user-doc --> | ||
1215 | * @see satellite.SpacecraftKind | ||
1216 | * @see satellite.impl.SatellitePackageImpl#getSpacecraftKind() | ||
1217 | * @generated | ||
1218 | */ | ||
1219 | EEnum SPACECRAFT_KIND = eINSTANCE.getSpacecraftKind(); | ||
1220 | |||
1221 | } | ||
1222 | |||
1223 | } //SatellitePackage | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java new file mode 100644 index 00000000..230958f6 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SmallSat.java | |||
@@ -0,0 +1,16 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Small Sat</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * | ||
11 | * @see satellite.SatellitePackage#getSmallSat() | ||
12 | * @model | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface SmallSat extends Spacecraft { | ||
16 | } // SmallSat | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java new file mode 100644 index 00000000..d8775572 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/Spacecraft.java | |||
@@ -0,0 +1,67 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite; | ||
4 | |||
5 | /** | ||
6 | * <!-- begin-user-doc --> | ||
7 | * A representation of the model object '<em><b>Spacecraft</b></em>'. | ||
8 | * <!-- end-user-doc --> | ||
9 | * | ||
10 | * <p> | ||
11 | * The following features are supported: | ||
12 | * </p> | ||
13 | * <ul> | ||
14 | * <li>{@link satellite.Spacecraft#getPayload <em>Payload</em>}</li> | ||
15 | * <li>{@link satellite.Spacecraft#getKind <em>Kind</em>}</li> | ||
16 | * </ul> | ||
17 | * | ||
18 | * @see satellite.SatellitePackage#getSpacecraft() | ||
19 | * @model abstract="true" | ||
20 | * @generated | ||
21 | */ | ||
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 satellite.SatellitePackage#getSpacecraft_Payload() | ||
34 | * @model containment="true" | ||
35 | * @generated | ||
36 | */ | ||
37 | Payload getPayload(); | ||
38 | |||
39 | /** | ||
40 | * Sets the value of the '{@link satellite.Spacecraft#getPayload <em>Payload</em>}' containment reference. | ||
41 | * <!-- begin-user-doc --> | ||
42 | * <!-- end-user-doc --> | ||
43 | * @param value the new value of the '<em>Payload</em>' containment reference. | ||
44 | * @see #getPayload() | ||
45 | * @generated | ||
46 | */ | ||
47 | void setPayload(Payload value); | ||
48 | |||
49 | /** | ||
50 | * Returns the value of the '<em><b>Kind</b></em>' attribute. | ||
51 | * The literals are from the enumeration {@link satellite.SpacecraftKind}. | ||
52 | * <!-- begin-user-doc --> | ||
53 | * <p> | ||
54 | * If the meaning of the '<em>Kind</em>' attribute isn't clear, | ||
55 | * there really should be more of a description here... | ||
56 | * </p> | ||
57 | * <!-- end-user-doc --> | ||
58 | * @return the value of the '<em>Kind</em>' attribute. | ||
59 | * @see satellite.SpacecraftKind | ||
60 | * @see satellite.SatellitePackage#getSpacecraft_Kind() | ||
61 | * @model required="true" transient="true" changeable="false" volatile="true" derived="true" | ||
62 | * annotation="org.eclipse.viatra.query.querybasedfeature patternFQN='hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind'" | ||
63 | * @generated | ||
64 | */ | ||
65 | SpacecraftKind getKind(); | ||
66 | |||
67 | } // Spacecraft | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java new file mode 100644 index 00000000..40bb432d --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SpacecraftKind.java | |||
@@ -0,0 +1,242 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 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 | /** | ||
42 | * The '<em><b>Small Sat</b></em>' literal object. | ||
43 | * <!-- begin-user-doc --> | ||
44 | * <!-- end-user-doc --> | ||
45 | * @see #SMALL_SAT_VALUE | ||
46 | * @generated | ||
47 | * @ordered | ||
48 | */ | ||
49 | SMALL_SAT(2, "SmallSat", "SmallSat"); | ||
50 | |||
51 | /** | ||
52 | * The '<em><b>Cube Sat3 U</b></em>' literal value. | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <p> | ||
55 | * If the meaning of '<em><b>Cube Sat3 U</b></em>' literal object isn't clear, | ||
56 | * there really should be more of a description here... | ||
57 | * </p> | ||
58 | * <!-- end-user-doc --> | ||
59 | * @see #CUBE_SAT3_U | ||
60 | * @model name="CubeSat3U" | ||
61 | * @generated | ||
62 | * @ordered | ||
63 | */ | ||
64 | public static final int CUBE_SAT3_U_VALUE = 0; | ||
65 | |||
66 | /** | ||
67 | * The '<em><b>Cube Sat6 U</b></em>' literal value. | ||
68 | * <!-- begin-user-doc --> | ||
69 | * <p> | ||
70 | * If the meaning of '<em><b>Cube Sat6 U</b></em>' literal object isn't clear, | ||
71 | * there really should be more of a description here... | ||
72 | * </p> | ||
73 | * <!-- end-user-doc --> | ||
74 | * @see #CUBE_SAT6_U | ||
75 | * @model name="CubeSat6U" | ||
76 | * @generated | ||
77 | * @ordered | ||
78 | */ | ||
79 | public static final int CUBE_SAT6_U_VALUE = 1; | ||
80 | |||
81 | /** | ||
82 | * The '<em><b>Small Sat</b></em>' literal value. | ||
83 | * <!-- begin-user-doc --> | ||
84 | * <p> | ||
85 | * If the meaning of '<em><b>Small Sat</b></em>' literal object isn't clear, | ||
86 | * there really should be more of a description here... | ||
87 | * </p> | ||
88 | * <!-- end-user-doc --> | ||
89 | * @see #SMALL_SAT | ||
90 | * @model name="SmallSat" | ||
91 | * @generated | ||
92 | * @ordered | ||
93 | */ | ||
94 | public static final int SMALL_SAT_VALUE = 2; | ||
95 | |||
96 | /** | ||
97 | * An array of all the '<em><b>Spacecraft Kind</b></em>' enumerators. | ||
98 | * <!-- begin-user-doc --> | ||
99 | * <!-- end-user-doc --> | ||
100 | * @generated | ||
101 | */ | ||
102 | private static final SpacecraftKind[] VALUES_ARRAY = new SpacecraftKind[] { CUBE_SAT3_U, CUBE_SAT6_U, SMALL_SAT, }; | ||
103 | |||
104 | /** | ||
105 | * A public read-only list of all the '<em><b>Spacecraft Kind</b></em>' enumerators. | ||
106 | * <!-- begin-user-doc --> | ||
107 | * <!-- end-user-doc --> | ||
108 | * @generated | ||
109 | */ | ||
110 | public static final List<SpacecraftKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); | ||
111 | |||
112 | /** | ||
113 | * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified literal value. | ||
114 | * <!-- begin-user-doc --> | ||
115 | * <!-- end-user-doc --> | ||
116 | * @param literal the literal. | ||
117 | * @return the matching enumerator or <code>null</code>. | ||
118 | * @generated | ||
119 | */ | ||
120 | public static SpacecraftKind get(String literal) { | ||
121 | for (int i = 0; i < VALUES_ARRAY.length; ++i) { | ||
122 | SpacecraftKind result = VALUES_ARRAY[i]; | ||
123 | if (result.toString().equals(literal)) { | ||
124 | return result; | ||
125 | } | ||
126 | } | ||
127 | return null; | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified name. | ||
132 | * <!-- begin-user-doc --> | ||
133 | * <!-- end-user-doc --> | ||
134 | * @param name the name. | ||
135 | * @return the matching enumerator or <code>null</code>. | ||
136 | * @generated | ||
137 | */ | ||
138 | public static SpacecraftKind getByName(String name) { | ||
139 | for (int i = 0; i < VALUES_ARRAY.length; ++i) { | ||
140 | SpacecraftKind result = VALUES_ARRAY[i]; | ||
141 | if (result.getName().equals(name)) { | ||
142 | return result; | ||
143 | } | ||
144 | } | ||
145 | return null; | ||
146 | } | ||
147 | |||
148 | /** | ||
149 | * Returns the '<em><b>Spacecraft Kind</b></em>' literal with the specified integer value. | ||
150 | * <!-- begin-user-doc --> | ||
151 | * <!-- end-user-doc --> | ||
152 | * @param value the integer value. | ||
153 | * @return the matching enumerator or <code>null</code>. | ||
154 | * @generated | ||
155 | */ | ||
156 | public static SpacecraftKind get(int value) { | ||
157 | switch (value) { | ||
158 | case CUBE_SAT3_U_VALUE: | ||
159 | return CUBE_SAT3_U; | ||
160 | case CUBE_SAT6_U_VALUE: | ||
161 | return CUBE_SAT6_U; | ||
162 | case SMALL_SAT_VALUE: | ||
163 | return SMALL_SAT; | ||
164 | } | ||
165 | return null; | ||
166 | } | ||
167 | |||
168 | /** | ||
169 | * <!-- begin-user-doc --> | ||
170 | * <!-- end-user-doc --> | ||
171 | * @generated | ||
172 | */ | ||
173 | private final int value; | ||
174 | |||
175 | /** | ||
176 | * <!-- begin-user-doc --> | ||
177 | * <!-- end-user-doc --> | ||
178 | * @generated | ||
179 | */ | ||
180 | private final String name; | ||
181 | |||
182 | /** | ||
183 | * <!-- begin-user-doc --> | ||
184 | * <!-- end-user-doc --> | ||
185 | * @generated | ||
186 | */ | ||
187 | private final String literal; | ||
188 | |||
189 | /** | ||
190 | * Only this class can construct instances. | ||
191 | * <!-- begin-user-doc --> | ||
192 | * <!-- end-user-doc --> | ||
193 | * @generated | ||
194 | */ | ||
195 | private SpacecraftKind(int value, String name, String literal) { | ||
196 | this.value = value; | ||
197 | this.name = name; | ||
198 | this.literal = literal; | ||
199 | } | ||
200 | |||
201 | /** | ||
202 | * <!-- begin-user-doc --> | ||
203 | * <!-- end-user-doc --> | ||
204 | * @generated | ||
205 | */ | ||
206 | @Override | ||
207 | public int getValue() { | ||
208 | return value; | ||
209 | } | ||
210 | |||
211 | /** | ||
212 | * <!-- begin-user-doc --> | ||
213 | * <!-- end-user-doc --> | ||
214 | * @generated | ||
215 | */ | ||
216 | @Override | ||
217 | public String getName() { | ||
218 | return name; | ||
219 | } | ||
220 | |||
221 | /** | ||
222 | * <!-- begin-user-doc --> | ||
223 | * <!-- end-user-doc --> | ||
224 | * @generated | ||
225 | */ | ||
226 | @Override | ||
227 | public String getLiteral() { | ||
228 | return literal; | ||
229 | } | ||
230 | |||
231 | /** | ||
232 | * Returns the literal value of the enumerator, which is its string representation. | ||
233 | * <!-- begin-user-doc --> | ||
234 | * <!-- end-user-doc --> | ||
235 | * @generated | ||
236 | */ | ||
237 | @Override | ||
238 | public String toString() { | ||
239 | return literal; | ||
240 | } | ||
241 | |||
242 | } //SpacecraftKind | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java new file mode 100644 index 00000000..b6be75bf --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/TransceiverBand.java | |||
@@ -0,0 +1,242 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package 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 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/satellite/impl/CommSubsystemImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java new file mode 100644 index 00000000..cf8f1fe8 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java | |||
@@ -0,0 +1,226 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Notification; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EClass; | ||
8 | |||
9 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
10 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
11 | |||
12 | import satellite.AntennaGain; | ||
13 | import satellite.CommSubsystem; | ||
14 | import satellite.SatellitePackage; | ||
15 | import satellite.TransceiverBand; | ||
16 | |||
17 | /** | ||
18 | * <!-- begin-user-doc --> | ||
19 | * An implementation of the model object '<em><b>Comm Subsystem</b></em>'. | ||
20 | * <!-- end-user-doc --> | ||
21 | * <p> | ||
22 | * The following features are implemented: | ||
23 | * </p> | ||
24 | * <ul> | ||
25 | * <li>{@link satellite.impl.CommSubsystemImpl#getBand <em>Band</em>}</li> | ||
26 | * <li>{@link satellite.impl.CommSubsystemImpl#getGain <em>Gain</em>}</li> | ||
27 | * </ul> | ||
28 | * | ||
29 | * @generated | ||
30 | */ | ||
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/satellite/impl/CommunicatingElementImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommunicatingElementImpl.java new file mode 100644 index 00000000..1f79da3b --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommunicatingElementImpl.java | |||
@@ -0,0 +1,237 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import java.util.Collection; | ||
6 | |||
7 | import org.eclipse.emf.common.notify.Notification; | ||
8 | import org.eclipse.emf.common.notify.NotificationChain; | ||
9 | |||
10 | import org.eclipse.emf.common.util.EList; | ||
11 | |||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | import org.eclipse.emf.ecore.InternalEObject; | ||
14 | |||
15 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
16 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
17 | |||
18 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
19 | import org.eclipse.emf.ecore.util.InternalEList; | ||
20 | |||
21 | import satellite.CommSubsystem; | ||
22 | import satellite.CommunicatingElement; | ||
23 | import satellite.DirectedCommunicationLink; | ||
24 | import satellite.SatellitePackage; | ||
25 | |||
26 | /** | ||
27 | * <!-- begin-user-doc --> | ||
28 | * An implementation of the model object '<em><b>Communicating Element</b></em>'. | ||
29 | * <!-- end-user-doc --> | ||
30 | * <p> | ||
31 | * The following features are implemented: | ||
32 | * </p> | ||
33 | * <ul> | ||
34 | * <li>{@link satellite.impl.CommunicatingElementImpl#getCommSubsystem <em>Comm Subsystem</em>}</li> | ||
35 | * <li>{@link satellite.impl.CommunicatingElementImpl#getCommunicationLink <em>Communication Link</em>}</li> | ||
36 | * </ul> | ||
37 | * | ||
38 | * @generated | ||
39 | */ | ||
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/satellite/impl/ConstellationMissionImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/ConstellationMissionImpl.java new file mode 100644 index 00000000..7635d7cd --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/ConstellationMissionImpl.java | |||
@@ -0,0 +1,237 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import java.util.Collection; | ||
6 | |||
7 | import org.eclipse.emf.common.notify.Notification; | ||
8 | import org.eclipse.emf.common.notify.NotificationChain; | ||
9 | |||
10 | import org.eclipse.emf.common.util.EList; | ||
11 | |||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | import org.eclipse.emf.ecore.InternalEObject; | ||
14 | |||
15 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
16 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
17 | |||
18 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
19 | import org.eclipse.emf.ecore.util.InternalEList; | ||
20 | |||
21 | import satellite.ConstellationMission; | ||
22 | import satellite.GroundStationNetwork; | ||
23 | import satellite.SatellitePackage; | ||
24 | import satellite.Spacecraft; | ||
25 | |||
26 | /** | ||
27 | * <!-- begin-user-doc --> | ||
28 | * An implementation of the model object '<em><b>Constellation Mission</b></em>'. | ||
29 | * <!-- end-user-doc --> | ||
30 | * <p> | ||
31 | * The following features are implemented: | ||
32 | * </p> | ||
33 | * <ul> | ||
34 | * <li>{@link satellite.impl.ConstellationMissionImpl#getGroundStationNetwork <em>Ground Station Network</em>}</li> | ||
35 | * <li>{@link satellite.impl.ConstellationMissionImpl#getSpacecraft <em>Spacecraft</em>}</li> | ||
36 | * </ul> | ||
37 | * | ||
38 | * @generated | ||
39 | */ | ||
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/satellite/impl/CubeSat3UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat3UImpl.java new file mode 100644 index 00000000..a7ba37a7 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat3UImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | |||
7 | import satellite.CubeSat3U; | ||
8 | import satellite.SatellitePackage; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * An implementation of the model object '<em><b>Cube Sat3 U</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public class CubeSat3UImpl extends SpacecraftImpl implements CubeSat3U { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected CubeSat3UImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.CUBE_SAT3_U; | ||
35 | } | ||
36 | |||
37 | } //CubeSat3UImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java new file mode 100644 index 00000000..d4f42e6c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CubeSat6UImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | |||
7 | import satellite.CubeSat6U; | ||
8 | import satellite.SatellitePackage; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * An implementation of the model object '<em><b>Cube Sat6 U</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public class CubeSat6UImpl extends SpacecraftImpl implements CubeSat6U { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected CubeSat6UImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.CUBE_SAT6_U; | ||
35 | } | ||
36 | |||
37 | } //CubeSat6UImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java new file mode 100644 index 00000000..2df1328f --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/DirectedCommunicationLinkImpl.java | |||
@@ -0,0 +1,227 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Notification; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EClass; | ||
8 | import org.eclipse.emf.ecore.InternalEObject; | ||
9 | |||
10 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
11 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
12 | |||
13 | import satellite.CommSubsystem; | ||
14 | import satellite.DirectedCommunicationLink; | ||
15 | import satellite.SatellitePackage; | ||
16 | |||
17 | /** | ||
18 | * <!-- begin-user-doc --> | ||
19 | * An implementation of the model object '<em><b>Directed Communication Link</b></em>'. | ||
20 | * <!-- end-user-doc --> | ||
21 | * <p> | ||
22 | * The following features are implemented: | ||
23 | * </p> | ||
24 | * <ul> | ||
25 | * <li>{@link satellite.impl.DirectedCommunicationLinkImpl#getSource <em>Source</em>}</li> | ||
26 | * <li>{@link satellite.impl.DirectedCommunicationLinkImpl#getTarget <em>Target</em>}</li> | ||
27 | * </ul> | ||
28 | * | ||
29 | * @generated | ||
30 | */ | ||
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/satellite/impl/GroundStationNetworkImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/GroundStationNetworkImpl.java new file mode 100644 index 00000000..244b9568 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/GroundStationNetworkImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | |||
7 | import satellite.GroundStationNetwork; | ||
8 | import satellite.SatellitePackage; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * An implementation of the model object '<em><b>Ground Station Network</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
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/satellite/impl/InterferometryMissionImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java new file mode 100644 index 00000000..3401ad51 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java | |||
@@ -0,0 +1,166 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Notification; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EClass; | ||
8 | |||
9 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
10 | |||
11 | import satellite.InterferometryMission; | ||
12 | import satellite.SatellitePackage; | ||
13 | |||
14 | /** | ||
15 | * <!-- begin-user-doc --> | ||
16 | * An implementation of the model object '<em><b>Interferometry Mission</b></em>'. | ||
17 | * <!-- end-user-doc --> | ||
18 | * <p> | ||
19 | * The following features are implemented: | ||
20 | * </p> | ||
21 | * <ul> | ||
22 | * <li>{@link satellite.impl.InterferometryMissionImpl#getObservationTime <em>Observation Time</em>}</li> | ||
23 | * </ul> | ||
24 | * | ||
25 | * @generated | ||
26 | */ | ||
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/satellite/impl/InterferometryPayloadImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryPayloadImpl.java new file mode 100644 index 00000000..c8f9e816 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryPayloadImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | |||
7 | import satellite.InterferometryPayload; | ||
8 | import satellite.SatellitePackage; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * An implementation of the model object '<em><b>Interferometry Payload</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
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/satellite/impl/PayloadImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/PayloadImpl.java new file mode 100644 index 00000000..6ee96353 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/PayloadImpl.java | |||
@@ -0,0 +1,39 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | |||
7 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
8 | |||
9 | import satellite.Payload; | ||
10 | import satellite.SatellitePackage; | ||
11 | |||
12 | /** | ||
13 | * <!-- begin-user-doc --> | ||
14 | * An implementation of the model object '<em><b>Payload</b></em>'. | ||
15 | * <!-- end-user-doc --> | ||
16 | * | ||
17 | * @generated | ||
18 | */ | ||
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/satellite/impl/SatelliteFactoryImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatelliteFactoryImpl.java new file mode 100644 index 00000000..e899dc79 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatelliteFactoryImpl.java | |||
@@ -0,0 +1,294 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | import org.eclipse.emf.ecore.EDataType; | ||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | import org.eclipse.emf.ecore.EPackage; | ||
9 | |||
10 | import org.eclipse.emf.ecore.impl.EFactoryImpl; | ||
11 | |||
12 | import org.eclipse.emf.ecore.plugin.EcorePlugin; | ||
13 | |||
14 | import satellite.*; | ||
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 | case SatellitePackage.CUBE_SAT3_U: | ||
71 | return createCubeSat3U(); | ||
72 | case SatellitePackage.CUBE_SAT6_U: | ||
73 | return createCubeSat6U(); | ||
74 | case SatellitePackage.SMALL_SAT: | ||
75 | return createSmallSat(); | ||
76 | default: | ||
77 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | /** | ||
82 | * <!-- begin-user-doc --> | ||
83 | * <!-- end-user-doc --> | ||
84 | * @generated | ||
85 | */ | ||
86 | @Override | ||
87 | public Object createFromString(EDataType eDataType, String initialValue) { | ||
88 | switch (eDataType.getClassifierID()) { | ||
89 | case SatellitePackage.TRANSCEIVER_BAND: | ||
90 | return createTransceiverBandFromString(eDataType, initialValue); | ||
91 | case SatellitePackage.ANTENNA_GAIN: | ||
92 | return createAntennaGainFromString(eDataType, initialValue); | ||
93 | case SatellitePackage.SPACECRAFT_KIND: | ||
94 | return createSpacecraftKindFromString(eDataType, initialValue); | ||
95 | default: | ||
96 | throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); | ||
97 | } | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * <!-- begin-user-doc --> | ||
102 | * <!-- end-user-doc --> | ||
103 | * @generated | ||
104 | */ | ||
105 | @Override | ||
106 | public String convertToString(EDataType eDataType, Object instanceValue) { | ||
107 | switch (eDataType.getClassifierID()) { | ||
108 | case SatellitePackage.TRANSCEIVER_BAND: | ||
109 | return convertTransceiverBandToString(eDataType, instanceValue); | ||
110 | case SatellitePackage.ANTENNA_GAIN: | ||
111 | return convertAntennaGainToString(eDataType, instanceValue); | ||
112 | case SatellitePackage.SPACECRAFT_KIND: | ||
113 | return convertSpacecraftKindToString(eDataType, instanceValue); | ||
114 | default: | ||
115 | throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); | ||
116 | } | ||
117 | } | ||
118 | |||
119 | /** | ||
120 | * <!-- begin-user-doc --> | ||
121 | * <!-- end-user-doc --> | ||
122 | * @generated | ||
123 | */ | ||
124 | @Override | ||
125 | public InterferometryMission createInterferometryMission() { | ||
126 | InterferometryMissionImpl interferometryMission = new InterferometryMissionImpl(); | ||
127 | return interferometryMission; | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * <!-- begin-user-doc --> | ||
132 | * <!-- end-user-doc --> | ||
133 | * @generated | ||
134 | */ | ||
135 | @Override | ||
136 | public GroundStationNetwork createGroundStationNetwork() { | ||
137 | GroundStationNetworkImpl groundStationNetwork = new GroundStationNetworkImpl(); | ||
138 | return groundStationNetwork; | ||
139 | } | ||
140 | |||
141 | /** | ||
142 | * <!-- begin-user-doc --> | ||
143 | * <!-- end-user-doc --> | ||
144 | * @generated | ||
145 | */ | ||
146 | @Override | ||
147 | public CommSubsystem createCommSubsystem() { | ||
148 | CommSubsystemImpl commSubsystem = new CommSubsystemImpl(); | ||
149 | return commSubsystem; | ||
150 | } | ||
151 | |||
152 | /** | ||
153 | * <!-- begin-user-doc --> | ||
154 | * <!-- end-user-doc --> | ||
155 | * @generated | ||
156 | */ | ||
157 | @Override | ||
158 | public DirectedCommunicationLink createDirectedCommunicationLink() { | ||
159 | DirectedCommunicationLinkImpl directedCommunicationLink = new DirectedCommunicationLinkImpl(); | ||
160 | return directedCommunicationLink; | ||
161 | } | ||
162 | |||
163 | /** | ||
164 | * <!-- begin-user-doc --> | ||
165 | * <!-- end-user-doc --> | ||
166 | * @generated | ||
167 | */ | ||
168 | @Override | ||
169 | public InterferometryPayload createInterferometryPayload() { | ||
170 | InterferometryPayloadImpl interferometryPayload = new InterferometryPayloadImpl(); | ||
171 | return interferometryPayload; | ||
172 | } | ||
173 | |||
174 | /** | ||
175 | * <!-- begin-user-doc --> | ||
176 | * <!-- end-user-doc --> | ||
177 | * @generated | ||
178 | */ | ||
179 | @Override | ||
180 | public CubeSat3U createCubeSat3U() { | ||
181 | CubeSat3UImpl cubeSat3U = new CubeSat3UImpl(); | ||
182 | return cubeSat3U; | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * <!-- begin-user-doc --> | ||
187 | * <!-- end-user-doc --> | ||
188 | * @generated | ||
189 | */ | ||
190 | @Override | ||
191 | public CubeSat6U createCubeSat6U() { | ||
192 | CubeSat6UImpl cubeSat6U = new CubeSat6UImpl(); | ||
193 | return cubeSat6U; | ||
194 | } | ||
195 | |||
196 | /** | ||
197 | * <!-- begin-user-doc --> | ||
198 | * <!-- end-user-doc --> | ||
199 | * @generated | ||
200 | */ | ||
201 | @Override | ||
202 | public SmallSat createSmallSat() { | ||
203 | SmallSatImpl smallSat = new SmallSatImpl(); | ||
204 | return smallSat; | ||
205 | } | ||
206 | |||
207 | /** | ||
208 | * <!-- begin-user-doc --> | ||
209 | * <!-- end-user-doc --> | ||
210 | * @generated | ||
211 | */ | ||
212 | public TransceiverBand createTransceiverBandFromString(EDataType eDataType, String initialValue) { | ||
213 | TransceiverBand result = TransceiverBand.get(initialValue); | ||
214 | if (result == null) | ||
215 | throw new IllegalArgumentException( | ||
216 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
217 | return result; | ||
218 | } | ||
219 | |||
220 | /** | ||
221 | * <!-- begin-user-doc --> | ||
222 | * <!-- end-user-doc --> | ||
223 | * @generated | ||
224 | */ | ||
225 | public String convertTransceiverBandToString(EDataType eDataType, Object instanceValue) { | ||
226 | return instanceValue == null ? null : instanceValue.toString(); | ||
227 | } | ||
228 | |||
229 | /** | ||
230 | * <!-- begin-user-doc --> | ||
231 | * <!-- end-user-doc --> | ||
232 | * @generated | ||
233 | */ | ||
234 | public AntennaGain createAntennaGainFromString(EDataType eDataType, String initialValue) { | ||
235 | AntennaGain result = AntennaGain.get(initialValue); | ||
236 | if (result == null) | ||
237 | throw new IllegalArgumentException( | ||
238 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
239 | return result; | ||
240 | } | ||
241 | |||
242 | /** | ||
243 | * <!-- begin-user-doc --> | ||
244 | * <!-- end-user-doc --> | ||
245 | * @generated | ||
246 | */ | ||
247 | public String convertAntennaGainToString(EDataType eDataType, Object instanceValue) { | ||
248 | return instanceValue == null ? null : instanceValue.toString(); | ||
249 | } | ||
250 | |||
251 | /** | ||
252 | * <!-- begin-user-doc --> | ||
253 | * <!-- end-user-doc --> | ||
254 | * @generated | ||
255 | */ | ||
256 | public SpacecraftKind createSpacecraftKindFromString(EDataType eDataType, String initialValue) { | ||
257 | SpacecraftKind result = SpacecraftKind.get(initialValue); | ||
258 | if (result == null) | ||
259 | throw new IllegalArgumentException( | ||
260 | "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); | ||
261 | return result; | ||
262 | } | ||
263 | |||
264 | /** | ||
265 | * <!-- begin-user-doc --> | ||
266 | * <!-- end-user-doc --> | ||
267 | * @generated | ||
268 | */ | ||
269 | public String convertSpacecraftKindToString(EDataType eDataType, Object instanceValue) { | ||
270 | return instanceValue == null ? null : instanceValue.toString(); | ||
271 | } | ||
272 | |||
273 | /** | ||
274 | * <!-- begin-user-doc --> | ||
275 | * <!-- end-user-doc --> | ||
276 | * @generated | ||
277 | */ | ||
278 | @Override | ||
279 | public SatellitePackage getSatellitePackage() { | ||
280 | return (SatellitePackage) getEPackage(); | ||
281 | } | ||
282 | |||
283 | /** | ||
284 | * <!-- begin-user-doc --> | ||
285 | * <!-- end-user-doc --> | ||
286 | * @deprecated | ||
287 | * @generated | ||
288 | */ | ||
289 | @Deprecated | ||
290 | public static SatellitePackage getPackage() { | ||
291 | return SatellitePackage.eINSTANCE; | ||
292 | } | ||
293 | |||
294 | } //SatelliteFactoryImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java new file mode 100644 index 00000000..2347fe07 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java | |||
@@ -0,0 +1,690 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
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 | import org.eclipse.emf.ecore.impl.EPackageImpl; | ||
12 | |||
13 | import satellite.AntennaGain; | ||
14 | import satellite.CommSubsystem; | ||
15 | import satellite.CommunicatingElement; | ||
16 | import satellite.ConstellationMission; | ||
17 | import satellite.CubeSat3U; | ||
18 | import satellite.CubeSat6U; | ||
19 | import satellite.DirectedCommunicationLink; | ||
20 | import satellite.GroundStationNetwork; | ||
21 | import satellite.InterferometryMission; | ||
22 | import satellite.InterferometryPayload; | ||
23 | import satellite.Payload; | ||
24 | import satellite.SatelliteFactory; | ||
25 | import satellite.SatellitePackage; | ||
26 | import satellite.SmallSat; | ||
27 | import satellite.Spacecraft; | ||
28 | import satellite.SpacecraftKind; | ||
29 | import satellite.TransceiverBand; | ||
30 | |||
31 | /** | ||
32 | * <!-- begin-user-doc --> | ||
33 | * An implementation of the model <b>Package</b>. | ||
34 | * <!-- end-user-doc --> | ||
35 | * @generated | ||
36 | */ | ||
37 | public class SatellitePackageImpl extends EPackageImpl implements SatellitePackage { | ||
38 | /** | ||
39 | * <!-- begin-user-doc --> | ||
40 | * <!-- end-user-doc --> | ||
41 | * @generated | ||
42 | */ | ||
43 | private EClass constellationMissionEClass = null; | ||
44 | |||
45 | /** | ||
46 | * <!-- begin-user-doc --> | ||
47 | * <!-- end-user-doc --> | ||
48 | * @generated | ||
49 | */ | ||
50 | private EClass interferometryMissionEClass = null; | ||
51 | |||
52 | /** | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <!-- end-user-doc --> | ||
55 | * @generated | ||
56 | */ | ||
57 | private EClass communicatingElementEClass = null; | ||
58 | |||
59 | /** | ||
60 | * <!-- begin-user-doc --> | ||
61 | * <!-- end-user-doc --> | ||
62 | * @generated | ||
63 | */ | ||
64 | private EClass groundStationNetworkEClass = null; | ||
65 | |||
66 | /** | ||
67 | * <!-- begin-user-doc --> | ||
68 | * <!-- end-user-doc --> | ||
69 | * @generated | ||
70 | */ | ||
71 | private EClass spacecraftEClass = null; | ||
72 | |||
73 | /** | ||
74 | * <!-- begin-user-doc --> | ||
75 | * <!-- end-user-doc --> | ||
76 | * @generated | ||
77 | */ | ||
78 | private EClass commSubsystemEClass = null; | ||
79 | |||
80 | /** | ||
81 | * <!-- begin-user-doc --> | ||
82 | * <!-- end-user-doc --> | ||
83 | * @generated | ||
84 | */ | ||
85 | private EClass directedCommunicationLinkEClass = null; | ||
86 | |||
87 | /** | ||
88 | * <!-- begin-user-doc --> | ||
89 | * <!-- end-user-doc --> | ||
90 | * @generated | ||
91 | */ | ||
92 | private EClass payloadEClass = null; | ||
93 | |||
94 | /** | ||
95 | * <!-- begin-user-doc --> | ||
96 | * <!-- end-user-doc --> | ||
97 | * @generated | ||
98 | */ | ||
99 | private EClass interferometryPayloadEClass = null; | ||
100 | |||
101 | /** | ||
102 | * <!-- begin-user-doc --> | ||
103 | * <!-- end-user-doc --> | ||
104 | * @generated | ||
105 | */ | ||
106 | private EClass cubeSat3UEClass = null; | ||
107 | |||
108 | /** | ||
109 | * <!-- begin-user-doc --> | ||
110 | * <!-- end-user-doc --> | ||
111 | * @generated | ||
112 | */ | ||
113 | private EClass cubeSat6UEClass = null; | ||
114 | |||
115 | /** | ||
116 | * <!-- begin-user-doc --> | ||
117 | * <!-- end-user-doc --> | ||
118 | * @generated | ||
119 | */ | ||
120 | private EClass smallSatEClass = null; | ||
121 | |||
122 | /** | ||
123 | * <!-- begin-user-doc --> | ||
124 | * <!-- end-user-doc --> | ||
125 | * @generated | ||
126 | */ | ||
127 | private EEnum transceiverBandEEnum = null; | ||
128 | |||
129 | /** | ||
130 | * <!-- begin-user-doc --> | ||
131 | * <!-- end-user-doc --> | ||
132 | * @generated | ||
133 | */ | ||
134 | private EEnum antennaGainEEnum = null; | ||
135 | |||
136 | /** | ||
137 | * <!-- begin-user-doc --> | ||
138 | * <!-- end-user-doc --> | ||
139 | * @generated | ||
140 | */ | ||
141 | private EEnum spacecraftKindEEnum = null; | ||
142 | |||
143 | /** | ||
144 | * Creates an instance of the model <b>Package</b>, registered with | ||
145 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package | ||
146 | * package URI value. | ||
147 | * <p>Note: the correct way to create the package is via the static | ||
148 | * factory method {@link #init init()}, which also performs | ||
149 | * initialization of the package, or returns the registered package, | ||
150 | * if one already exists. | ||
151 | * <!-- begin-user-doc --> | ||
152 | * <!-- end-user-doc --> | ||
153 | * @see org.eclipse.emf.ecore.EPackage.Registry | ||
154 | * @see satellite.SatellitePackage#eNS_URI | ||
155 | * @see #init() | ||
156 | * @generated | ||
157 | */ | ||
158 | private SatellitePackageImpl() { | ||
159 | super(eNS_URI, SatelliteFactory.eINSTANCE); | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * <!-- begin-user-doc --> | ||
164 | * <!-- end-user-doc --> | ||
165 | * @generated | ||
166 | */ | ||
167 | private static boolean isInited = false; | ||
168 | |||
169 | /** | ||
170 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. | ||
171 | * | ||
172 | * <p>This method is used to initialize {@link SatellitePackage#eINSTANCE} when that field is accessed. | ||
173 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. | ||
174 | * <!-- begin-user-doc --> | ||
175 | * <!-- end-user-doc --> | ||
176 | * @see #eNS_URI | ||
177 | * @see #createPackageContents() | ||
178 | * @see #initializePackageContents() | ||
179 | * @generated | ||
180 | */ | ||
181 | public static SatellitePackage init() { | ||
182 | if (isInited) | ||
183 | return (SatellitePackage) EPackage.Registry.INSTANCE.getEPackage(SatellitePackage.eNS_URI); | ||
184 | |||
185 | // Obtain or create and register package | ||
186 | Object registeredSatellitePackage = EPackage.Registry.INSTANCE.get(eNS_URI); | ||
187 | SatellitePackageImpl theSatellitePackage = registeredSatellitePackage instanceof SatellitePackageImpl | ||
188 | ? (SatellitePackageImpl) registeredSatellitePackage | ||
189 | : new SatellitePackageImpl(); | ||
190 | |||
191 | isInited = true; | ||
192 | |||
193 | // Create package meta-data objects | ||
194 | theSatellitePackage.createPackageContents(); | ||
195 | |||
196 | // Initialize created meta-data | ||
197 | theSatellitePackage.initializePackageContents(); | ||
198 | |||
199 | // Mark meta-data to indicate it can't be changed | ||
200 | theSatellitePackage.freeze(); | ||
201 | |||
202 | // Update the registry and return the package | ||
203 | EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, theSatellitePackage); | ||
204 | return theSatellitePackage; | ||
205 | } | ||
206 | |||
207 | /** | ||
208 | * <!-- begin-user-doc --> | ||
209 | * <!-- end-user-doc --> | ||
210 | * @generated | ||
211 | */ | ||
212 | @Override | ||
213 | public EClass getConstellationMission() { | ||
214 | return constellationMissionEClass; | ||
215 | } | ||
216 | |||
217 | /** | ||
218 | * <!-- begin-user-doc --> | ||
219 | * <!-- end-user-doc --> | ||
220 | * @generated | ||
221 | */ | ||
222 | @Override | ||
223 | public EReference getConstellationMission_GroundStationNetwork() { | ||
224 | return (EReference) constellationMissionEClass.getEStructuralFeatures().get(0); | ||
225 | } | ||
226 | |||
227 | /** | ||
228 | * <!-- begin-user-doc --> | ||
229 | * <!-- end-user-doc --> | ||
230 | * @generated | ||
231 | */ | ||
232 | @Override | ||
233 | public EReference getConstellationMission_Spacecraft() { | ||
234 | return (EReference) constellationMissionEClass.getEStructuralFeatures().get(1); | ||
235 | } | ||
236 | |||
237 | /** | ||
238 | * <!-- begin-user-doc --> | ||
239 | * <!-- end-user-doc --> | ||
240 | * @generated | ||
241 | */ | ||
242 | @Override | ||
243 | public EClass getInterferometryMission() { | ||
244 | return interferometryMissionEClass; | ||
245 | } | ||
246 | |||
247 | /** | ||
248 | * <!-- begin-user-doc --> | ||
249 | * <!-- end-user-doc --> | ||
250 | * @generated | ||
251 | */ | ||
252 | @Override | ||
253 | public EAttribute getInterferometryMission_ObservationTime() { | ||
254 | return (EAttribute) interferometryMissionEClass.getEStructuralFeatures().get(0); | ||
255 | } | ||
256 | |||
257 | /** | ||
258 | * <!-- begin-user-doc --> | ||
259 | * <!-- end-user-doc --> | ||
260 | * @generated | ||
261 | */ | ||
262 | @Override | ||
263 | public EClass getCommunicatingElement() { | ||
264 | return communicatingElementEClass; | ||
265 | } | ||
266 | |||
267 | /** | ||
268 | * <!-- begin-user-doc --> | ||
269 | * <!-- end-user-doc --> | ||
270 | * @generated | ||
271 | */ | ||
272 | @Override | ||
273 | public EReference getCommunicatingElement_CommSubsystem() { | ||
274 | return (EReference) communicatingElementEClass.getEStructuralFeatures().get(0); | ||
275 | } | ||
276 | |||
277 | /** | ||
278 | * <!-- begin-user-doc --> | ||
279 | * <!-- end-user-doc --> | ||
280 | * @generated | ||
281 | */ | ||
282 | @Override | ||
283 | public EReference getCommunicatingElement_CommunicationLink() { | ||
284 | return (EReference) communicatingElementEClass.getEStructuralFeatures().get(1); | ||
285 | } | ||
286 | |||
287 | /** | ||
288 | * <!-- begin-user-doc --> | ||
289 | * <!-- end-user-doc --> | ||
290 | * @generated | ||
291 | */ | ||
292 | @Override | ||
293 | public EClass getGroundStationNetwork() { | ||
294 | return groundStationNetworkEClass; | ||
295 | } | ||
296 | |||
297 | /** | ||
298 | * <!-- begin-user-doc --> | ||
299 | * <!-- end-user-doc --> | ||
300 | * @generated | ||
301 | */ | ||
302 | @Override | ||
303 | public EClass getSpacecraft() { | ||
304 | return spacecraftEClass; | ||
305 | } | ||
306 | |||
307 | /** | ||
308 | * <!-- begin-user-doc --> | ||
309 | * <!-- end-user-doc --> | ||
310 | * @generated | ||
311 | */ | ||
312 | @Override | ||
313 | public EReference getSpacecraft_Payload() { | ||
314 | return (EReference) spacecraftEClass.getEStructuralFeatures().get(0); | ||
315 | } | ||
316 | |||
317 | /** | ||
318 | * <!-- begin-user-doc --> | ||
319 | * <!-- end-user-doc --> | ||
320 | * @generated | ||
321 | */ | ||
322 | @Override | ||
323 | public EAttribute getSpacecraft_Kind() { | ||
324 | return (EAttribute) spacecraftEClass.getEStructuralFeatures().get(1); | ||
325 | } | ||
326 | |||
327 | /** | ||
328 | * <!-- begin-user-doc --> | ||
329 | * <!-- end-user-doc --> | ||
330 | * @generated | ||
331 | */ | ||
332 | @Override | ||
333 | public EClass getCommSubsystem() { | ||
334 | return commSubsystemEClass; | ||
335 | } | ||
336 | |||
337 | /** | ||
338 | * <!-- begin-user-doc --> | ||
339 | * <!-- end-user-doc --> | ||
340 | * @generated | ||
341 | */ | ||
342 | @Override | ||
343 | public EAttribute getCommSubsystem_Band() { | ||
344 | return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(0); | ||
345 | } | ||
346 | |||
347 | /** | ||
348 | * <!-- begin-user-doc --> | ||
349 | * <!-- end-user-doc --> | ||
350 | * @generated | ||
351 | */ | ||
352 | @Override | ||
353 | public EAttribute getCommSubsystem_Gain() { | ||
354 | return (EAttribute) commSubsystemEClass.getEStructuralFeatures().get(1); | ||
355 | } | ||
356 | |||
357 | /** | ||
358 | * <!-- begin-user-doc --> | ||
359 | * <!-- end-user-doc --> | ||
360 | * @generated | ||
361 | */ | ||
362 | @Override | ||
363 | public EClass getDirectedCommunicationLink() { | ||
364 | return directedCommunicationLinkEClass; | ||
365 | } | ||
366 | |||
367 | /** | ||
368 | * <!-- begin-user-doc --> | ||
369 | * <!-- end-user-doc --> | ||
370 | * @generated | ||
371 | */ | ||
372 | @Override | ||
373 | public EReference getDirectedCommunicationLink_Source() { | ||
374 | return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(0); | ||
375 | } | ||
376 | |||
377 | /** | ||
378 | * <!-- begin-user-doc --> | ||
379 | * <!-- end-user-doc --> | ||
380 | * @generated | ||
381 | */ | ||
382 | @Override | ||
383 | public EReference getDirectedCommunicationLink_Target() { | ||
384 | return (EReference) directedCommunicationLinkEClass.getEStructuralFeatures().get(1); | ||
385 | } | ||
386 | |||
387 | /** | ||
388 | * <!-- begin-user-doc --> | ||
389 | * <!-- end-user-doc --> | ||
390 | * @generated | ||
391 | */ | ||
392 | @Override | ||
393 | public EClass getPayload() { | ||
394 | return payloadEClass; | ||
395 | } | ||
396 | |||
397 | /** | ||
398 | * <!-- begin-user-doc --> | ||
399 | * <!-- end-user-doc --> | ||
400 | * @generated | ||
401 | */ | ||
402 | @Override | ||
403 | public EClass getInterferometryPayload() { | ||
404 | return interferometryPayloadEClass; | ||
405 | } | ||
406 | |||
407 | /** | ||
408 | * <!-- begin-user-doc --> | ||
409 | * <!-- end-user-doc --> | ||
410 | * @generated | ||
411 | */ | ||
412 | @Override | ||
413 | public EClass getCubeSat3U() { | ||
414 | return cubeSat3UEClass; | ||
415 | } | ||
416 | |||
417 | /** | ||
418 | * <!-- begin-user-doc --> | ||
419 | * <!-- end-user-doc --> | ||
420 | * @generated | ||
421 | */ | ||
422 | @Override | ||
423 | public EClass getCubeSat6U() { | ||
424 | return cubeSat6UEClass; | ||
425 | } | ||
426 | |||
427 | /** | ||
428 | * <!-- begin-user-doc --> | ||
429 | * <!-- end-user-doc --> | ||
430 | * @generated | ||
431 | */ | ||
432 | @Override | ||
433 | public EClass getSmallSat() { | ||
434 | return smallSatEClass; | ||
435 | } | ||
436 | |||
437 | /** | ||
438 | * <!-- begin-user-doc --> | ||
439 | * <!-- end-user-doc --> | ||
440 | * @generated | ||
441 | */ | ||
442 | @Override | ||
443 | public EEnum getTransceiverBand() { | ||
444 | return transceiverBandEEnum; | ||
445 | } | ||
446 | |||
447 | /** | ||
448 | * <!-- begin-user-doc --> | ||
449 | * <!-- end-user-doc --> | ||
450 | * @generated | ||
451 | */ | ||
452 | @Override | ||
453 | public EEnum getAntennaGain() { | ||
454 | return antennaGainEEnum; | ||
455 | } | ||
456 | |||
457 | /** | ||
458 | * <!-- begin-user-doc --> | ||
459 | * <!-- end-user-doc --> | ||
460 | * @generated | ||
461 | */ | ||
462 | @Override | ||
463 | public EEnum getSpacecraftKind() { | ||
464 | return spacecraftKindEEnum; | ||
465 | } | ||
466 | |||
467 | /** | ||
468 | * <!-- begin-user-doc --> | ||
469 | * <!-- end-user-doc --> | ||
470 | * @generated | ||
471 | */ | ||
472 | @Override | ||
473 | public SatelliteFactory getSatelliteFactory() { | ||
474 | return (SatelliteFactory) getEFactoryInstance(); | ||
475 | } | ||
476 | |||
477 | /** | ||
478 | * <!-- begin-user-doc --> | ||
479 | * <!-- end-user-doc --> | ||
480 | * @generated | ||
481 | */ | ||
482 | private boolean isCreated = false; | ||
483 | |||
484 | /** | ||
485 | * Creates the meta-model objects for the package. This method is | ||
486 | * guarded to have no affect on any invocation but its first. | ||
487 | * <!-- begin-user-doc --> | ||
488 | * <!-- end-user-doc --> | ||
489 | * @generated | ||
490 | */ | ||
491 | public void createPackageContents() { | ||
492 | if (isCreated) | ||
493 | return; | ||
494 | isCreated = true; | ||
495 | |||
496 | // Create classes and their features | ||
497 | constellationMissionEClass = createEClass(CONSTELLATION_MISSION); | ||
498 | createEReference(constellationMissionEClass, CONSTELLATION_MISSION__GROUND_STATION_NETWORK); | ||
499 | createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT); | ||
500 | |||
501 | interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION); | ||
502 | createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME); | ||
503 | |||
504 | communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT); | ||
505 | createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM); | ||
506 | createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMMUNICATION_LINK); | ||
507 | |||
508 | groundStationNetworkEClass = createEClass(GROUND_STATION_NETWORK); | ||
509 | |||
510 | spacecraftEClass = createEClass(SPACECRAFT); | ||
511 | createEReference(spacecraftEClass, SPACECRAFT__PAYLOAD); | ||
512 | createEAttribute(spacecraftEClass, SPACECRAFT__KIND); | ||
513 | |||
514 | commSubsystemEClass = createEClass(COMM_SUBSYSTEM); | ||
515 | createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__BAND); | ||
516 | createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__GAIN); | ||
517 | |||
518 | directedCommunicationLinkEClass = createEClass(DIRECTED_COMMUNICATION_LINK); | ||
519 | createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__SOURCE); | ||
520 | createEReference(directedCommunicationLinkEClass, DIRECTED_COMMUNICATION_LINK__TARGET); | ||
521 | |||
522 | payloadEClass = createEClass(PAYLOAD); | ||
523 | |||
524 | interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD); | ||
525 | |||
526 | cubeSat3UEClass = createEClass(CUBE_SAT3_U); | ||
527 | |||
528 | cubeSat6UEClass = createEClass(CUBE_SAT6_U); | ||
529 | |||
530 | smallSatEClass = createEClass(SMALL_SAT); | ||
531 | |||
532 | // Create enums | ||
533 | transceiverBandEEnum = createEEnum(TRANSCEIVER_BAND); | ||
534 | antennaGainEEnum = createEEnum(ANTENNA_GAIN); | ||
535 | spacecraftKindEEnum = createEEnum(SPACECRAFT_KIND); | ||
536 | } | ||
537 | |||
538 | /** | ||
539 | * <!-- begin-user-doc --> | ||
540 | * <!-- end-user-doc --> | ||
541 | * @generated | ||
542 | */ | ||
543 | private boolean isInitialized = false; | ||
544 | |||
545 | /** | ||
546 | * Complete the initialization of the package and its meta-model. This | ||
547 | * method is guarded to have no affect on any invocation but its first. | ||
548 | * <!-- begin-user-doc --> | ||
549 | * <!-- end-user-doc --> | ||
550 | * @generated | ||
551 | */ | ||
552 | public void initializePackageContents() { | ||
553 | if (isInitialized) | ||
554 | return; | ||
555 | isInitialized = true; | ||
556 | |||
557 | // Initialize package | ||
558 | setName(eNAME); | ||
559 | setNsPrefix(eNS_PREFIX); | ||
560 | setNsURI(eNS_URI); | ||
561 | |||
562 | // Create type parameters | ||
563 | |||
564 | // Set bounds for type parameters | ||
565 | |||
566 | // Add supertypes to classes | ||
567 | interferometryMissionEClass.getESuperTypes().add(this.getConstellationMission()); | ||
568 | groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement()); | ||
569 | spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement()); | ||
570 | interferometryPayloadEClass.getESuperTypes().add(this.getPayload()); | ||
571 | cubeSat3UEClass.getESuperTypes().add(this.getSpacecraft()); | ||
572 | cubeSat6UEClass.getESuperTypes().add(this.getSpacecraft()); | ||
573 | smallSatEClass.getESuperTypes().add(this.getSpacecraft()); | ||
574 | |||
575 | // Initialize classes, features, and operations; add parameters | ||
576 | initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT, | ||
577 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
578 | initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null, | ||
579 | "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, | ||
580 | IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
581 | initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, 50, | ||
582 | ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, | ||
583 | !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
584 | |||
585 | initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT, | ||
586 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
587 | initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEFloat(), "observationTime", "2.0", | ||
588 | 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, | ||
589 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
590 | |||
591 | initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT, | ||
592 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
593 | initEReference(getCommunicatingElement_CommSubsystem(), this.getCommSubsystem(), null, "commSubsystem", null, 1, | ||
594 | 2, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, | ||
595 | !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
596 | initEReference(getCommunicatingElement_CommunicationLink(), this.getDirectedCommunicationLink(), null, | ||
597 | "communicationLink", null, 0, 1, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, | ||
598 | IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
599 | |||
600 | initEClass(groundStationNetworkEClass, GroundStationNetwork.class, "GroundStationNetwork", !IS_ABSTRACT, | ||
601 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
602 | |||
603 | initEClass(spacecraftEClass, Spacecraft.class, "Spacecraft", IS_ABSTRACT, !IS_INTERFACE, | ||
604 | IS_GENERATED_INSTANCE_CLASS); | ||
605 | initEReference(getSpacecraft_Payload(), this.getPayload(), null, "payload", null, 0, 1, Spacecraft.class, | ||
606 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, | ||
607 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
608 | initEAttribute(getSpacecraft_Kind(), this.getSpacecraftKind(), "kind", null, 1, 1, Spacecraft.class, | ||
609 | IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); | ||
610 | |||
611 | initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, | ||
612 | IS_GENERATED_INSTANCE_CLASS); | ||
613 | initEAttribute(getCommSubsystem_Band(), this.getTransceiverBand(), "band", null, 1, 1, CommSubsystem.class, | ||
614 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
615 | initEAttribute(getCommSubsystem_Gain(), this.getAntennaGain(), "gain", null, 1, 1, CommSubsystem.class, | ||
616 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
617 | |||
618 | initEClass(directedCommunicationLinkEClass, DirectedCommunicationLink.class, "DirectedCommunicationLink", | ||
619 | !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
620 | initEReference(getDirectedCommunicationLink_Source(), this.getCommSubsystem(), null, "source", null, 1, 1, | ||
621 | DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, | ||
622 | IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
623 | initEReference(getDirectedCommunicationLink_Target(), this.getCommSubsystem(), null, "target", null, 1, 1, | ||
624 | DirectedCommunicationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, | ||
625 | IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
626 | |||
627 | initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
628 | |||
629 | initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT, | ||
630 | !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
631 | |||
632 | initEClass(cubeSat3UEClass, CubeSat3U.class, "CubeSat3U", !IS_ABSTRACT, !IS_INTERFACE, | ||
633 | IS_GENERATED_INSTANCE_CLASS); | ||
634 | |||
635 | initEClass(cubeSat6UEClass, CubeSat6U.class, "CubeSat6U", !IS_ABSTRACT, !IS_INTERFACE, | ||
636 | IS_GENERATED_INSTANCE_CLASS); | ||
637 | |||
638 | initEClass(smallSatEClass, SmallSat.class, "SmallSat", !IS_ABSTRACT, !IS_INTERFACE, | ||
639 | IS_GENERATED_INSTANCE_CLASS); | ||
640 | |||
641 | // Initialize enums and add enum literals | ||
642 | initEEnum(transceiverBandEEnum, TransceiverBand.class, "TransceiverBand"); | ||
643 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.UHF); | ||
644 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.X); | ||
645 | addEEnumLiteral(transceiverBandEEnum, TransceiverBand.KA); | ||
646 | |||
647 | initEEnum(antennaGainEEnum, AntennaGain.class, "AntennaGain"); | ||
648 | addEEnumLiteral(antennaGainEEnum, AntennaGain.LOW); | ||
649 | addEEnumLiteral(antennaGainEEnum, AntennaGain.MEDIUM); | ||
650 | addEEnumLiteral(antennaGainEEnum, AntennaGain.HIGH); | ||
651 | |||
652 | initEEnum(spacecraftKindEEnum, SpacecraftKind.class, "SpacecraftKind"); | ||
653 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT3_U); | ||
654 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.CUBE_SAT6_U); | ||
655 | addEEnumLiteral(spacecraftKindEEnum, SpacecraftKind.SMALL_SAT); | ||
656 | |||
657 | // Create resource | ||
658 | createResource(eNS_URI); | ||
659 | |||
660 | // Create annotations | ||
661 | // http://www.eclipse.org/emf/2002/Ecore | ||
662 | createEcoreAnnotations(); | ||
663 | // org.eclipse.viatra.query.querybasedfeature | ||
664 | createOrgAnnotations(); | ||
665 | } | ||
666 | |||
667 | /** | ||
668 | * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>. | ||
669 | * <!-- begin-user-doc --> | ||
670 | * <!-- end-user-doc --> | ||
671 | * @generated | ||
672 | */ | ||
673 | protected void createEcoreAnnotations() { | ||
674 | String source = "http://www.eclipse.org/emf/2002/Ecore"; | ||
675 | addAnnotation(this, source, new String[] { "settingDelegates", "org.eclipse.viatra.query.querybasedfeature" }); | ||
676 | } | ||
677 | |||
678 | /** | ||
679 | * Initializes the annotations for <b>org.eclipse.viatra.query.querybasedfeature</b>. | ||
680 | * <!-- begin-user-doc --> | ||
681 | * <!-- end-user-doc --> | ||
682 | * @generated | ||
683 | */ | ||
684 | protected void createOrgAnnotations() { | ||
685 | String source = "org.eclipse.viatra.query.querybasedfeature"; | ||
686 | addAnnotation(getSpacecraft_Kind(), source, | ||
687 | new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind" }); | ||
688 | } | ||
689 | |||
690 | } //SatellitePackageImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java new file mode 100644 index 00000000..1785dbf3 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SmallSatImpl.java | |||
@@ -0,0 +1,37 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | |||
7 | import satellite.SatellitePackage; | ||
8 | import satellite.SmallSat; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * An implementation of the model object '<em><b>Small Sat</b></em>'. | ||
13 | * <!-- end-user-doc --> | ||
14 | * | ||
15 | * @generated | ||
16 | */ | ||
17 | public class SmallSatImpl extends SpacecraftImpl implements SmallSat { | ||
18 | /** | ||
19 | * <!-- begin-user-doc --> | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | protected SmallSatImpl() { | ||
24 | super(); | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | @Override | ||
33 | protected EClass eStaticClass() { | ||
34 | return SatellitePackage.Literals.SMALL_SAT; | ||
35 | } | ||
36 | |||
37 | } //SmallSatImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java new file mode 100644 index 00000000..73609fbd --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SpacecraftImpl.java | |||
@@ -0,0 +1,212 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.impl; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Notification; | ||
6 | import org.eclipse.emf.common.notify.NotificationChain; | ||
7 | |||
8 | import org.eclipse.emf.ecore.EClass; | ||
9 | import org.eclipse.emf.ecore.EStructuralFeature; | ||
10 | import org.eclipse.emf.ecore.InternalEObject; | ||
11 | |||
12 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
13 | |||
14 | import satellite.Payload; | ||
15 | import satellite.SatellitePackage; | ||
16 | import satellite.Spacecraft; | ||
17 | import satellite.SpacecraftKind; | ||
18 | |||
19 | /** | ||
20 | * <!-- begin-user-doc --> | ||
21 | * An implementation of the model object '<em><b>Spacecraft</b></em>'. | ||
22 | * <!-- end-user-doc --> | ||
23 | * <p> | ||
24 | * The following features are implemented: | ||
25 | * </p> | ||
26 | * <ul> | ||
27 | * <li>{@link satellite.impl.SpacecraftImpl#getPayload <em>Payload</em>}</li> | ||
28 | * <li>{@link satellite.impl.SpacecraftImpl#getKind <em>Kind</em>}</li> | ||
29 | * </ul> | ||
30 | * | ||
31 | * @generated | ||
32 | */ | ||
33 | public abstract class SpacecraftImpl extends CommunicatingElementImpl implements Spacecraft { | ||
34 | /** | ||
35 | * The cached value of the '{@link #getPayload() <em>Payload</em>}' containment reference. | ||
36 | * <!-- begin-user-doc --> | ||
37 | * <!-- end-user-doc --> | ||
38 | * @see #getPayload() | ||
39 | * @generated | ||
40 | * @ordered | ||
41 | */ | ||
42 | protected Payload payload; | ||
43 | |||
44 | /** | ||
45 | * The cached setting delegate for the '{@link #getKind() <em>Kind</em>}' attribute. | ||
46 | * <!-- begin-user-doc --> | ||
47 | * <!-- end-user-doc --> | ||
48 | * @see #getKind() | ||
49 | * @generated | ||
50 | * @ordered | ||
51 | */ | ||
52 | protected EStructuralFeature.Internal.SettingDelegate KIND__ESETTING_DELEGATE = ((EStructuralFeature.Internal) SatellitePackage.Literals.SPACECRAFT__KIND) | ||
53 | .getSettingDelegate(); | ||
54 | |||
55 | /** | ||
56 | * <!-- begin-user-doc --> | ||
57 | * <!-- end-user-doc --> | ||
58 | * @generated | ||
59 | */ | ||
60 | protected SpacecraftImpl() { | ||
61 | super(); | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * <!-- begin-user-doc --> | ||
66 | * <!-- end-user-doc --> | ||
67 | * @generated | ||
68 | */ | ||
69 | @Override | ||
70 | protected EClass eStaticClass() { | ||
71 | return SatellitePackage.Literals.SPACECRAFT; | ||
72 | } | ||
73 | |||
74 | /** | ||
75 | * <!-- begin-user-doc --> | ||
76 | * <!-- end-user-doc --> | ||
77 | * @generated | ||
78 | */ | ||
79 | @Override | ||
80 | public Payload getPayload() { | ||
81 | return payload; | ||
82 | } | ||
83 | |||
84 | /** | ||
85 | * <!-- begin-user-doc --> | ||
86 | * <!-- end-user-doc --> | ||
87 | * @generated | ||
88 | */ | ||
89 | public NotificationChain basicSetPayload(Payload newPayload, NotificationChain msgs) { | ||
90 | Payload oldPayload = payload; | ||
91 | payload = newPayload; | ||
92 | if (eNotificationRequired()) { | ||
93 | ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, | ||
94 | SatellitePackage.SPACECRAFT__PAYLOAD, oldPayload, newPayload); | ||
95 | if (msgs == null) | ||
96 | msgs = notification; | ||
97 | else | ||
98 | msgs.add(notification); | ||
99 | } | ||
100 | return msgs; | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * <!-- begin-user-doc --> | ||
105 | * <!-- end-user-doc --> | ||
106 | * @generated | ||
107 | */ | ||
108 | @Override | ||
109 | public void setPayload(Payload newPayload) { | ||
110 | if (newPayload != payload) { | ||
111 | NotificationChain msgs = null; | ||
112 | if (payload != null) | ||
113 | msgs = ((InternalEObject) payload).eInverseRemove(this, | ||
114 | EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs); | ||
115 | if (newPayload != null) | ||
116 | msgs = ((InternalEObject) newPayload).eInverseAdd(this, | ||
117 | EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs); | ||
118 | msgs = basicSetPayload(newPayload, msgs); | ||
119 | if (msgs != null) | ||
120 | msgs.dispatch(); | ||
121 | } else if (eNotificationRequired()) | ||
122 | eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, newPayload, | ||
123 | newPayload)); | ||
124 | } | ||
125 | |||
126 | /** | ||
127 | * <!-- begin-user-doc --> | ||
128 | * <!-- end-user-doc --> | ||
129 | * @generated | ||
130 | */ | ||
131 | @Override | ||
132 | public SpacecraftKind getKind() { | ||
133 | return (SpacecraftKind) KIND__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false); | ||
134 | } | ||
135 | |||
136 | /** | ||
137 | * <!-- begin-user-doc --> | ||
138 | * <!-- end-user-doc --> | ||
139 | * @generated | ||
140 | */ | ||
141 | @Override | ||
142 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | ||
143 | switch (featureID) { | ||
144 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
145 | return basicSetPayload(null, msgs); | ||
146 | } | ||
147 | return super.eInverseRemove(otherEnd, featureID, msgs); | ||
148 | } | ||
149 | |||
150 | /** | ||
151 | * <!-- begin-user-doc --> | ||
152 | * <!-- end-user-doc --> | ||
153 | * @generated | ||
154 | */ | ||
155 | @Override | ||
156 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
157 | switch (featureID) { | ||
158 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
159 | return getPayload(); | ||
160 | case SatellitePackage.SPACECRAFT__KIND: | ||
161 | return getKind(); | ||
162 | } | ||
163 | return super.eGet(featureID, resolve, coreType); | ||
164 | } | ||
165 | |||
166 | /** | ||
167 | * <!-- begin-user-doc --> | ||
168 | * <!-- end-user-doc --> | ||
169 | * @generated | ||
170 | */ | ||
171 | @Override | ||
172 | public void eSet(int featureID, Object newValue) { | ||
173 | switch (featureID) { | ||
174 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
175 | setPayload((Payload) newValue); | ||
176 | return; | ||
177 | } | ||
178 | super.eSet(featureID, newValue); | ||
179 | } | ||
180 | |||
181 | /** | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @generated | ||
185 | */ | ||
186 | @Override | ||
187 | public void eUnset(int featureID) { | ||
188 | switch (featureID) { | ||
189 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
190 | setPayload((Payload) null); | ||
191 | return; | ||
192 | } | ||
193 | super.eUnset(featureID); | ||
194 | } | ||
195 | |||
196 | /** | ||
197 | * <!-- begin-user-doc --> | ||
198 | * <!-- end-user-doc --> | ||
199 | * @generated | ||
200 | */ | ||
201 | @Override | ||
202 | public boolean eIsSet(int featureID) { | ||
203 | switch (featureID) { | ||
204 | case SatellitePackage.SPACECRAFT__PAYLOAD: | ||
205 | return payload != null; | ||
206 | case SatellitePackage.SPACECRAFT__KIND: | ||
207 | return KIND__ESETTING_DELEGATE.dynamicIsSet(this, null, 0); | ||
208 | } | ||
209 | return super.eIsSet(featureID); | ||
210 | } | ||
211 | |||
212 | } //SpacecraftImpl | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java new file mode 100644 index 00000000..1ecf7b19 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteAdapterFactory.java | |||
@@ -0,0 +1,328 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.util; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Adapter; | ||
6 | import org.eclipse.emf.common.notify.Notifier; | ||
7 | |||
8 | import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; | ||
9 | |||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | |||
12 | import satellite.*; | ||
13 | |||
14 | /** | ||
15 | * <!-- begin-user-doc --> | ||
16 | * The <b>Adapter Factory</b> for the model. | ||
17 | * It provides an adapter <code>createXXX</code> method for each class of the model. | ||
18 | * <!-- end-user-doc --> | ||
19 | * @see satellite.SatellitePackage | ||
20 | * @generated | ||
21 | */ | ||
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 caseCubeSat3U(CubeSat3U object) { | ||
116 | return createCubeSat3UAdapter(); | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public Adapter caseCubeSat6U(CubeSat6U object) { | ||
121 | return createCubeSat6UAdapter(); | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public Adapter caseSmallSat(SmallSat object) { | ||
126 | return createSmallSatAdapter(); | ||
127 | } | ||
128 | |||
129 | @Override | ||
130 | public Adapter defaultCase(EObject object) { | ||
131 | return createEObjectAdapter(); | ||
132 | } | ||
133 | }; | ||
134 | |||
135 | /** | ||
136 | * Creates an adapter for the <code>target</code>. | ||
137 | * <!-- begin-user-doc --> | ||
138 | * <!-- end-user-doc --> | ||
139 | * @param target the object to adapt. | ||
140 | * @return the adapter for the <code>target</code>. | ||
141 | * @generated | ||
142 | */ | ||
143 | @Override | ||
144 | public Adapter createAdapter(Notifier target) { | ||
145 | return modelSwitch.doSwitch((EObject) target); | ||
146 | } | ||
147 | |||
148 | /** | ||
149 | * Creates a new adapter for an object of class '{@link satellite.ConstellationMission <em>Constellation Mission</em>}'. | ||
150 | * <!-- begin-user-doc --> | ||
151 | * This default implementation returns null so that we can easily ignore cases; | ||
152 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
153 | * <!-- end-user-doc --> | ||
154 | * @return the new adapter. | ||
155 | * @see satellite.ConstellationMission | ||
156 | * @generated | ||
157 | */ | ||
158 | public Adapter createConstellationMissionAdapter() { | ||
159 | return null; | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * Creates a new adapter for an object of class '{@link satellite.InterferometryMission <em>Interferometry Mission</em>}'. | ||
164 | * <!-- begin-user-doc --> | ||
165 | * This default implementation returns null so that we can easily ignore cases; | ||
166 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
167 | * <!-- end-user-doc --> | ||
168 | * @return the new adapter. | ||
169 | * @see satellite.InterferometryMission | ||
170 | * @generated | ||
171 | */ | ||
172 | public Adapter createInterferometryMissionAdapter() { | ||
173 | return null; | ||
174 | } | ||
175 | |||
176 | /** | ||
177 | * Creates a new adapter for an object of class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'. | ||
178 | * <!-- begin-user-doc --> | ||
179 | * This default implementation returns null so that we can easily ignore cases; | ||
180 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
181 | * <!-- end-user-doc --> | ||
182 | * @return the new adapter. | ||
183 | * @see satellite.CommunicatingElement | ||
184 | * @generated | ||
185 | */ | ||
186 | public Adapter createCommunicatingElementAdapter() { | ||
187 | return null; | ||
188 | } | ||
189 | |||
190 | /** | ||
191 | * Creates a new adapter for an object of class '{@link satellite.GroundStationNetwork <em>Ground Station Network</em>}'. | ||
192 | * <!-- begin-user-doc --> | ||
193 | * This default implementation returns null so that we can easily ignore cases; | ||
194 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
195 | * <!-- end-user-doc --> | ||
196 | * @return the new adapter. | ||
197 | * @see satellite.GroundStationNetwork | ||
198 | * @generated | ||
199 | */ | ||
200 | public Adapter createGroundStationNetworkAdapter() { | ||
201 | return null; | ||
202 | } | ||
203 | |||
204 | /** | ||
205 | * Creates a new adapter for an object of class '{@link satellite.Spacecraft <em>Spacecraft</em>}'. | ||
206 | * <!-- begin-user-doc --> | ||
207 | * This default implementation returns null so that we can easily ignore cases; | ||
208 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
209 | * <!-- end-user-doc --> | ||
210 | * @return the new adapter. | ||
211 | * @see satellite.Spacecraft | ||
212 | * @generated | ||
213 | */ | ||
214 | public Adapter createSpacecraftAdapter() { | ||
215 | return null; | ||
216 | } | ||
217 | |||
218 | /** | ||
219 | * Creates a new adapter for an object of class '{@link satellite.CommSubsystem <em>Comm Subsystem</em>}'. | ||
220 | * <!-- begin-user-doc --> | ||
221 | * This default implementation returns null so that we can easily ignore cases; | ||
222 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
223 | * <!-- end-user-doc --> | ||
224 | * @return the new adapter. | ||
225 | * @see satellite.CommSubsystem | ||
226 | * @generated | ||
227 | */ | ||
228 | public Adapter createCommSubsystemAdapter() { | ||
229 | return null; | ||
230 | } | ||
231 | |||
232 | /** | ||
233 | * Creates a new adapter for an object of class '{@link satellite.DirectedCommunicationLink <em>Directed Communication Link</em>}'. | ||
234 | * <!-- begin-user-doc --> | ||
235 | * This default implementation returns null so that we can easily ignore cases; | ||
236 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
237 | * <!-- end-user-doc --> | ||
238 | * @return the new adapter. | ||
239 | * @see satellite.DirectedCommunicationLink | ||
240 | * @generated | ||
241 | */ | ||
242 | public Adapter createDirectedCommunicationLinkAdapter() { | ||
243 | return null; | ||
244 | } | ||
245 | |||
246 | /** | ||
247 | * Creates a new adapter for an object of class '{@link satellite.Payload <em>Payload</em>}'. | ||
248 | * <!-- begin-user-doc --> | ||
249 | * This default implementation returns null so that we can easily ignore cases; | ||
250 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
251 | * <!-- end-user-doc --> | ||
252 | * @return the new adapter. | ||
253 | * @see satellite.Payload | ||
254 | * @generated | ||
255 | */ | ||
256 | public Adapter createPayloadAdapter() { | ||
257 | return null; | ||
258 | } | ||
259 | |||
260 | /** | ||
261 | * Creates a new adapter for an object of class '{@link satellite.InterferometryPayload <em>Interferometry Payload</em>}'. | ||
262 | * <!-- begin-user-doc --> | ||
263 | * This default implementation returns null so that we can easily ignore cases; | ||
264 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
265 | * <!-- end-user-doc --> | ||
266 | * @return the new adapter. | ||
267 | * @see satellite.InterferometryPayload | ||
268 | * @generated | ||
269 | */ | ||
270 | public Adapter createInterferometryPayloadAdapter() { | ||
271 | return null; | ||
272 | } | ||
273 | |||
274 | /** | ||
275 | * Creates a new adapter for an object of class '{@link satellite.CubeSat3U <em>Cube Sat3 U</em>}'. | ||
276 | * <!-- begin-user-doc --> | ||
277 | * This default implementation returns null so that we can easily ignore cases; | ||
278 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
279 | * <!-- end-user-doc --> | ||
280 | * @return the new adapter. | ||
281 | * @see satellite.CubeSat3U | ||
282 | * @generated | ||
283 | */ | ||
284 | public Adapter createCubeSat3UAdapter() { | ||
285 | return null; | ||
286 | } | ||
287 | |||
288 | /** | ||
289 | * Creates a new adapter for an object of class '{@link satellite.CubeSat6U <em>Cube Sat6 U</em>}'. | ||
290 | * <!-- begin-user-doc --> | ||
291 | * This default implementation returns null so that we can easily ignore cases; | ||
292 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
293 | * <!-- end-user-doc --> | ||
294 | * @return the new adapter. | ||
295 | * @see satellite.CubeSat6U | ||
296 | * @generated | ||
297 | */ | ||
298 | public Adapter createCubeSat6UAdapter() { | ||
299 | return null; | ||
300 | } | ||
301 | |||
302 | /** | ||
303 | * Creates a new adapter for an object of class '{@link satellite.SmallSat <em>Small Sat</em>}'. | ||
304 | * <!-- begin-user-doc --> | ||
305 | * This default implementation returns null so that we can easily ignore cases; | ||
306 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
307 | * <!-- end-user-doc --> | ||
308 | * @return the new adapter. | ||
309 | * @see satellite.SmallSat | ||
310 | * @generated | ||
311 | */ | ||
312 | public Adapter createSmallSatAdapter() { | ||
313 | return null; | ||
314 | } | ||
315 | |||
316 | /** | ||
317 | * Creates a new adapter for the default case. | ||
318 | * <!-- begin-user-doc --> | ||
319 | * This default implementation returns null. | ||
320 | * <!-- end-user-doc --> | ||
321 | * @return the new adapter. | ||
322 | * @generated | ||
323 | */ | ||
324 | public Adapter createEObjectAdapter() { | ||
325 | return null; | ||
326 | } | ||
327 | |||
328 | } //SatelliteAdapterFactory | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java new file mode 100644 index 00000000..3eb78d75 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/util/SatelliteSwitch.java | |||
@@ -0,0 +1,374 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package satellite.util; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EObject; | ||
6 | import org.eclipse.emf.ecore.EPackage; | ||
7 | |||
8 | import org.eclipse.emf.ecore.util.Switch; | ||
9 | |||
10 | import satellite.*; | ||
11 | |||
12 | /** | ||
13 | * <!-- begin-user-doc --> | ||
14 | * The <b>Switch</b> for the model's inheritance hierarchy. | ||
15 | * It supports the call {@link #doSwitch(EObject) doSwitch(object)} | ||
16 | * to invoke the <code>caseXXX</code> method for each class of the model, | ||
17 | * starting with the actual class of the object | ||
18 | * and proceeding up the inheritance hierarchy | ||
19 | * until a non-null result is returned, | ||
20 | * which is the result of the switch. | ||
21 | * <!-- end-user-doc --> | ||
22 | * @see satellite.SatellitePackage | ||
23 | * @generated | ||
24 | */ | ||
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 | case SatellitePackage.CUBE_SAT3_U: { | ||
141 | CubeSat3U cubeSat3U = (CubeSat3U) theEObject; | ||
142 | T result = caseCubeSat3U(cubeSat3U); | ||
143 | if (result == null) | ||
144 | result = caseSpacecraft(cubeSat3U); | ||
145 | if (result == null) | ||
146 | result = caseCommunicatingElement(cubeSat3U); | ||
147 | if (result == null) | ||
148 | result = defaultCase(theEObject); | ||
149 | return result; | ||
150 | } | ||
151 | case SatellitePackage.CUBE_SAT6_U: { | ||
152 | CubeSat6U cubeSat6U = (CubeSat6U) theEObject; | ||
153 | T result = caseCubeSat6U(cubeSat6U); | ||
154 | if (result == null) | ||
155 | result = caseSpacecraft(cubeSat6U); | ||
156 | if (result == null) | ||
157 | result = caseCommunicatingElement(cubeSat6U); | ||
158 | if (result == null) | ||
159 | result = defaultCase(theEObject); | ||
160 | return result; | ||
161 | } | ||
162 | case SatellitePackage.SMALL_SAT: { | ||
163 | SmallSat smallSat = (SmallSat) theEObject; | ||
164 | T result = caseSmallSat(smallSat); | ||
165 | if (result == null) | ||
166 | result = caseSpacecraft(smallSat); | ||
167 | if (result == null) | ||
168 | result = caseCommunicatingElement(smallSat); | ||
169 | if (result == null) | ||
170 | result = defaultCase(theEObject); | ||
171 | return result; | ||
172 | } | ||
173 | default: | ||
174 | return defaultCase(theEObject); | ||
175 | } | ||
176 | } | ||
177 | |||
178 | /** | ||
179 | * Returns the result of interpreting the object as an instance of '<em>Constellation Mission</em>'. | ||
180 | * <!-- begin-user-doc --> | ||
181 | * This implementation returns null; | ||
182 | * returning a non-null result will terminate the switch. | ||
183 | * <!-- end-user-doc --> | ||
184 | * @param object the target of the switch. | ||
185 | * @return the result of interpreting the object as an instance of '<em>Constellation Mission</em>'. | ||
186 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
187 | * @generated | ||
188 | */ | ||
189 | public T caseConstellationMission(ConstellationMission object) { | ||
190 | return null; | ||
191 | } | ||
192 | |||
193 | /** | ||
194 | * Returns the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'. | ||
195 | * <!-- begin-user-doc --> | ||
196 | * This implementation returns null; | ||
197 | * returning a non-null result will terminate the switch. | ||
198 | * <!-- end-user-doc --> | ||
199 | * @param object the target of the switch. | ||
200 | * @return the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'. | ||
201 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
202 | * @generated | ||
203 | */ | ||
204 | public T caseInterferometryMission(InterferometryMission object) { | ||
205 | return null; | ||
206 | } | ||
207 | |||
208 | /** | ||
209 | * Returns the result of interpreting the object as an instance of '<em>Communicating Element</em>'. | ||
210 | * <!-- begin-user-doc --> | ||
211 | * This implementation returns null; | ||
212 | * returning a non-null result will terminate the switch. | ||
213 | * <!-- end-user-doc --> | ||
214 | * @param object the target of the switch. | ||
215 | * @return the result of interpreting the object as an instance of '<em>Communicating Element</em>'. | ||
216 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
217 | * @generated | ||
218 | */ | ||
219 | public T caseCommunicatingElement(CommunicatingElement object) { | ||
220 | return null; | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * Returns the result of interpreting the object as an instance of '<em>Ground Station Network</em>'. | ||
225 | * <!-- begin-user-doc --> | ||
226 | * This implementation returns null; | ||
227 | * returning a non-null result will terminate the switch. | ||
228 | * <!-- end-user-doc --> | ||
229 | * @param object the target of the switch. | ||
230 | * @return the result of interpreting the object as an instance of '<em>Ground Station Network</em>'. | ||
231 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
232 | * @generated | ||
233 | */ | ||
234 | public T caseGroundStationNetwork(GroundStationNetwork object) { | ||
235 | return null; | ||
236 | } | ||
237 | |||
238 | /** | ||
239 | * Returns the result of interpreting the object as an instance of '<em>Spacecraft</em>'. | ||
240 | * <!-- begin-user-doc --> | ||
241 | * This implementation returns null; | ||
242 | * returning a non-null result will terminate the switch. | ||
243 | * <!-- end-user-doc --> | ||
244 | * @param object the target of the switch. | ||
245 | * @return the result of interpreting the object as an instance of '<em>Spacecraft</em>'. | ||
246 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
247 | * @generated | ||
248 | */ | ||
249 | public T caseSpacecraft(Spacecraft object) { | ||
250 | return null; | ||
251 | } | ||
252 | |||
253 | /** | ||
254 | * Returns the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'. | ||
255 | * <!-- begin-user-doc --> | ||
256 | * This implementation returns null; | ||
257 | * returning a non-null result will terminate the switch. | ||
258 | * <!-- end-user-doc --> | ||
259 | * @param object the target of the switch. | ||
260 | * @return the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'. | ||
261 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
262 | * @generated | ||
263 | */ | ||
264 | public T caseCommSubsystem(CommSubsystem object) { | ||
265 | return null; | ||
266 | } | ||
267 | |||
268 | /** | ||
269 | * Returns the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'. | ||
270 | * <!-- begin-user-doc --> | ||
271 | * This implementation returns null; | ||
272 | * returning a non-null result will terminate the switch. | ||
273 | * <!-- end-user-doc --> | ||
274 | * @param object the target of the switch. | ||
275 | * @return the result of interpreting the object as an instance of '<em>Directed Communication Link</em>'. | ||
276 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
277 | * @generated | ||
278 | */ | ||
279 | public T caseDirectedCommunicationLink(DirectedCommunicationLink object) { | ||
280 | return null; | ||
281 | } | ||
282 | |||
283 | /** | ||
284 | * Returns the result of interpreting the object as an instance of '<em>Payload</em>'. | ||
285 | * <!-- begin-user-doc --> | ||
286 | * This implementation returns null; | ||
287 | * returning a non-null result will terminate the switch. | ||
288 | * <!-- end-user-doc --> | ||
289 | * @param object the target of the switch. | ||
290 | * @return the result of interpreting the object as an instance of '<em>Payload</em>'. | ||
291 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
292 | * @generated | ||
293 | */ | ||
294 | public T casePayload(Payload object) { | ||
295 | return null; | ||
296 | } | ||
297 | |||
298 | /** | ||
299 | * Returns the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'. | ||
300 | * <!-- begin-user-doc --> | ||
301 | * This implementation returns null; | ||
302 | * returning a non-null result will terminate the switch. | ||
303 | * <!-- end-user-doc --> | ||
304 | * @param object the target of the switch. | ||
305 | * @return the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'. | ||
306 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
307 | * @generated | ||
308 | */ | ||
309 | public T caseInterferometryPayload(InterferometryPayload object) { | ||
310 | return null; | ||
311 | } | ||
312 | |||
313 | /** | ||
314 | * Returns the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'. | ||
315 | * <!-- begin-user-doc --> | ||
316 | * This implementation returns null; | ||
317 | * returning a non-null result will terminate the switch. | ||
318 | * <!-- end-user-doc --> | ||
319 | * @param object the target of the switch. | ||
320 | * @return the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'. | ||
321 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
322 | * @generated | ||
323 | */ | ||
324 | public T caseCubeSat3U(CubeSat3U object) { | ||
325 | return null; | ||
326 | } | ||
327 | |||
328 | /** | ||
329 | * Returns the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'. | ||
330 | * <!-- begin-user-doc --> | ||
331 | * This implementation returns null; | ||
332 | * returning a non-null result will terminate the switch. | ||
333 | * <!-- end-user-doc --> | ||
334 | * @param object the target of the switch. | ||
335 | * @return the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'. | ||
336 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
337 | * @generated | ||
338 | */ | ||
339 | public T caseCubeSat6U(CubeSat6U object) { | ||
340 | return null; | ||
341 | } | ||
342 | |||
343 | /** | ||
344 | * Returns the result of interpreting the object as an instance of '<em>Small Sat</em>'. | ||
345 | * <!-- begin-user-doc --> | ||
346 | * This implementation returns null; | ||
347 | * returning a non-null result will terminate the switch. | ||
348 | * <!-- end-user-doc --> | ||
349 | * @param object the target of the switch. | ||
350 | * @return the result of interpreting the object as an instance of '<em>Small Sat</em>'. | ||
351 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
352 | * @generated | ||
353 | */ | ||
354 | public T caseSmallSat(SmallSat object) { | ||
355 | return null; | ||
356 | } | ||
357 | |||
358 | /** | ||
359 | * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
360 | * <!-- begin-user-doc --> | ||
361 | * This implementation returns null; | ||
362 | * returning a non-null result will terminate the switch, but this is the last case anyway. | ||
363 | * <!-- end-user-doc --> | ||
364 | * @param object the target of the switch. | ||
365 | * @return the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
366 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) | ||
367 | * @generated | ||
368 | */ | ||
369 | @Override | ||
370 | public T defaultCase(EObject object) { | ||
371 | return null; | ||
372 | } | ||
373 | |||
374 | } //SatelliteSwitch | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/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..31575c3c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.aird | |||
@@ -0,0 +1,2225 @@ | |||
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 | <semanticResources>java:/Objects/hu.bme.mit.inf.dslreasoner.domains.satellite.SpacecraftKind</semanticResources> | ||
1310 | <ownedViews xmi:type="viewpoint:DView" uid="_reOHEF0qEemRYLyXht2IrQ"> | ||
1311 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | ||
1312 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_re1yIF0qEemRYLyXht2IrQ" name="satellite" repPath="#_rel6gF0qEemRYLyXht2IrQ"> | ||
1313 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
1314 | <target xmi:type="ecore:EPackage" href="satellite.ecore#/"/> | ||
1315 | </ownedRepresentationDescriptors> | ||
1316 | </ownedViews> | ||
1317 | </viewpoint:DAnalysis> | ||
1318 | <diagram:DSemanticDiagram uid="_rel6gF0qEemRYLyXht2IrQ" name="satellite"> | ||
1319 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rew5oF0qEemRYLyXht2IrQ" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
1320 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_rexgsF0qEemRYLyXht2IrQ"> | ||
1321 | <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_028-wF0vEemRYLyXht2IrQ" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> | ||
1322 | <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1323 | <labelFormat>bold</labelFormat> | ||
1324 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1325 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1326 | </computedStyleDescriptions> | ||
1327 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
1328 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1329 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_6kODkV0vEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render"> | ||
1330 | <labelFormat>bold</labelFormat> | ||
1331 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1332 | </centerLabelStyleDescription> | ||
1333 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_6kODkl0vEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
1334 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1335 | </endLabelStyleDescription> | ||
1336 | </computedStyleDescriptions> | ||
1337 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
1338 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1339 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ccHLEV0wEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render"> | ||
1340 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1341 | </centerLabelStyleDescription> | ||
1342 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ccHLEl0wEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
1343 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1344 | </endLabelStyleDescription> | ||
1345 | </computedStyleDescriptions> | ||
1346 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan"> | ||
1347 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1348 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_fDAfYV0xEemRYLyXht2IrQ" showIcon="false" labelExpression="service:render"> | ||
1349 | <labelFormat>bold</labelFormat> | ||
1350 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1351 | </centerLabelStyleDescription> | ||
1352 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_fDAfYl0xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
1353 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1354 | </endLabelStyleDescription> | ||
1355 | </computedStyleDescriptions> | ||
1356 | <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_o3yl4HA6Eem9acJE7_CmTw" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> | ||
1357 | <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1358 | <labelFormat>bold</labelFormat> | ||
1359 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
1360 | <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
1361 | </computedStyleDescriptions> | ||
1362 | </data> | ||
1363 | </ownedAnnotationEntries> | ||
1364 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_rfAxQF0qEemRYLyXht2IrQ" source="GMF_DIAGRAMS"> | ||
1365 | <data xmi:type="notation:Diagram" xmi:id="_rfAxQV0qEemRYLyXht2IrQ" type="Sirius" element="_rel6gF0qEemRYLyXht2IrQ" measurementUnit="Pixel"> | ||
1366 | <children xmi:type="notation:Node" xmi:id="_tNH44F0qEemRYLyXht2IrQ" type="2003" element="_tM4oUF0qEemRYLyXht2IrQ"> | ||
1367 | <children xmi:type="notation:Node" xmi:id="_tNK8MF0qEemRYLyXht2IrQ" type="5007"/> | ||
1368 | <children xmi:type="notation:Node" xmi:id="_tNLjQF0qEemRYLyXht2IrQ" type="7004"> | ||
1369 | <styles xmi:type="notation:SortingStyle" xmi:id="_tNLjQV0qEemRYLyXht2IrQ"/> | ||
1370 | <styles xmi:type="notation:FilteringStyle" xmi:id="_tNLjQl0qEemRYLyXht2IrQ"/> | ||
1371 | </children> | ||
1372 | <styles xmi:type="notation:ShapeStyle" xmi:id="_tNH44V0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1373 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tNH44l0qEemRYLyXht2IrQ" x="39" y="39" width="146" height="100"/> | ||
1374 | </children> | ||
1375 | <children xmi:type="notation:Node" xmi:id="_vlcbIF0qEemRYLyXht2IrQ" type="2003" element="_vlPm0F0qEemRYLyXht2IrQ"> | ||
1376 | <children xmi:type="notation:Node" xmi:id="_vldpQF0qEemRYLyXht2IrQ" type="5007"/> | ||
1377 | <children xmi:type="notation:Node" xmi:id="_vldpQV0qEemRYLyXht2IrQ" type="7004"> | ||
1378 | <children xmi:type="notation:Node" xmi:id="_zCslIF0qEemRYLyXht2IrQ" type="3010" element="_zChmAF0qEemRYLyXht2IrQ"> | ||
1379 | <styles xmi:type="notation:FontStyle" xmi:id="_zCslIV0qEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1380 | <layoutConstraint xmi:type="notation:Location" xmi:id="_zCslIl0qEemRYLyXht2IrQ"/> | ||
1381 | </children> | ||
1382 | <styles xmi:type="notation:SortingStyle" xmi:id="_vldpQl0qEemRYLyXht2IrQ"/> | ||
1383 | <styles xmi:type="notation:FilteringStyle" xmi:id="_vldpQ10qEemRYLyXht2IrQ"/> | ||
1384 | </children> | ||
1385 | <styles xmi:type="notation:ShapeStyle" xmi:id="_vlcbIV0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1386 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vlcbIl0qEemRYLyXht2IrQ" x="39" y="182" width="146" height="100"/> | ||
1387 | </children> | ||
1388 | <children xmi:type="notation:Node" xmi:id="_3UIIoF0rEemRYLyXht2IrQ" type="2003" element="_3T7UUF0rEemRYLyXht2IrQ"> | ||
1389 | <children xmi:type="notation:Node" xmi:id="_3UJWwF0rEemRYLyXht2IrQ" type="5007"/> | ||
1390 | <children xmi:type="notation:Node" xmi:id="_3UJWwV0rEemRYLyXht2IrQ" type="7004"> | ||
1391 | <styles xmi:type="notation:SortingStyle" xmi:id="_3UJWwl0rEemRYLyXht2IrQ"/> | ||
1392 | <styles xmi:type="notation:FilteringStyle" xmi:id="_3UJWw10rEemRYLyXht2IrQ"/> | ||
1393 | </children> | ||
1394 | <styles xmi:type="notation:ShapeStyle" xmi:id="_3UIIoV0rEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1395 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3UIIol0rEemRYLyXht2IrQ" x="390" y="182" width="172" height="100"/> | ||
1396 | </children> | ||
1397 | <children xmi:type="notation:Node" xmi:id="__OldwF0rEemRYLyXht2IrQ" type="2003" element="__OYCYF0rEemRYLyXht2IrQ"> | ||
1398 | <children xmi:type="notation:Node" xmi:id="__OmE0F0rEemRYLyXht2IrQ" type="5007"/> | ||
1399 | <children xmi:type="notation:Node" xmi:id="__Omr4F0rEemRYLyXht2IrQ" type="7004"> | ||
1400 | <styles xmi:type="notation:SortingStyle" xmi:id="__Omr4V0rEemRYLyXht2IrQ"/> | ||
1401 | <styles xmi:type="notation:FilteringStyle" xmi:id="__Omr4l0rEemRYLyXht2IrQ"/> | ||
1402 | </children> | ||
1403 | <styles xmi:type="notation:ShapeStyle" xmi:id="__OldwV0rEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1404 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Oldwl0rEemRYLyXht2IrQ" x="507" y="325" width="159" height="100"/> | ||
1405 | </children> | ||
1406 | <children xmi:type="notation:Node" xmi:id="_Aq3OgF0sEemRYLyXht2IrQ" type="2003" element="_AqsPYF0sEemRYLyXht2IrQ"> | ||
1407 | <children xmi:type="notation:Node" xmi:id="_Aq31kF0sEemRYLyXht2IrQ" type="5007"/> | ||
1408 | <children xmi:type="notation:Node" xmi:id="_Aq31kV0sEemRYLyXht2IrQ" type="7004"> | ||
1409 | <children xmi:type="notation:Node" xmi:id="_-9pX8G60Eem3gIPdAp40Tw" type="3010" element="_-9TZsG60Eem3gIPdAp40Tw"> | ||
1410 | <styles xmi:type="notation:FontStyle" xmi:id="_-9pX8W60Eem3gIPdAp40Tw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1411 | <layoutConstraint xmi:type="notation:Location" xmi:id="_-9pX8m60Eem3gIPdAp40Tw"/> | ||
1412 | </children> | ||
1413 | <styles xmi:type="notation:SortingStyle" xmi:id="_Aq31kl0sEemRYLyXht2IrQ"/> | ||
1414 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Aq31k10sEemRYLyXht2IrQ"/> | ||
1415 | </children> | ||
1416 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Aq3OgV0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1417 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aq3Ogl0sEemRYLyXht2IrQ" x="338" y="325" width="120" height="100"/> | ||
1418 | </children> | ||
1419 | <children xmi:type="notation:Node" xmi:id="_j0vs4F0tEemRYLyXht2IrQ" type="2003" element="_j0eAEF0tEemRYLyXht2IrQ"> | ||
1420 | <children xmi:type="notation:Node" xmi:id="_j0wT8F0tEemRYLyXht2IrQ" type="5007"/> | ||
1421 | <children xmi:type="notation:Node" xmi:id="_j0wT8V0tEemRYLyXht2IrQ" type="7004"> | ||
1422 | <children xmi:type="notation:Node" xmi:id="_zugwAF0vEemRYLyXht2IrQ" type="3010" element="_zuaCUF0vEemRYLyXht2IrQ"> | ||
1423 | <styles xmi:type="notation:FontStyle" xmi:id="_zugwAV0vEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1424 | <layoutConstraint xmi:type="notation:Location" xmi:id="_zugwAl0vEemRYLyXht2IrQ"/> | ||
1425 | </children> | ||
1426 | <children xmi:type="notation:Node" xmi:id="_Q89nMF0wEemRYLyXht2IrQ" type="3010" element="_Q8yBAF0wEemRYLyXht2IrQ"> | ||
1427 | <styles xmi:type="notation:FontStyle" xmi:id="_Q89nMV0wEemRYLyXht2IrQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
1428 | <layoutConstraint xmi:type="notation:Location" xmi:id="_Q89nMl0wEemRYLyXht2IrQ"/> | ||
1429 | </children> | ||
1430 | <styles xmi:type="notation:SortingStyle" xmi:id="_j0wT8l0tEemRYLyXht2IrQ"/> | ||
1431 | <styles xmi:type="notation:FilteringStyle" xmi:id="_j0wT810tEemRYLyXht2IrQ"/> | ||
1432 | </children> | ||
1433 | <styles xmi:type="notation:ShapeStyle" xmi:id="_j0vs4V0tEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1434 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j0vs4l0tEemRYLyXht2IrQ" x="754" y="182" width="198" height="100"/> | ||
1435 | </children> | ||
1436 | <children xmi:type="notation:Node" xmi:id="_vyrzoF0vEemRYLyXht2IrQ" type="2003" element="_vyhbkF0vEemRYLyXht2IrQ"> | ||
1437 | <children xmi:type="notation:Node" xmi:id="_vysasF0vEemRYLyXht2IrQ" type="5007"/> | ||
1438 | <children xmi:type="notation:Node" xmi:id="_vysasV0vEemRYLyXht2IrQ" type="7004"> | ||
1439 | <children xmi:type="notation:Node" xmi:id="_x32JUF0vEemRYLyXht2IrQ" type="3010" element="_x3rKMF0vEemRYLyXht2IrQ"> | ||
1440 | <styles xmi:type="notation:FontStyle" xmi:id="_x32JUV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1441 | <layoutConstraint xmi:type="notation:Location" xmi:id="_x32JUl0vEemRYLyXht2IrQ"/> | ||
1442 | </children> | ||
1443 | <children xmi:type="notation:Node" xmi:id="_yhHIwF0vEemRYLyXht2IrQ" type="3010" element="_yg2DAF0vEemRYLyXht2IrQ"> | ||
1444 | <styles xmi:type="notation:FontStyle" xmi:id="_yhHIwV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1445 | <layoutConstraint xmi:type="notation:Location" xmi:id="_yhHIwl0vEemRYLyXht2IrQ"/> | ||
1446 | </children> | ||
1447 | <children xmi:type="notation:Node" xmi:id="_zAX3oF0vEemRYLyXht2IrQ" type="3010" element="_zAInEF0vEemRYLyXht2IrQ"> | ||
1448 | <styles xmi:type="notation:FontStyle" xmi:id="_zAX3oV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1449 | <layoutConstraint xmi:type="notation:Location" xmi:id="_zAX3ol0vEemRYLyXht2IrQ"/> | ||
1450 | </children> | ||
1451 | <styles xmi:type="notation:SortingStyle" xmi:id="_vysasl0vEemRYLyXht2IrQ"/> | ||
1452 | <styles xmi:type="notation:FilteringStyle" xmi:id="_vysas10vEemRYLyXht2IrQ"/> | ||
1453 | </children> | ||
1454 | <styles xmi:type="notation:ShapeStyle" xmi:id="_vyrzoV0vEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1455 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vyrzol0vEemRYLyXht2IrQ" x="988" y="39" width="120" height="100"/> | ||
1456 | </children> | ||
1457 | <children xmi:type="notation:Node" xmi:id="_Ct-Y8F0wEemRYLyXht2IrQ" type="2003" element="_Ctw9kF0wEemRYLyXht2IrQ"> | ||
1458 | <children xmi:type="notation:Node" xmi:id="_Ct_AAF0wEemRYLyXht2IrQ" type="5007"/> | ||
1459 | <children xmi:type="notation:Node" xmi:id="_Ct_nEF0wEemRYLyXht2IrQ" type="7004"> | ||
1460 | <styles xmi:type="notation:SortingStyle" xmi:id="_Ct_nEV0wEemRYLyXht2IrQ"/> | ||
1461 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Ct_nEl0wEemRYLyXht2IrQ"/> | ||
1462 | </children> | ||
1463 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Ct-Y8V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1464 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ct-Y8l0wEemRYLyXht2IrQ" x="754" y="325" width="198" height="100"/> | ||
1465 | </children> | ||
1466 | <children xmi:type="notation:Node" xmi:id="_M5X18F0wEemRYLyXht2IrQ" type="2003" element="_M5OsAF0wEemRYLyXht2IrQ"> | ||
1467 | <children xmi:type="notation:Node" xmi:id="_M5YdAF0wEemRYLyXht2IrQ" type="5007"/> | ||
1468 | <children xmi:type="notation:Node" xmi:id="_M5YdAV0wEemRYLyXht2IrQ" type="7004"> | ||
1469 | <children xmi:type="notation:Node" xmi:id="_OBrh0F0wEemRYLyXht2IrQ" type="3010" element="_OBacEF0wEemRYLyXht2IrQ"> | ||
1470 | <styles xmi:type="notation:FontStyle" xmi:id="_OBrh0V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1471 | <layoutConstraint xmi:type="notation:Location" xmi:id="_OBrh0l0wEemRYLyXht2IrQ"/> | ||
1472 | </children> | ||
1473 | <children xmi:type="notation:Node" xmi:id="_Oca9EF0wEemRYLyXht2IrQ" type="3010" element="_OcLsgF0wEemRYLyXht2IrQ"> | ||
1474 | <styles xmi:type="notation:FontStyle" xmi:id="_Oca9EV0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1475 | <layoutConstraint xmi:type="notation:Location" xmi:id="_Oca9El0wEemRYLyXht2IrQ"/> | ||
1476 | </children> | ||
1477 | <children xmi:type="notation:Node" xmi:id="_O9880F0wEemRYLyXht2IrQ" type="3010" element="_O9wIgF0wEemRYLyXht2IrQ"> | ||
1478 | <styles xmi:type="notation:FontStyle" xmi:id="_O9880V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1479 | <layoutConstraint xmi:type="notation:Location" xmi:id="_O9880l0wEemRYLyXht2IrQ"/> | ||
1480 | </children> | ||
1481 | <styles xmi:type="notation:SortingStyle" xmi:id="_M5YdAl0wEemRYLyXht2IrQ"/> | ||
1482 | <styles xmi:type="notation:FilteringStyle" xmi:id="_M5YdA10wEemRYLyXht2IrQ"/> | ||
1483 | </children> | ||
1484 | <styles xmi:type="notation:ShapeStyle" xmi:id="_M5X18V0wEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1485 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M5X18l0wEemRYLyXht2IrQ" x="988" y="182" width="120" height="100"/> | ||
1486 | </children> | ||
1487 | <children xmi:type="notation:Node" xmi:id="_0aeMMF0xEemRYLyXht2IrQ" type="2003" element="_0aW3cF0xEemRYLyXht2IrQ"> | ||
1488 | <children xmi:type="notation:Node" xmi:id="_0aeMM10xEemRYLyXht2IrQ" type="5007"/> | ||
1489 | <children xmi:type="notation:Node" xmi:id="_0aezQF0xEemRYLyXht2IrQ" type="7004"> | ||
1490 | <styles xmi:type="notation:SortingStyle" xmi:id="_0aezQV0xEemRYLyXht2IrQ"/> | ||
1491 | <styles xmi:type="notation:FilteringStyle" xmi:id="_0aezQl0xEemRYLyXht2IrQ"/> | ||
1492 | </children> | ||
1493 | <styles xmi:type="notation:ShapeStyle" xmi:id="_0aeMMV0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1494 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0aeMMl0xEemRYLyXht2IrQ" x="52" y="325" width="120" height="100"/> | ||
1495 | </children> | ||
1496 | <children xmi:type="notation:Node" xmi:id="_45PdkF0xEemRYLyXht2IrQ" type="2003" element="_45FskF0xEemRYLyXht2IrQ"> | ||
1497 | <children xmi:type="notation:Node" xmi:id="_45QEoF0xEemRYLyXht2IrQ" type="5007"/> | ||
1498 | <children xmi:type="notation:Node" xmi:id="_45QEoV0xEemRYLyXht2IrQ" type="7004"> | ||
1499 | <styles xmi:type="notation:SortingStyle" xmi:id="_45QEol0xEemRYLyXht2IrQ"/> | ||
1500 | <styles xmi:type="notation:FilteringStyle" xmi:id="_45QEo10xEemRYLyXht2IrQ"/> | ||
1501 | </children> | ||
1502 | <styles xmi:type="notation:ShapeStyle" xmi:id="_45PdkV0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1503 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_45Pdkl0xEemRYLyXht2IrQ" x="39" y="481" width="146" height="100"/> | ||
1504 | </children> | ||
1505 | <children xmi:type="notation:Node" xmi:id="_2omYkG60Eem3gIPdAp40Tw" type="2003" element="_2oBw0G60Eem3gIPdAp40Tw"> | ||
1506 | <children xmi:type="notation:Node" xmi:id="_2orREG60Eem3gIPdAp40Tw" type="5007"/> | ||
1507 | <children xmi:type="notation:Node" xmi:id="_2or4IG60Eem3gIPdAp40Tw" type="7004"> | ||
1508 | <children xmi:type="notation:Node" xmi:id="_5QV24G60Eem3gIPdAp40Tw" type="3010" element="_5P_4oG60Eem3gIPdAp40Tw"> | ||
1509 | <styles xmi:type="notation:FontStyle" xmi:id="_5QV24W60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1510 | <layoutConstraint xmi:type="notation:Location" xmi:id="_5QV24m60Eem3gIPdAp40Tw"/> | ||
1511 | </children> | ||
1512 | <children xmi:type="notation:Node" xmi:id="_UKi6wHA6Eem9acJE7_CmTw" type="3010" element="_UKKgQHA6Eem9acJE7_CmTw"> | ||
1513 | <styles xmi:type="notation:FontStyle" xmi:id="_UKi6wXA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/> | ||
1514 | <layoutConstraint xmi:type="notation:Location" xmi:id="_UKi6wnA6Eem9acJE7_CmTw"/> | ||
1515 | </children> | ||
1516 | <children xmi:type="notation:Node" xmi:id="_7SZ1QG60Eem3gIPdAp40Tw" type="3010" element="_7R9JUG60Eem3gIPdAp40Tw"> | ||
1517 | <styles xmi:type="notation:FontStyle" xmi:id="_7SZ1QW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1518 | <layoutConstraint xmi:type="notation:Location" xmi:id="_7SZ1Qm60Eem3gIPdAp40Tw"/> | ||
1519 | </children> | ||
1520 | <styles xmi:type="notation:SortingStyle" xmi:id="_2or4IW60Eem3gIPdAp40Tw"/> | ||
1521 | <styles xmi:type="notation:FilteringStyle" xmi:id="_2or4Im60Eem3gIPdAp40Tw"/> | ||
1522 | </children> | ||
1523 | <styles xmi:type="notation:ShapeStyle" xmi:id="_2omYkW60Eem3gIPdAp40Tw" fontName="Noto Sans" fontHeight="8"/> | ||
1524 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2omYkm60Eem3gIPdAp40Tw" x="990" y="325" width="120" height="100"/> | ||
1525 | </children> | ||
1526 | <children xmi:type="notation:Node" xmi:id="_fnQ1sHA6Eem9acJE7_CmTw" type="2003" element="_fm1X4HA6Eem9acJE7_CmTw"> | ||
1527 | <children xmi:type="notation:Node" xmi:id="_fnT5AHA6Eem9acJE7_CmTw" type="5007"/> | ||
1528 | <children xmi:type="notation:Node" xmi:id="_fnUgEHA6Eem9acJE7_CmTw" type="7004"> | ||
1529 | <styles xmi:type="notation:SortingStyle" xmi:id="_fnUgEXA6Eem9acJE7_CmTw"/> | ||
1530 | <styles xmi:type="notation:FilteringStyle" xmi:id="_fnUgEnA6Eem9acJE7_CmTw"/> | ||
1531 | </children> | ||
1532 | <styles xmi:type="notation:ShapeStyle" xmi:id="_fnQ1sXA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/> | ||
1533 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fnQ1snA6Eem9acJE7_CmTw" x="209" y="484" width="120" height="100"/> | ||
1534 | </children> | ||
1535 | <children xmi:type="notation:Node" xmi:id="_haz28HA6Eem9acJE7_CmTw" type="2003" element="_hanCoHA6Eem9acJE7_CmTw"> | ||
1536 | <children xmi:type="notation:Node" xmi:id="_ha0eAHA6Eem9acJE7_CmTw" type="5007"/> | ||
1537 | <children xmi:type="notation:Node" xmi:id="_ha0eAXA6Eem9acJE7_CmTw" type="7004"> | ||
1538 | <styles xmi:type="notation:SortingStyle" xmi:id="_ha0eAnA6Eem9acJE7_CmTw"/> | ||
1539 | <styles xmi:type="notation:FilteringStyle" xmi:id="_ha0eA3A6Eem9acJE7_CmTw"/> | ||
1540 | </children> | ||
1541 | <styles xmi:type="notation:ShapeStyle" xmi:id="_haz28XA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/> | ||
1542 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_haz28nA6Eem9acJE7_CmTw" x="352" y="484" width="120" height="100"/> | ||
1543 | </children> | ||
1544 | <children xmi:type="notation:Node" xmi:id="_irD94HA6Eem9acJE7_CmTw" type="2003" element="_iqnR8HA6Eem9acJE7_CmTw"> | ||
1545 | <children xmi:type="notation:Node" xmi:id="_irEk8HA6Eem9acJE7_CmTw" type="5007"/> | ||
1546 | <children xmi:type="notation:Node" xmi:id="_irEk8XA6Eem9acJE7_CmTw" type="7004"> | ||
1547 | <styles xmi:type="notation:SortingStyle" xmi:id="_irEk8nA6Eem9acJE7_CmTw"/> | ||
1548 | <styles xmi:type="notation:FilteringStyle" xmi:id="_irEk83A6Eem9acJE7_CmTw"/> | ||
1549 | </children> | ||
1550 | <styles xmi:type="notation:ShapeStyle" xmi:id="_irD94XA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/> | ||
1551 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_irD94nA6Eem9acJE7_CmTw" x="495" y="484" width="120" height="100"/> | ||
1552 | </children> | ||
1553 | <styles xmi:type="notation:DiagramStyle" xmi:id="_rfAxQl0qEemRYLyXht2IrQ"/> | ||
1554 | <edges xmi:type="notation:Edge" xmi:id="_0jV4gF0qEemRYLyXht2IrQ" type="4001" element="_0jIdIF0qEemRYLyXht2IrQ" source="_vlcbIF0qEemRYLyXht2IrQ" target="_tNH44F0qEemRYLyXht2IrQ"> | ||
1555 | <children xmi:type="notation:Node" xmi:id="_0jXGoF0qEemRYLyXht2IrQ" type="6001"> | ||
1556 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jXGoV0qEemRYLyXht2IrQ" y="-10"/> | ||
1557 | </children> | ||
1558 | <children xmi:type="notation:Node" xmi:id="_0jXtsF0qEemRYLyXht2IrQ" type="6002"> | ||
1559 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jXtsV0qEemRYLyXht2IrQ" y="10"/> | ||
1560 | </children> | ||
1561 | <children xmi:type="notation:Node" xmi:id="_0jYUwF0qEemRYLyXht2IrQ" type="6003"> | ||
1562 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0jYUwV0qEemRYLyXht2IrQ" y="10"/> | ||
1563 | </children> | ||
1564 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_0jV4gV0qEemRYLyXht2IrQ" routing="Tree"/> | ||
1565 | <styles xmi:type="notation:FontStyle" xmi:id="_0jV4gl0qEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1566 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0jV4g10qEemRYLyXht2IrQ" points="[0, 0, 0, 45]$[0, -45, 0, 0]"/> | ||
1567 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jaxAF0qEemRYLyXht2IrQ" id="(0.410958904109589,0.01)"/> | ||
1568 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0jaxAV0qEemRYLyXht2IrQ" id="(0.4548611111111111,0.5)"/> | ||
1569 | </edges> | ||
1570 | <edges xmi:type="notation:Edge" xmi:id="_Npck0F0sEemRYLyXht2IrQ" type="4001" element="_NpQ-pl0sEemRYLyXht2IrQ" source="__OldwF0rEemRYLyXht2IrQ" target="_3UIIoF0rEemRYLyXht2IrQ"> | ||
1571 | <children xmi:type="notation:Node" xmi:id="_NpdL4F0sEemRYLyXht2IrQ" type="6001"> | ||
1572 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL4V0sEemRYLyXht2IrQ" y="-10"/> | ||
1573 | </children> | ||
1574 | <children xmi:type="notation:Node" xmi:id="_NpdL4l0sEemRYLyXht2IrQ" type="6002"> | ||
1575 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL410sEemRYLyXht2IrQ" y="10"/> | ||
1576 | </children> | ||
1577 | <children xmi:type="notation:Node" xmi:id="_NpdL5F0sEemRYLyXht2IrQ" type="6003"> | ||
1578 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpdL5V0sEemRYLyXht2IrQ" y="10"/> | ||
1579 | </children> | ||
1580 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_Npck0V0sEemRYLyXht2IrQ" routing="Tree"/> | ||
1581 | <styles xmi:type="notation:FontStyle" xmi:id="_Npck0l0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1582 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Npck010sEemRYLyXht2IrQ" points="[0, 0, -103, 45]$[103, -45, 0, 0]"/> | ||
1583 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpdL5l0sEemRYLyXht2IrQ" id="(0.5031847133757962,0.0)"/> | ||
1584 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpdL510sEemRYLyXht2IrQ" id="(0.5,0.5)"/> | ||
1585 | </edges> | ||
1586 | <edges xmi:type="notation:Edge" xmi:id="_PE8ScF0sEemRYLyXht2IrQ" type="4001" element="_PEp-k10sEemRYLyXht2IrQ" source="_Aq3OgF0sEemRYLyXht2IrQ" target="_3UIIoF0rEemRYLyXht2IrQ"> | ||
1587 | <children xmi:type="notation:Node" xmi:id="_PE8SdF0sEemRYLyXht2IrQ" type="6001"> | ||
1588 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE8SdV0sEemRYLyXht2IrQ" y="-10"/> | ||
1589 | </children> | ||
1590 | <children xmi:type="notation:Node" xmi:id="_PE8Sdl0sEemRYLyXht2IrQ" type="6002"> | ||
1591 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE8Sd10sEemRYLyXht2IrQ" y="10"/> | ||
1592 | </children> | ||
1593 | <children xmi:type="notation:Node" xmi:id="_PE85gF0sEemRYLyXht2IrQ" type="6003"> | ||
1594 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PE85gV0sEemRYLyXht2IrQ" y="10"/> | ||
1595 | </children> | ||
1596 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_PE8ScV0sEemRYLyXht2IrQ" routing="Tree"/> | ||
1597 | <styles xmi:type="notation:FontStyle" xmi:id="_PE8Scl0sEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1598 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PE8Sc10sEemRYLyXht2IrQ" points="[0, 0, 97, 45]$[-97, -45, 0, 0]"/> | ||
1599 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PE85gl0sEemRYLyXht2IrQ" id="(0.5508474576271186,0.0)"/> | ||
1600 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PE85g10sEemRYLyXht2IrQ" id="(0.5,0.5)"/> | ||
1601 | </edges> | ||
1602 | <edges xmi:type="notation:Edge" xmi:id="_4CEP4F0vEemRYLyXht2IrQ" type="4001" element="_4B9iMF0vEemRYLyXht2IrQ" source="_3UIIoF0rEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ"> | ||
1603 | <children xmi:type="notation:Node" xmi:id="_4CEP5F0vEemRYLyXht2IrQ" type="6001"> | ||
1604 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CEP5V0vEemRYLyXht2IrQ" x="13" y="-18"/> | ||
1605 | </children> | ||
1606 | <children xmi:type="notation:Node" xmi:id="_4CE28F0vEemRYLyXht2IrQ" type="6002"> | ||
1607 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CE28V0vEemRYLyXht2IrQ" x="54" y="10"/> | ||
1608 | </children> | ||
1609 | <children xmi:type="notation:Node" xmi:id="_4CE28l0vEemRYLyXht2IrQ" type="6003"> | ||
1610 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4CE2810vEemRYLyXht2IrQ" x="28" y="10"/> | ||
1611 | </children> | ||
1612 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_4CEP4V0vEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1613 | <styles xmi:type="notation:FontStyle" xmi:id="_4CEP4l0vEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1614 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4CEP410vEemRYLyXht2IrQ" points="[0, -26, -194, -52]$[194, -26, 0, -52]"/> | ||
1615 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4CE29F0vEemRYLyXht2IrQ" id="(1.0,0.5306122448979592)"/> | ||
1616 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4CE29V0vEemRYLyXht2IrQ" id="(0.0,0.7959183673469388)"/> | ||
1617 | </edges> | ||
1618 | <edges xmi:type="notation:Edge" xmi:id="_ccT_YF0wEemRYLyXht2IrQ" type="4001" element="_ccF89l0wEemRYLyXht2IrQ" source="_3UIIoF0rEemRYLyXht2IrQ" target="_Ct-Y8F0wEemRYLyXht2IrQ"> | ||
1619 | <children xmi:type="notation:Node" xmi:id="_ccT_ZF0wEemRYLyXht2IrQ" type="6001"> | ||
1620 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccT_ZV0wEemRYLyXht2IrQ" x="-32" y="39"/> | ||
1621 | </children> | ||
1622 | <children xmi:type="notation:Node" xmi:id="_ccUmcF0wEemRYLyXht2IrQ" type="6002"> | ||
1623 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccUmcV0wEemRYLyXht2IrQ" x="48" y="10"/> | ||
1624 | </children> | ||
1625 | <children xmi:type="notation:Node" xmi:id="_ccUmcl0wEemRYLyXht2IrQ" type="6003"> | ||
1626 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccUmc10wEemRYLyXht2IrQ" x="22" y="-8"/> | ||
1627 | </children> | ||
1628 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_ccT_YV0wEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1629 | <styles xmi:type="notation:FontStyle" xmi:id="_ccT_Yl0wEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1630 | <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]"/> | ||
1631 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccUmdF0wEemRYLyXht2IrQ" id="(0.8411764705882353,1.0)"/> | ||
1632 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccUmdV0wEemRYLyXht2IrQ" id="(0.0,0.6632653061224489)"/> | ||
1633 | </edges> | ||
1634 | <edges xmi:type="notation:Edge" xmi:id="_db1tQF0xEemRYLyXht2IrQ" type="4001" element="_dbuYhl0xEemRYLyXht2IrQ" source="_Ct-Y8F0wEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ"> | ||
1635 | <children xmi:type="notation:Node" xmi:id="_db2UUF0xEemRYLyXht2IrQ" type="6001"> | ||
1636 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UUV0xEemRYLyXht2IrQ" x="-5" y="-44"/> | ||
1637 | </children> | ||
1638 | <children xmi:type="notation:Node" xmi:id="_db2UUl0xEemRYLyXht2IrQ" type="6002"> | ||
1639 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UU10xEemRYLyXht2IrQ" y="10"/> | ||
1640 | </children> | ||
1641 | <children xmi:type="notation:Node" xmi:id="_db2UVF0xEemRYLyXht2IrQ" type="6003"> | ||
1642 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_db2UVV0xEemRYLyXht2IrQ" y="10"/> | ||
1643 | </children> | ||
1644 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_db1tQV0xEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1645 | <styles xmi:type="notation:FontStyle" xmi:id="_db1tQl0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1646 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_db1tQ10xEemRYLyXht2IrQ" points="[14, 0, 14, 45]$[14, -45, 14, 0]"/> | ||
1647 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_db2UVl0xEemRYLyXht2IrQ" id="(0.19387755102040816,0.0)"/> | ||
1648 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_db2UV10xEemRYLyXht2IrQ" id="(0.19387755102040816,1.0)"/> | ||
1649 | </edges> | ||
1650 | <edges xmi:type="notation:Edge" xmi:id="_i2ZRcF0xEemRYLyXht2IrQ" type="4001" element="_i2PgeV0xEemRYLyXht2IrQ" source="_Ct-Y8F0wEemRYLyXht2IrQ" target="_j0vs4F0tEemRYLyXht2IrQ"> | ||
1651 | <children xmi:type="notation:Node" xmi:id="_i2ZRdF0xEemRYLyXht2IrQ" type="6001"> | ||
1652 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZRdV0xEemRYLyXht2IrQ" x="-5" y="46"/> | ||
1653 | </children> | ||
1654 | <children xmi:type="notation:Node" xmi:id="_i2ZRdl0xEemRYLyXht2IrQ" type="6002"> | ||
1655 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZRd10xEemRYLyXht2IrQ" y="10"/> | ||
1656 | </children> | ||
1657 | <children xmi:type="notation:Node" xmi:id="_i2ZReF0xEemRYLyXht2IrQ" type="6003"> | ||
1658 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i2ZReV0xEemRYLyXht2IrQ" y="10"/> | ||
1659 | </children> | ||
1660 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_i2ZRcV0xEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1661 | <styles xmi:type="notation:FontStyle" xmi:id="_i2ZRcl0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1662 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i2ZRc10xEemRYLyXht2IrQ" points="[0, 0, 0, 45]$[0, -45, 0, 0]"/> | ||
1663 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i2ZRel0xEemRYLyXht2IrQ" id="(0.7193877551020408,0.0)"/> | ||
1664 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i2ZRe10xEemRYLyXht2IrQ" id="(0.7193877551020408,1.0)"/> | ||
1665 | </edges> | ||
1666 | <edges xmi:type="notation:Edge" xmi:id="_3HAq8F0xEemRYLyXht2IrQ" type="4001" element="_3GzPll0xEemRYLyXht2IrQ" source="_Aq3OgF0sEemRYLyXht2IrQ" target="_0aeMMF0xEemRYLyXht2IrQ"> | ||
1667 | <children xmi:type="notation:Node" xmi:id="_3HBSAF0xEemRYLyXht2IrQ" type="6001"> | ||
1668 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HBSAV0xEemRYLyXht2IrQ" y="-10"/> | ||
1669 | </children> | ||
1670 | <children xmi:type="notation:Node" xmi:id="_3HBSAl0xEemRYLyXht2IrQ" type="6002"> | ||
1671 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HBSA10xEemRYLyXht2IrQ" y="10"/> | ||
1672 | </children> | ||
1673 | <children xmi:type="notation:Node" xmi:id="_3HB5EF0xEemRYLyXht2IrQ" type="6003"> | ||
1674 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3HB5EV0xEemRYLyXht2IrQ" y="10"/> | ||
1675 | </children> | ||
1676 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_3HAq8V0xEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1677 | <styles xmi:type="notation:FontStyle" xmi:id="_3HAq8l0xEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1678 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3HAq810xEemRYLyXht2IrQ" points="[0, 0, 168, 0]$[-168, 0, 0, 0]"/> | ||
1679 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3HB5El0xEemRYLyXht2IrQ" id="(0.0,0.5)"/> | ||
1680 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3HB5E10xEemRYLyXht2IrQ" id="(1.0,0.5)"/> | ||
1681 | </edges> | ||
1682 | <edges xmi:type="notation:Edge" xmi:id="_8iOWcF0xEemRYLyXht2IrQ" type="4001" element="_8iFzll0xEemRYLyXht2IrQ" source="_45PdkF0xEemRYLyXht2IrQ" target="_0aeMMF0xEemRYLyXht2IrQ"> | ||
1683 | <children xmi:type="notation:Node" xmi:id="_8iOWdF0xEemRYLyXht2IrQ" type="6001"> | ||
1684 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iOWdV0xEemRYLyXht2IrQ" y="-10"/> | ||
1685 | </children> | ||
1686 | <children xmi:type="notation:Node" xmi:id="_8iO9gF0xEemRYLyXht2IrQ" type="6002"> | ||
1687 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iO9gV0xEemRYLyXht2IrQ" y="10"/> | ||
1688 | </children> | ||
1689 | <children xmi:type="notation:Node" xmi:id="_8iO9gl0xEemRYLyXht2IrQ" type="6003"> | ||
1690 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8iO9g10xEemRYLyXht2IrQ" y="10"/> | ||
1691 | </children> | ||
1692 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_8iOWcV0xEemRYLyXht2IrQ" routing="Tree"/> | ||
1693 | <styles xmi:type="notation:FontStyle" xmi:id="_8iOWcl0xEemRYLyXht2IrQ" fontName="Noto Sans" fontHeight="8"/> | ||
1694 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8iOWc10xEemRYLyXht2IrQ" points="[0, 0, 0, 58]$[0, -58, 0, 0]"/> | ||
1695 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8iO9hF0xEemRYLyXht2IrQ" id="(0.4246575342465753,0.01)"/> | ||
1696 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8iO9hV0xEemRYLyXht2IrQ" id="(0.5,0.5)"/> | ||
1697 | </edges> | ||
1698 | <edges xmi:type="notation:Edge" xmi:id="_Kzrp4F0yEemRYLyXht2IrQ" type="4001" element="_KzljXl0yEemRYLyXht2IrQ" source="_tNH44F0qEemRYLyXht2IrQ" target="__OldwF0rEemRYLyXht2IrQ"> | ||
1699 | <children xmi:type="notation:Node" xmi:id="_Kzrp5F0yEemRYLyXht2IrQ" type="6001"> | ||
1700 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp5V0yEemRYLyXht2IrQ" x="-11" y="-10"/> | ||
1701 | </children> | ||
1702 | <children xmi:type="notation:Node" xmi:id="_Kzrp5l0yEemRYLyXht2IrQ" type="6002"> | ||
1703 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp510yEemRYLyXht2IrQ" x="-3" y="10"/> | ||
1704 | </children> | ||
1705 | <children xmi:type="notation:Node" xmi:id="_Kzrp6F0yEemRYLyXht2IrQ" type="6003"> | ||
1706 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kzrp6V0yEemRYLyXht2IrQ" x="3" y="10"/> | ||
1707 | </children> | ||
1708 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_Kzrp4V0yEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1709 | <styles xmi:type="notation:FontStyle" xmi:id="_Kzrp4l0yEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1710 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kzrp410yEemRYLyXht2IrQ" points="[0, -57, -419, -265]$[418, -57, -1, -265]$[418, 208, -1, 0]"/> | ||
1711 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Kzrp6l0yEemRYLyXht2IrQ" id="(1.0,0.7959183673469388)"/> | ||
1712 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Kzrp610yEemRYLyXht2IrQ" id="(0.610062893081761,0.0)"/> | ||
1713 | </edges> | ||
1714 | <edges xmi:type="notation:Edge" xmi:id="_PdUugF0yEemRYLyXht2IrQ" type="4001" element="_PdH6PF0yEemRYLyXht2IrQ" source="_tNH44F0qEemRYLyXht2IrQ" target="_Aq3OgF0sEemRYLyXht2IrQ"> | ||
1715 | <children xmi:type="notation:Node" xmi:id="_PdUuhF0yEemRYLyXht2IrQ" type="6001"> | ||
1716 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdUuhV0yEemRYLyXht2IrQ" x="-30" y="104"/> | ||
1717 | </children> | ||
1718 | <children xmi:type="notation:Node" xmi:id="_PdUuhl0yEemRYLyXht2IrQ" type="6002"> | ||
1719 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdUuh10yEemRYLyXht2IrQ" y="10"/> | ||
1720 | </children> | ||
1721 | <children xmi:type="notation:Node" xmi:id="_PdVVkF0yEemRYLyXht2IrQ" type="6003"> | ||
1722 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PdVVkV0yEemRYLyXht2IrQ" x="-4" y="10"/> | ||
1723 | </children> | ||
1724 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_PdUugV0yEemRYLyXht2IrQ" routing="Rectilinear"/> | ||
1725 | <styles xmi:type="notation:FontStyle" xmi:id="_PdUugl0yEemRYLyXht2IrQ" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
1726 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PdUug10yEemRYLyXht2IrQ" points="[40, -32, -194, -220]$[221, -32, -13, -220]$[221, 188, -13, 0]"/> | ||
1727 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVkl0yEemRYLyXht2IrQ" id="(0.7222222222222222,1.0)"/> | ||
1728 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PdVVk10yEemRYLyXht2IrQ" id="(0.3305084745762712,0.0)"/> | ||
1729 | </edges> | ||
1730 | <edges xmi:type="notation:Edge" xmi:id="_n98MwHA6Eem9acJE7_CmTw" type="4001" element="_n9tjRnA6Eem9acJE7_CmTw" source="_irD94HA6Eem9acJE7_CmTw" target="_Aq3OgF0sEemRYLyXht2IrQ"> | ||
1731 | <children xmi:type="notation:Node" xmi:id="_n98z0HA6Eem9acJE7_CmTw" type="6001"> | ||
1732 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n98z0XA6Eem9acJE7_CmTw" y="-10"/> | ||
1733 | </children> | ||
1734 | <children xmi:type="notation:Node" xmi:id="_n98z0nA6Eem9acJE7_CmTw" type="6002"> | ||
1735 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n98z03A6Eem9acJE7_CmTw" y="10"/> | ||
1736 | </children> | ||
1737 | <children xmi:type="notation:Node" xmi:id="_n98z1HA6Eem9acJE7_CmTw" type="6003"> | ||
1738 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n98z1XA6Eem9acJE7_CmTw" y="10"/> | ||
1739 | </children> | ||
1740 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_n98MwXA6Eem9acJE7_CmTw" routing="Tree"/> | ||
1741 | <styles xmi:type="notation:FontStyle" xmi:id="_n98MwnA6Eem9acJE7_CmTw" fontName="Noto Sans" fontHeight="8"/> | ||
1742 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n98Mw3A6Eem9acJE7_CmTw" points="[0, 0, 94, 151]$[-94, -151, 0, 0]"/> | ||
1743 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n98z1nA6Eem9acJE7_CmTw" id="(0.2796610169491525,0.0)"/> | ||
1744 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n98z13A6Eem9acJE7_CmTw" id="(0.3305084745762712,0.0)"/> | ||
1745 | </edges> | ||
1746 | <edges xmi:type="notation:Edge" xmi:id="_3d2LIHBMEempc7JjePmuNw" type="4001" element="_3dgz_3BMEempc7JjePmuNw" source="_haz28HA6Eem9acJE7_CmTw" target="_Aq3OgF0sEemRYLyXht2IrQ"> | ||
1747 | <children xmi:type="notation:Node" xmi:id="_3d_VEHBMEempc7JjePmuNw" type="6001"> | ||
1748 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3d_VEXBMEempc7JjePmuNw" y="-10"/> | ||
1749 | </children> | ||
1750 | <children xmi:type="notation:Node" xmi:id="_3eAjMHBMEempc7JjePmuNw" type="6002"> | ||
1751 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3eAjMXBMEempc7JjePmuNw" y="10"/> | ||
1752 | </children> | ||
1753 | <children xmi:type="notation:Node" xmi:id="_3eBKQHBMEempc7JjePmuNw" type="6003"> | ||
1754 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3eBKQXBMEempc7JjePmuNw" y="10"/> | ||
1755 | </children> | ||
1756 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_3d2LIXBMEempc7JjePmuNw" routing="Tree"/> | ||
1757 | <styles xmi:type="notation:FontStyle" xmi:id="_3d2LInBMEempc7JjePmuNw" fontName="Noto Sans" fontHeight="8"/> | ||
1758 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3d2LI3BMEempc7JjePmuNw" points="[0, 0, -14, 61]$[14, -61, 0, 0]"/> | ||
1759 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3eENkHBMEempc7JjePmuNw" id="(0.6583333333333333,0.0)"/> | ||
1760 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3eENkXBMEempc7JjePmuNw" id="(0.3305084745762712,0.0)"/> | ||
1761 | </edges> | ||
1762 | <edges xmi:type="notation:Edge" xmi:id="_37fJYHBMEempc7JjePmuNw" type="4001" element="_37Qf-HBMEempc7JjePmuNw" source="_fnQ1sHA6Eem9acJE7_CmTw" target="_Aq3OgF0sEemRYLyXht2IrQ"> | ||
1763 | <children xmi:type="notation:Node" xmi:id="_37fwcHBMEempc7JjePmuNw" type="6001"> | ||
1764 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37fwcXBMEempc7JjePmuNw" y="-10"/> | ||
1765 | </children> | ||
1766 | <children xmi:type="notation:Node" xmi:id="_37fwcnBMEempc7JjePmuNw" type="6002"> | ||
1767 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37fwc3BMEempc7JjePmuNw" y="10"/> | ||
1768 | </children> | ||
1769 | <children xmi:type="notation:Node" xmi:id="_37fwdHBMEempc7JjePmuNw" type="6003"> | ||
1770 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37fwdXBMEempc7JjePmuNw" y="10"/> | ||
1771 | </children> | ||
1772 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_37fJYXBMEempc7JjePmuNw" routing="Tree"/> | ||
1773 | <styles xmi:type="notation:FontStyle" xmi:id="_37fJYnBMEempc7JjePmuNw" fontName="Noto Sans" fontHeight="8"/> | ||
1774 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_37fJY3BMEempc7JjePmuNw" points="[0, 0, -63, 154]$[63, -154, 0, 0]"/> | ||
1775 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37gXgHBMEempc7JjePmuNw" id="(0.559322033898305,0.0)"/> | ||
1776 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37gXgXBMEempc7JjePmuNw" id="(0.3305084745762712,0.0)"/> | ||
1777 | </edges> | ||
1778 | </data> | ||
1779 | </ownedAnnotationEntries> | ||
1780 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tM4oUF0qEemRYLyXht2IrQ" name="ConstellationMission" tooltipText="" outgoingEdges="_KzljXl0yEemRYLyXht2IrQ _PdH6PF0yEemRYLyXht2IrQ" incomingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10"> | ||
1781 | <target xmi:type="ecore:EClass" href="satellite.ecore#//ConstellationMission"/> | ||
1782 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//ConstellationMission"/> | ||
1783 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1784 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1785 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1786 | <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"> | ||
1787 | <labelFormat>italic</labelFormat> | ||
1788 | <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"/> | ||
1789 | </ownedStyle> | ||
1790 | <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']"/> | ||
1791 | </ownedDiagramElements> | ||
1792 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vlPm0F0qEemRYLyXht2IrQ" name="InterferometryMission" tooltipText="" outgoingEdges="_0jIdIF0qEemRYLyXht2IrQ" width="12" height="10"> | ||
1793 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1794 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1795 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1796 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1797 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1798 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_0ECtY10qEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1799 | <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"/> | ||
1800 | </ownedStyle> | ||
1801 | <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']"/> | ||
1802 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_zChmAF0qEemRYLyXht2IrQ" name="observationTime : EFloat = 2.0" tooltipText=""> | ||
1803 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//InterferometryMission/observationTime"/> | ||
1804 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//InterferometryMission/observationTime"/> | ||
1805 | <ownedStyle xmi:type="diagram:BundledImage" uid="_1awPYV0vEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1806 | <labelFormat>bold</labelFormat> | ||
1807 | </ownedStyle> | ||
1808 | <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']"/> | ||
1809 | </ownedElements> | ||
1810 | </ownedDiagramElements> | ||
1811 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_0jIdIF0qEemRYLyXht2IrQ" sourceNode="_vlPm0F0qEemRYLyXht2IrQ" targetNode="_tM4oUF0qEemRYLyXht2IrQ"> | ||
1812 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1813 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryMission"/> | ||
1814 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0jK5YF0qEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
1815 | <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"/> | ||
1816 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_0jK5YV0qEemRYLyXht2IrQ" showIcon="false"> | ||
1817 | <labelFormat>italic</labelFormat> | ||
1818 | </beginLabelStyle> | ||
1819 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0jK5Yl0qEemRYLyXht2IrQ" showIcon="false"/> | ||
1820 | </ownedStyle> | ||
1821 | <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']"/> | ||
1822 | </ownedDiagramElements> | ||
1823 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_3T7UUF0rEemRYLyXht2IrQ" name="CommunicatingElement" tooltipText="" outgoingEdges="_4B9iMF0vEemRYLyXht2IrQ _ccF89l0wEemRYLyXht2IrQ" incomingEdges="_NpQ-pl0sEemRYLyXht2IrQ _PEp-k10sEemRYLyXht2IrQ" width="12" height="10"> | ||
1824 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CommunicatingElement"/> | ||
1825 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CommunicatingElement"/> | ||
1826 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1827 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1828 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1829 | <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"> | ||
1830 | <labelFormat>italic</labelFormat> | ||
1831 | <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"/> | ||
1832 | </ownedStyle> | ||
1833 | <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']"/> | ||
1834 | </ownedDiagramElements> | ||
1835 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__OYCYF0rEemRYLyXht2IrQ" name="GroundStationNetwork" tooltipText="" outgoingEdges="_NpQ-pl0sEemRYLyXht2IrQ" incomingEdges="_KzljXl0yEemRYLyXht2IrQ" width="12" height="10"> | ||
1836 | <target xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1837 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1838 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1839 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1840 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1841 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__B6W510vEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
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%20EClass']/@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%20EClass']"/> | ||
1845 | </ownedDiagramElements> | ||
1846 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_AqsPYF0sEemRYLyXht2IrQ" name="Spacecraft" tooltipText="" outgoingEdges="_PEp-k10sEemRYLyXht2IrQ _3GzPll0xEemRYLyXht2IrQ" incomingEdges="_PdH6PF0yEemRYLyXht2IrQ _n9tjRnA6Eem9acJE7_CmTw _3dgz_3BMEempc7JjePmuNw _37Qf-HBMEempc7JjePmuNw" width="12" height="10"> | ||
1847 | <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1848 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1849 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1850 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1851 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1852 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_l4otI3A6Eem9acJE7_CmTw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
1853 | <labelFormat>italic</labelFormat> | ||
1854 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | ||
1855 | </ownedStyle> | ||
1856 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
1857 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_-9TZsG60Eem3gIPdAp40Tw" name="/kind : SpacecraftKind = CubeSat3U" tooltipText=""> | ||
1858 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/> | ||
1859 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//Spacecraft/kind"/> | ||
1860 | <ownedStyle xmi:type="diagram:BundledImage" uid="_o3yl4nA6Eem9acJE7_CmTw" labelColor="39,76,114" labelAlignment="LEFT" description="_o3yl4HA6Eem9acJE7_CmTw"> | ||
1861 | <labelFormat>bold</labelFormat> | ||
1862 | </ownedStyle> | ||
1863 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
1864 | </ownedElements> | ||
1865 | </ownedDiagramElements> | ||
1866 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NpQ-pl0sEemRYLyXht2IrQ" sourceNode="__OYCYF0rEemRYLyXht2IrQ" targetNode="_3T7UUF0rEemRYLyXht2IrQ"> | ||
1867 | <target xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1868 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//GroundStationNetwork"/> | ||
1869 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NpRlsF0sEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
1870 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
1871 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_NpRlsV0sEemRYLyXht2IrQ" showIcon="false"> | ||
1872 | <labelFormat>italic</labelFormat> | ||
1873 | </beginLabelStyle> | ||
1874 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NpRlsl0sEemRYLyXht2IrQ" showIcon="false"/> | ||
1875 | </ownedStyle> | ||
1876 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
1877 | </ownedDiagramElements> | ||
1878 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PEp-k10sEemRYLyXht2IrQ" sourceNode="_AqsPYF0sEemRYLyXht2IrQ" targetNode="_3T7UUF0rEemRYLyXht2IrQ"> | ||
1879 | <target xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1880 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Spacecraft"/> | ||
1881 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Ap43UG61Eem3gIPdAp40Tw" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
1882 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
1883 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_Ap43UW61Eem3gIPdAp40Tw" showIcon="false"> | ||
1884 | <labelFormat>italic</labelFormat> | ||
1885 | </beginLabelStyle> | ||
1886 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Ap43Um61Eem3gIPdAp40Tw" showIcon="false"/> | ||
1887 | </ownedStyle> | ||
1888 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
1889 | </ownedDiagramElements> | ||
1890 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_j0eAEF0tEemRYLyXht2IrQ" name="CommSubsystem" tooltipText="" incomingEdges="_4B9iMF0vEemRYLyXht2IrQ _dbuYhl0xEemRYLyXht2IrQ _i2PgeV0xEemRYLyXht2IrQ" width="12" height="10"> | ||
1891 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CommSubsystem"/> | ||
1892 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CommSubsystem"/> | ||
1893 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1894 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1895 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1896 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_UMdpIV0wEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1897 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
1898 | </ownedStyle> | ||
1899 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
1900 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_zuaCUF0vEemRYLyXht2IrQ" name="band : TransceiverBand = UHF" tooltipText=""> | ||
1901 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/band"/> | ||
1902 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/band"/> | ||
1903 | <ownedStyle xmi:type="diagram:BundledImage" uid="_028-wl0vEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1904 | <labelFormat>bold</labelFormat> | ||
1905 | </ownedStyle> | ||
1906 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
1907 | </ownedElements> | ||
1908 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_Q8yBAF0wEemRYLyXht2IrQ" name="gain : AntennaGain = LOW" tooltipText=""> | ||
1909 | <target xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/gain"/> | ||
1910 | <semanticElements xmi:type="ecore:EAttribute" href="satellite.ecore#//CommSubsystem/gain"/> | ||
1911 | <ownedStyle xmi:type="diagram:BundledImage" uid="_UgHk4l0wEemRYLyXht2IrQ" labelAlignment="LEFT" description="_028-wF0vEemRYLyXht2IrQ"> | ||
1912 | <labelFormat>bold</labelFormat> | ||
1913 | </ownedStyle> | ||
1914 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
1915 | </ownedElements> | ||
1916 | </ownedDiagramElements> | ||
1917 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vyhbkF0vEemRYLyXht2IrQ" name="TransceiverBand" tooltipText="" width="12" height="10"> | ||
1918 | <target xmi:type="ecore:EEnum" href="satellite.ecore#//TransceiverBand"/> | ||
1919 | <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//TransceiverBand"/> | ||
1920 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1921 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1922 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1923 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_vyj30F0vEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
1924 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> | ||
1925 | </ownedStyle> | ||
1926 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> | ||
1927 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_x3rKMF0vEemRYLyXht2IrQ" name="UHF" tooltipText=""> | ||
1928 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/UHF"/> | ||
1929 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/UHF"/> | ||
1930 | <ownedStyle xmi:type="diagram:BundledImage" uid="_x3rKMV0vEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1931 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
1932 | </ownedStyle> | ||
1933 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
1934 | </ownedElements> | ||
1935 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_yg2DAF0vEemRYLyXht2IrQ" name="X" tooltipText=""> | ||
1936 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/X"/> | ||
1937 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/X"/> | ||
1938 | <ownedStyle xmi:type="diagram:BundledImage" uid="_yg2qEF0vEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1939 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
1940 | </ownedStyle> | ||
1941 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
1942 | </ownedElements> | ||
1943 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_zAInEF0vEemRYLyXht2IrQ" name="Ka" tooltipText=""> | ||
1944 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/Ka"/> | ||
1945 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//TransceiverBand/Ka"/> | ||
1946 | <ownedStyle xmi:type="diagram:BundledImage" uid="_zAInEV0vEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1947 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
1948 | </ownedStyle> | ||
1949 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
1950 | </ownedElements> | ||
1951 | </ownedDiagramElements> | ||
1952 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_4B9iMF0vEemRYLyXht2IrQ" name="[1..2] commSubsystem" sourceNode="_3T7UUF0rEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ"> | ||
1953 | <target xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/commSubsystem"/> | ||
1954 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/commSubsystem"/> | ||
1955 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_6kODk10vEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
1956 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_6kODlV0vEemRYLyXht2IrQ" showIcon="false"> | ||
1957 | <labelFormat>bold</labelFormat> | ||
1958 | </centerLabelStyle> | ||
1959 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_6kODlF0vEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
1960 | </ownedStyle> | ||
1961 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
1962 | </ownedDiagramElements> | ||
1963 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ctw9kF0wEemRYLyXht2IrQ" name="DirectedCommunicationLink" tooltipText="" outgoingEdges="_dbuYhl0xEemRYLyXht2IrQ _i2PgeV0xEemRYLyXht2IrQ" incomingEdges="_ccF89l0wEemRYLyXht2IrQ" width="12" height="10"> | ||
1964 | <target xmi:type="ecore:EClass" href="satellite.ecore#//DirectedCommunicationLink"/> | ||
1965 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//DirectedCommunicationLink"/> | ||
1966 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1967 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1968 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1969 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fC-qQ10xEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
1970 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
1971 | </ownedStyle> | ||
1972 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
1973 | </ownedDiagramElements> | ||
1974 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_M5OsAF0wEemRYLyXht2IrQ" name="AntennaGain" tooltipText="" width="12" height="10"> | ||
1975 | <target xmi:type="ecore:EEnum" href="satellite.ecore#//AntennaGain"/> | ||
1976 | <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//AntennaGain"/> | ||
1977 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
1978 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
1979 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
1980 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_M5OsAV0wEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
1981 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> | ||
1982 | </ownedStyle> | ||
1983 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> | ||
1984 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_OBacEF0wEemRYLyXht2IrQ" name="LOW" tooltipText=""> | ||
1985 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/LOW"/> | ||
1986 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/LOW"/> | ||
1987 | <ownedStyle xmi:type="diagram:BundledImage" uid="_OBbDIF0wEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1988 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
1989 | </ownedStyle> | ||
1990 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
1991 | </ownedElements> | ||
1992 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_OcLsgF0wEemRYLyXht2IrQ" name="MEDIUM" tooltipText=""> | ||
1993 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/MEDIUM"/> | ||
1994 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/MEDIUM"/> | ||
1995 | <ownedStyle xmi:type="diagram:BundledImage" uid="_OcLsgV0wEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
1996 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
1997 | </ownedStyle> | ||
1998 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
1999 | </ownedElements> | ||
2000 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_O9wIgF0wEemRYLyXht2IrQ" name="HIGH" tooltipText=""> | ||
2001 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/HIGH"/> | ||
2002 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//AntennaGain/HIGH"/> | ||
2003 | <ownedStyle xmi:type="diagram:BundledImage" uid="_O9wvkF0wEemRYLyXht2IrQ" labelAlignment="LEFT"> | ||
2004 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
2005 | </ownedStyle> | ||
2006 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2007 | </ownedElements> | ||
2008 | </ownedDiagramElements> | ||
2009 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ccF89l0wEemRYLyXht2IrQ" name="[0..1] communicationLink" sourceNode="_3T7UUF0rEemRYLyXht2IrQ" targetNode="_Ctw9kF0wEemRYLyXht2IrQ"> | ||
2010 | <target xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/communicationLink"/> | ||
2011 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//CommunicatingElement/communicationLink"/> | ||
2012 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ccHLE10wEemRYLyXht2IrQ" description="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2013 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ccHLFV0wEemRYLyXht2IrQ" showIcon="false"> | ||
2014 | <customFeatures>labelSize</customFeatures> | ||
2015 | </centerLabelStyle> | ||
2016 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ccHLFF0wEemRYLyXht2IrQ" showIcon="false" labelColor="39,76,114"> | ||
2017 | <customFeatures>labelSize</customFeatures> | ||
2018 | </endLabelStyle> | ||
2019 | </ownedStyle> | ||
2020 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
2021 | </ownedDiagramElements> | ||
2022 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dbuYhl0xEemRYLyXht2IrQ" name="[1..1] source" sourceNode="_Ctw9kF0wEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ"> | ||
2023 | <target xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/source"/> | ||
2024 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/source"/> | ||
2025 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_fDAfY10xEemRYLyXht2IrQ" description="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2026 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_fDAfZV0xEemRYLyXht2IrQ" showIcon="false"> | ||
2027 | <labelFormat>bold</labelFormat> | ||
2028 | </centerLabelStyle> | ||
2029 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_fDAfZF0xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
2030 | </ownedStyle> | ||
2031 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
2032 | </ownedDiagramElements> | ||
2033 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_i2PgeV0xEemRYLyXht2IrQ" name="[1..1] target" sourceNode="_Ctw9kF0wEemRYLyXht2IrQ" targetNode="_j0eAEF0tEemRYLyXht2IrQ"> | ||
2034 | <target xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/target"/> | ||
2035 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//DirectedCommunicationLink/target"/> | ||
2036 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jrg7ll0xEemRYLyXht2IrQ" description="_fDAfYF0xEemRYLyXht2IrQ" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2037 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jrg7mF0xEemRYLyXht2IrQ" showIcon="false"> | ||
2038 | <labelFormat>bold</labelFormat> | ||
2039 | </centerLabelStyle> | ||
2040 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_jrg7l10xEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
2041 | </ownedStyle> | ||
2042 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
2043 | </ownedDiagramElements> | ||
2044 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_0aW3cF0xEemRYLyXht2IrQ" name="Payload" tooltipText="" incomingEdges="_3GzPll0xEemRYLyXht2IrQ _8iFzll0xEemRYLyXht2IrQ" width="12" height="10"> | ||
2045 | <target xmi:type="ecore:EClass" href="satellite.ecore#//Payload"/> | ||
2046 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//Payload"/> | ||
2047 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2048 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2049 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2050 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_4n8SQl0xEemRYLyXht2IrQ" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
2051 | <labelFormat>italic</labelFormat> | ||
2052 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | ||
2053 | </ownedStyle> | ||
2054 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
2055 | </ownedDiagramElements> | ||
2056 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3GzPll0xEemRYLyXht2IrQ" name="[0..1] payload" sourceNode="_AqsPYF0sEemRYLyXht2IrQ" targetNode="_0aW3cF0xEemRYLyXht2IrQ"> | ||
2057 | <target xmi:type="ecore:EReference" href="satellite.ecore#//Spacecraft/payload"/> | ||
2058 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//Spacecraft/payload"/> | ||
2059 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3G0dsF0xEemRYLyXht2IrQ" description="_ccHLEF0wEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2060 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_3G0dsl0xEemRYLyXht2IrQ" showIcon="false"> | ||
2061 | <customFeatures>labelSize</customFeatures> | ||
2062 | </centerLabelStyle> | ||
2063 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3G0dsV0xEemRYLyXht2IrQ" showIcon="false" labelColor="39,76,114"> | ||
2064 | <customFeatures>labelSize</customFeatures> | ||
2065 | </endLabelStyle> | ||
2066 | </ownedStyle> | ||
2067 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
2068 | </ownedDiagramElements> | ||
2069 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_45FskF0xEemRYLyXht2IrQ" name="InterferometryPayload" tooltipText="" outgoingEdges="_8iFzll0xEemRYLyXht2IrQ" width="12" height="10"> | ||
2070 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
2071 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
2072 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2073 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2074 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2075 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IHvBB10yEemRYLyXht2IrQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
2076 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
2077 | </ownedStyle> | ||
2078 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
2079 | </ownedDiagramElements> | ||
2080 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_8iFzll0xEemRYLyXht2IrQ" sourceNode="_45FskF0xEemRYLyXht2IrQ" targetNode="_0aW3cF0xEemRYLyXht2IrQ"> | ||
2081 | <target xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
2082 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//InterferometryPayload"/> | ||
2083 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IH284l0yEemRYLyXht2IrQ" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
2084 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
2085 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IH28410yEemRYLyXht2IrQ" showIcon="false"> | ||
2086 | <labelFormat>italic</labelFormat> | ||
2087 | </beginLabelStyle> | ||
2088 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IH285F0yEemRYLyXht2IrQ" showIcon="false"/> | ||
2089 | </ownedStyle> | ||
2090 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
2091 | </ownedDiagramElements> | ||
2092 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_KzljXl0yEemRYLyXht2IrQ" name="[1..1] groundStationNetwork" sourceNode="_tM4oUF0qEemRYLyXht2IrQ" targetNode="__OYCYF0rEemRYLyXht2IrQ"> | ||
2093 | <target xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/groundStationNetwork"/> | ||
2094 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/groundStationNetwork"/> | ||
2095 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_MI6-gF0yEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2096 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_MI6-gl0yEemRYLyXht2IrQ" showIcon="false"> | ||
2097 | <labelFormat>bold</labelFormat> | ||
2098 | </centerLabelStyle> | ||
2099 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_MI6-gV0yEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
2100 | </ownedStyle> | ||
2101 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
2102 | </ownedDiagramElements> | ||
2103 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PdH6PF0yEemRYLyXht2IrQ" name="[2..50] spacecraft" sourceNode="_tM4oUF0qEemRYLyXht2IrQ" targetNode="_AqsPYF0sEemRYLyXht2IrQ"> | ||
2104 | <target xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/spacecraft"/> | ||
2105 | <semanticElements xmi:type="ecore:EReference" href="satellite.ecore#//ConstellationMission/spacecraft"/> | ||
2106 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_SRBlMF0yEemRYLyXht2IrQ" description="_6kODkF0vEemRYLyXht2IrQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
2107 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_SRBlMl0yEemRYLyXht2IrQ" showIcon="false"> | ||
2108 | <labelFormat>bold</labelFormat> | ||
2109 | </centerLabelStyle> | ||
2110 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_SRBlMV0yEemRYLyXht2IrQ" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
2111 | </ownedStyle> | ||
2112 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
2113 | </ownedDiagramElements> | ||
2114 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_2oBw0G60Eem3gIPdAp40Tw" name="SpacecraftKind" tooltipText="" width="12" height="10"> | ||
2115 | <target xmi:type="ecore:EEnum" href="satellite.ecore#//SpacecraftKind"/> | ||
2116 | <semanticElements xmi:type="ecore:EEnum" href="satellite.ecore#//SpacecraftKind"/> | ||
2117 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2118 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2119 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2120 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_2oC-8G60Eem3gIPdAp40Tw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
2121 | <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"/> | ||
2122 | </ownedStyle> | ||
2123 | <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']"/> | ||
2124 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_5P_4oG60Eem3gIPdAp40Tw" name="CubeSat3U" tooltipText=""> | ||
2125 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat3U"/> | ||
2126 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat3U"/> | ||
2127 | <ownedStyle xmi:type="diagram:BundledImage" uid="_5QAfsG60Eem3gIPdAp40Tw" labelAlignment="LEFT"> | ||
2128 | <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"/> | ||
2129 | </ownedStyle> | ||
2130 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2131 | </ownedElements> | ||
2132 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_UKKgQHA6Eem9acJE7_CmTw" name="CubeSat6U" tooltipText=""> | ||
2133 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat6U"/> | ||
2134 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/CubeSat6U"/> | ||
2135 | <ownedStyle xmi:type="diagram:BundledImage" uid="_UKLHUHA6Eem9acJE7_CmTw" labelAlignment="LEFT"> | ||
2136 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
2137 | </ownedStyle> | ||
2138 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2139 | </ownedElements> | ||
2140 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_7R9JUG60Eem3gIPdAp40Tw" name="SmallSat" tooltipText=""> | ||
2141 | <target xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SmallSat"/> | ||
2142 | <semanticElements xmi:type="ecore:EEnumLiteral" href="satellite.ecore#//SpacecraftKind/SmallSat"/> | ||
2143 | <ownedStyle xmi:type="diagram:BundledImage" uid="_7R-XcG60Eem3gIPdAp40Tw" labelAlignment="LEFT"> | ||
2144 | <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"/> | ||
2145 | </ownedStyle> | ||
2146 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
2147 | </ownedElements> | ||
2148 | </ownedDiagramElements> | ||
2149 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fm1X4HA6Eem9acJE7_CmTw" name="CubeSat3U" tooltipText="" outgoingEdges="_37Qf-HBMEempc7JjePmuNw" width="12" height="10"> | ||
2150 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/> | ||
2151 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/> | ||
2152 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2153 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2154 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2155 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fm1-8HA6Eem9acJE7_CmTw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
2156 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
2157 | </ownedStyle> | ||
2158 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
2159 | </ownedDiagramElements> | ||
2160 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hanCoHA6Eem9acJE7_CmTw" name="CubeSat6U" tooltipText="" outgoingEdges="_3dgz_3BMEempc7JjePmuNw" width="12" height="10"> | ||
2161 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/> | ||
2162 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/> | ||
2163 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2164 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2165 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2166 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_hanCoXA6Eem9acJE7_CmTw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
2167 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
2168 | </ownedStyle> | ||
2169 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
2170 | </ownedDiagramElements> | ||
2171 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iqnR8HA6Eem9acJE7_CmTw" name="SmallSat" tooltipText="" outgoingEdges="_n9tjRnA6Eem9acJE7_CmTw" width="12" height="10"> | ||
2172 | <target xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/> | ||
2173 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/> | ||
2174 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
2175 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
2176 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
2177 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_iqn5AHA6Eem9acJE7_CmTw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
2178 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
2179 | </ownedStyle> | ||
2180 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
2181 | </ownedDiagramElements> | ||
2182 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_n9tjRnA6Eem9acJE7_CmTw" sourceNode="_iqnR8HA6Eem9acJE7_CmTw" targetNode="_AqsPYF0sEemRYLyXht2IrQ"> | ||
2183 | <target xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/> | ||
2184 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//SmallSat"/> | ||
2185 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_n9uKUHA6Eem9acJE7_CmTw" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
2186 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
2187 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_n9uKUXA6Eem9acJE7_CmTw" showIcon="false"> | ||
2188 | <labelFormat>italic</labelFormat> | ||
2189 | </beginLabelStyle> | ||
2190 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_n9uKUnA6Eem9acJE7_CmTw" showIcon="false"/> | ||
2191 | </ownedStyle> | ||
2192 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
2193 | </ownedDiagramElements> | ||
2194 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3dgz_3BMEempc7JjePmuNw" sourceNode="_hanCoHA6Eem9acJE7_CmTw" targetNode="_AqsPYF0sEemRYLyXht2IrQ"> | ||
2195 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/> | ||
2196 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat6U"/> | ||
2197 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ItnCw3BNEempc7JjePmuNw" lineStyle="dot" targetArrow="InputClosedArrow" routingStyle="tree" strokeColor="125,125,125"> | ||
2198 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.1/@style"/> | ||
2199 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_ItnCxHBNEempc7JjePmuNw" showIcon="false"> | ||
2200 | <labelFormat>italic</labelFormat> | ||
2201 | </beginLabelStyle> | ||
2202 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ItnCxXBNEempc7JjePmuNw" showIcon="false"/> | ||
2203 | </ownedStyle> | ||
2204 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
2205 | </ownedDiagramElements> | ||
2206 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_37Qf-HBMEempc7JjePmuNw" sourceNode="_fm1X4HA6Eem9acJE7_CmTw" targetNode="_AqsPYF0sEemRYLyXht2IrQ"> | ||
2207 | <target xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/> | ||
2208 | <semanticElements xmi:type="ecore:EClass" href="satellite.ecore#//CubeSat3U"/> | ||
2209 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ItmbuXBNEempc7JjePmuNw" lineStyle="dot" targetArrow="InputClosedArrow" routingStyle="tree" strokeColor="125,125,125"> | ||
2210 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.1/@style"/> | ||
2211 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_ItmbunBNEempc7JjePmuNw" showIcon="false"> | ||
2212 | <labelFormat>italic</labelFormat> | ||
2213 | </beginLabelStyle> | ||
2214 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Itmbu3BNEempc7JjePmuNw" showIcon="false"/> | ||
2215 | </ownedStyle> | ||
2216 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
2217 | </ownedDiagramElements> | ||
2218 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
2219 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_reoWwF0qEemRYLyXht2IrQ"/> | ||
2220 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
2221 | <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']"/> | ||
2222 | <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']"/> | ||
2223 | <target xmi:type="ecore:EPackage" href="satellite.ecore#/"/> | ||
2224 | </diagram:DSemanticDiagram> | ||
2225 | </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..ae9197da --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore | |||
@@ -0,0 +1,65 @@ | |||
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 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
5 | <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/> | ||
6 | </eAnnotations> | ||
7 | <eClassifiers xsi:type="ecore:EClass" name="ConstellationMission" abstract="true"> | ||
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1" | ||
9 | eType="#//GroundStationNetwork" containment="true"/> | ||
10 | <eStructuralFeatures xsi:type="ecore:EReference" name="spacecraft" lowerBound="2" | ||
11 | upperBound="50" eType="#//Spacecraft" containment="true"/> | ||
12 | </eClassifiers> | ||
13 | <eClassifiers xsi:type="ecore:EClass" name="InterferometryMission" eSuperTypes="#//ConstellationMission"> | ||
14 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="observationTime" lowerBound="1" | ||
15 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat" defaultValueLiteral="2.0"/> | ||
16 | </eClassifiers> | ||
17 | <eClassifiers xsi:type="ecore:EClass" name="CommunicatingElement" abstract="true"> | ||
18 | <eStructuralFeatures xsi:type="ecore:EReference" name="commSubsystem" lowerBound="1" | ||
19 | upperBound="2" eType="#//CommSubsystem" containment="true"/> | ||
20 | <eStructuralFeatures xsi:type="ecore:EReference" name="communicationLink" eType="#//DirectedCommunicationLink" | ||
21 | containment="true"/> | ||
22 | </eClassifiers> | ||
23 | <eClassifiers xsi:type="ecore:EClass" name="GroundStationNetwork" eSuperTypes="#//CommunicatingElement"/> | ||
24 | <eClassifiers xsi:type="ecore:EClass" name="Spacecraft" abstract="true" eSuperTypes="#//CommunicatingElement"> | ||
25 | <eStructuralFeatures xsi:type="ecore:EReference" name="payload" eType="#//Payload" | ||
26 | containment="true"/> | ||
27 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//SpacecraftKind" | ||
28 | changeable="false" volatile="true" transient="true" derived="true"> | ||
29 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | ||
30 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/> | ||
31 | </eAnnotations> | ||
32 | </eStructuralFeatures> | ||
33 | </eClassifiers> | ||
34 | <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem"> | ||
35 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="band" lowerBound="1" eType="#//TransceiverBand"/> | ||
36 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="gain" lowerBound="1" eType="#//AntennaGain"/> | ||
37 | </eClassifiers> | ||
38 | <eClassifiers xsi:type="ecore:EEnum" name="TransceiverBand"> | ||
39 | <eLiterals name="UHF"/> | ||
40 | <eLiterals name="X" value="1"/> | ||
41 | <eLiterals name="Ka" value="2"/> | ||
42 | </eClassifiers> | ||
43 | <eClassifiers xsi:type="ecore:EClass" name="DirectedCommunicationLink"> | ||
44 | <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1" | ||
45 | eType="#//CommSubsystem"/> | ||
46 | <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1" | ||
47 | eType="#//CommSubsystem"/> | ||
48 | </eClassifiers> | ||
49 | <eClassifiers xsi:type="ecore:EEnum" name="AntennaGain"> | ||
50 | <eLiterals name="LOW"/> | ||
51 | <eLiterals name="MEDIUM" value="1"/> | ||
52 | <eLiterals name="HIGH" value="2"/> | ||
53 | </eClassifiers> | ||
54 | <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/> | ||
55 | <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/> | ||
56 | <eClassifiers xsi:type="ecore:EEnum" name="SpacecraftKind"> | ||
57 | <eLiterals name="CubeSat3U"/> | ||
58 | <eLiterals name="CubeSat6U" value="1"/> | ||
59 | <eLiterals name="SmallSat" value="2"/> | ||
60 | </eClassifiers> | ||
61 | <eClassifiers xsi:type="ecore:EClass" name="CubeSat3U" eSuperTypes="#//CubeSat"/> | ||
62 | <eClassifiers xsi:type="ecore:EClass" name="CubeSat6U" eSuperTypes="#//CubeSat"/> | ||
63 | <eClassifiers xsi:type="ecore:EClass" name="SmallSat" eSuperTypes="#//Spacecraft"/> | ||
64 | <eClassifiers xsi:type="ecore:EClass" name="CubeSat" abstract="true" eSuperTypes="#//Spacecraft"/> | ||
65 | </ecore:EPackage> | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel new file mode 100644 index 00000000..f8b6d75b --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel | |||
@@ -0,0 +1,59 @@ | |||
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" disposableProviderFactory="true" ecorePackage="satellite.ecore#/"> | ||
14 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//TransceiverBand"> | ||
15 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/UHF"/> | ||
16 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/X"/> | ||
17 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//TransceiverBand/Ka"/> | ||
18 | </genEnums> | ||
19 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//AntennaGain"> | ||
20 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//AntennaGain/LOW"/> | ||
21 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//AntennaGain/MEDIUM"/> | ||
22 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//AntennaGain/HIGH"/> | ||
23 | </genEnums> | ||
24 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="satellite.ecore#//SpacecraftKind"> | ||
25 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/CubeSat3U"/> | ||
26 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/CubeSat6U"/> | ||
27 | <genEnumLiterals ecoreEnumLiteral="satellite.ecore#//SpacecraftKind/SmallSat"/> | ||
28 | </genEnums> | ||
29 | <genClasses image="false" ecoreClass="satellite.ecore#//ConstellationMission"> | ||
30 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/> | ||
31 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/> | ||
32 | </genClasses> | ||
33 | <genClasses ecoreClass="satellite.ecore#//InterferometryMission"> | ||
34 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/> | ||
35 | </genClasses> | ||
36 | <genClasses image="false" ecoreClass="satellite.ecore#//CommunicatingElement"> | ||
37 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/> | ||
38 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/communicationLink"/> | ||
39 | </genClasses> | ||
40 | <genClasses ecoreClass="satellite.ecore#//GroundStationNetwork"/> | ||
41 | <genClasses image="false" ecoreClass="satellite.ecore#//Spacecraft"> | ||
42 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//Spacecraft/payload"/> | ||
43 | <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//Spacecraft/kind"/> | ||
44 | </genClasses> | ||
45 | <genClasses ecoreClass="satellite.ecore#//CommSubsystem"> | ||
46 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/band"/> | ||
47 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/gain"/> | ||
48 | </genClasses> | ||
49 | <genClasses ecoreClass="satellite.ecore#//DirectedCommunicationLink"> | ||
50 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/source"/> | ||
51 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//DirectedCommunicationLink/target"/> | ||
52 | </genClasses> | ||
53 | <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/> | ||
54 | <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/> | ||
55 | <genClasses ecoreClass="satellite.ecore#//CubeSat3U"/> | ||
56 | <genClasses ecoreClass="satellite.ecore#//CubeSat6U"/> | ||
57 | <genClasses ecoreClass="satellite.ecore#//SmallSat"/> | ||
58 | </genPackages> | ||
59 | </genmodel:GenModel> | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated new file mode 100644 index 00000000..853b7b54 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generated3valued.vql_deactivated | |||
@@ -0,0 +1,3564 @@ | |||
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 | pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
49 | find mustExist(problem,interpretation,a); | ||
50 | find mustExist(problem,interpretation,b); | ||
51 | a == b; | ||
52 | } | ||
53 | |||
54 | //////////////////////// | ||
55 | // 0.3 Required Patterns by TypeIndexer | ||
56 | //////////////////////// | ||
57 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
58 | find interpretation(problem,interpretation); | ||
59 | LogicProblem.types(problem,type); | ||
60 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
61 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
62 | } | ||
63 | |||
64 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
65 | find interpretation(problem,interpretation); | ||
66 | LogicProblem.types(problem,type); | ||
67 | TypeDefinition.elements(type,element); | ||
68 | } or { | ||
69 | find interpretation(problem,interpretation); | ||
70 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
71 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
72 | } | ||
73 | |||
74 | private pattern isPrimitive(element: PrimitiveElement) { | ||
75 | PrimitiveElement(element); | ||
76 | } | ||
77 | |||
78 | ////////// | ||
79 | // 1. Problem-Specific Base Indexers | ||
80 | ////////// | ||
81 | // 1.1 Type Indexers | ||
82 | ////////// | ||
83 | // 1.1.1 primitive Type Indexers | ||
84 | ////////// | ||
85 | |||
86 | ////////// | ||
87 | // 1.1.2 domain-specific Type Indexers | ||
88 | ////////// | ||
89 | /** | ||
90 | * An element must be an instance of type "ConstellationMission class". | ||
91 | */ | ||
92 | private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
93 | Type.name(type,"ConstellationMission class"); | ||
94 | find directInstanceOf(problem,interpretation,element,type); | ||
95 | } | ||
96 | private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
97 | find interpretation(problem,interpretation); | ||
98 | PartialInterpretation.scopes(interpretation,scope); | ||
99 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
100 | Scope.maxNewElements(scope,0); | ||
101 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
102 | Type.name(type,"ConstellationMission class"); | ||
103 | } | ||
104 | |||
105 | /** | ||
106 | * An element may be an instance of type "ConstellationMission class". | ||
107 | */ | ||
108 | private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
109 | { | ||
110 | find interpretation(problem,interpretation); | ||
111 | PartialInterpretation.newElements(interpretation,element); | ||
112 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
113 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
114 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
115 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
116 | neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); | ||
117 | neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); | ||
118 | neg find scopeDisallowsNewConstellationMission_class(problem, interpretation); | ||
119 | neg find isPrimitive(element); | ||
120 | } or { | ||
121 | find interpretation(problem,interpretation); | ||
122 | PartialInterpretation.openWorldElements(interpretation,element); | ||
123 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
124 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
125 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
126 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
127 | neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); | ||
128 | neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); | ||
129 | neg find scopeDisallowsNewConstellationMission_class(problem, interpretation); | ||
130 | neg find isPrimitive(element); | ||
131 | } or | ||
132 | { find mustInstanceOfConstellationMission_class(problem,interpretation,element); } | ||
133 | /** | ||
134 | * An element must be an instance of type "InterferometryMission class". | ||
135 | */ | ||
136 | private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
137 | Type.name(type,"InterferometryMission class"); | ||
138 | find directInstanceOf(problem,interpretation,element,type); | ||
139 | } | ||
140 | private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
141 | find interpretation(problem,interpretation); | ||
142 | PartialInterpretation.scopes(interpretation,scope); | ||
143 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
144 | Scope.maxNewElements(scope,0); | ||
145 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
146 | Type.name(type,"InterferometryMission class"); | ||
147 | } | ||
148 | |||
149 | /** | ||
150 | * An element may be an instance of type "InterferometryMission class". | ||
151 | */ | ||
152 | private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
153 | { | ||
154 | find interpretation(problem,interpretation); | ||
155 | PartialInterpretation.newElements(interpretation,element); | ||
156 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
157 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
158 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
159 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
160 | neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); | ||
161 | neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation); | ||
162 | neg find isPrimitive(element); | ||
163 | } or { | ||
164 | find interpretation(problem,interpretation); | ||
165 | PartialInterpretation.openWorldElements(interpretation,element); | ||
166 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
167 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
168 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
169 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
170 | neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); | ||
171 | neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation); | ||
172 | neg find isPrimitive(element); | ||
173 | } or | ||
174 | { find mustInstanceOfInterferometryMission_class(problem,interpretation,element); } | ||
175 | /** | ||
176 | * An element must be an instance of type "CommunicatingElement class". | ||
177 | */ | ||
178 | private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
179 | Type.name(type,"CommunicatingElement class"); | ||
180 | find directInstanceOf(problem,interpretation,element,type); | ||
181 | } | ||
182 | private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
183 | find interpretation(problem,interpretation); | ||
184 | PartialInterpretation.scopes(interpretation,scope); | ||
185 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
186 | Scope.maxNewElements(scope,0); | ||
187 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
188 | Type.name(type,"CommunicatingElement class"); | ||
189 | } | ||
190 | |||
191 | /** | ||
192 | * An element may be an instance of type "CommunicatingElement class". | ||
193 | */ | ||
194 | private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
195 | { | ||
196 | find interpretation(problem,interpretation); | ||
197 | PartialInterpretation.newElements(interpretation,element); | ||
198 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
199 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
200 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
201 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
202 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
203 | neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); | ||
204 | neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation); | ||
205 | neg find isPrimitive(element); | ||
206 | } or { | ||
207 | find interpretation(problem,interpretation); | ||
208 | PartialInterpretation.openWorldElements(interpretation,element); | ||
209 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
210 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
211 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
212 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
213 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
214 | neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); | ||
215 | neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation); | ||
216 | neg find isPrimitive(element); | ||
217 | } or | ||
218 | { find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); } | ||
219 | /** | ||
220 | * An element must be an instance of type "GroundStationNetwork class". | ||
221 | */ | ||
222 | private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
223 | Type.name(type,"GroundStationNetwork class"); | ||
224 | find directInstanceOf(problem,interpretation,element,type); | ||
225 | } | ||
226 | private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
227 | find interpretation(problem,interpretation); | ||
228 | PartialInterpretation.scopes(interpretation,scope); | ||
229 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
230 | Scope.maxNewElements(scope,0); | ||
231 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
232 | Type.name(type,"GroundStationNetwork class"); | ||
233 | } | ||
234 | |||
235 | /** | ||
236 | * An element may be an instance of type "GroundStationNetwork class". | ||
237 | */ | ||
238 | private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
239 | { | ||
240 | find interpretation(problem,interpretation); | ||
241 | PartialInterpretation.newElements(interpretation,element); | ||
242 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
243 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
244 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
245 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
246 | neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); | ||
247 | neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation); | ||
248 | neg find isPrimitive(element); | ||
249 | } or { | ||
250 | find interpretation(problem,interpretation); | ||
251 | PartialInterpretation.openWorldElements(interpretation,element); | ||
252 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
253 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
254 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
255 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
256 | neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); | ||
257 | neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation); | ||
258 | neg find isPrimitive(element); | ||
259 | } or | ||
260 | { find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); } | ||
261 | /** | ||
262 | * An element must be an instance of type "Spacecraft class". | ||
263 | */ | ||
264 | private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
265 | Type.name(type,"Spacecraft class"); | ||
266 | find directInstanceOf(problem,interpretation,element,type); | ||
267 | } | ||
268 | private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
269 | find interpretation(problem,interpretation); | ||
270 | PartialInterpretation.scopes(interpretation,scope); | ||
271 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
272 | Scope.maxNewElements(scope,0); | ||
273 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
274 | Type.name(type,"Spacecraft class"); | ||
275 | } | ||
276 | |||
277 | /** | ||
278 | * An element may be an instance of type "Spacecraft class". | ||
279 | */ | ||
280 | private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
281 | { | ||
282 | find interpretation(problem,interpretation); | ||
283 | PartialInterpretation.newElements(interpretation,element); | ||
284 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
285 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
286 | neg find mustInstanceOfCubeSat_class(problem,interpretation,element); | ||
287 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
288 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
289 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
290 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
291 | neg find scopeDisallowsNewSpacecraft_class(problem, interpretation); | ||
292 | neg find isPrimitive(element); | ||
293 | } or { | ||
294 | find interpretation(problem,interpretation); | ||
295 | PartialInterpretation.openWorldElements(interpretation,element); | ||
296 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
297 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
298 | neg find mustInstanceOfCubeSat_class(problem,interpretation,element); | ||
299 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
300 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
301 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
302 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
303 | neg find scopeDisallowsNewSpacecraft_class(problem, interpretation); | ||
304 | neg find isPrimitive(element); | ||
305 | } or | ||
306 | { find mustInstanceOfSpacecraft_class(problem,interpretation,element); } | ||
307 | /** | ||
308 | * An element must be an instance of type "CommSubsystem class". | ||
309 | */ | ||
310 | private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
311 | Type.name(type,"CommSubsystem class"); | ||
312 | find directInstanceOf(problem,interpretation,element,type); | ||
313 | } | ||
314 | private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
315 | find interpretation(problem,interpretation); | ||
316 | PartialInterpretation.scopes(interpretation,scope); | ||
317 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
318 | Scope.maxNewElements(scope,0); | ||
319 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
320 | Type.name(type,"CommSubsystem class"); | ||
321 | } | ||
322 | |||
323 | /** | ||
324 | * An element may be an instance of type "CommSubsystem class". | ||
325 | */ | ||
326 | private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
327 | { | ||
328 | find interpretation(problem,interpretation); | ||
329 | PartialInterpretation.newElements(interpretation,element); | ||
330 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
331 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
332 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
333 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
334 | neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); | ||
335 | neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation); | ||
336 | neg find isPrimitive(element); | ||
337 | } or { | ||
338 | find interpretation(problem,interpretation); | ||
339 | PartialInterpretation.openWorldElements(interpretation,element); | ||
340 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
341 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
342 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
343 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
344 | neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); | ||
345 | neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation); | ||
346 | neg find isPrimitive(element); | ||
347 | } or | ||
348 | { find mustInstanceOfCommSubsystem_class(problem,interpretation,element); } | ||
349 | /** | ||
350 | * An element must be an instance of type "DirectedCommunicationLink class". | ||
351 | */ | ||
352 | private pattern mustInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
353 | Type.name(type,"DirectedCommunicationLink class"); | ||
354 | find directInstanceOf(problem,interpretation,element,type); | ||
355 | } | ||
356 | private pattern scopeDisallowsNewDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
357 | find interpretation(problem,interpretation); | ||
358 | PartialInterpretation.scopes(interpretation,scope); | ||
359 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
360 | Scope.maxNewElements(scope,0); | ||
361 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
362 | Type.name(type,"DirectedCommunicationLink class"); | ||
363 | } | ||
364 | |||
365 | /** | ||
366 | * An element may be an instance of type "DirectedCommunicationLink class". | ||
367 | */ | ||
368 | private pattern mayInstanceOfDirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
369 | { | ||
370 | find interpretation(problem,interpretation); | ||
371 | PartialInterpretation.newElements(interpretation,element); | ||
372 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
373 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
374 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
375 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
376 | neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation); | ||
377 | neg find isPrimitive(element); | ||
378 | } or { | ||
379 | find interpretation(problem,interpretation); | ||
380 | PartialInterpretation.openWorldElements(interpretation,element); | ||
381 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
382 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
383 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
384 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
385 | neg find scopeDisallowsNewDirectedCommunicationLink_class(problem, interpretation); | ||
386 | neg find isPrimitive(element); | ||
387 | } or | ||
388 | { find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); } | ||
389 | /** | ||
390 | * An element must be an instance of type "Payload class". | ||
391 | */ | ||
392 | private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
393 | Type.name(type,"Payload class"); | ||
394 | find directInstanceOf(problem,interpretation,element,type); | ||
395 | } | ||
396 | private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
397 | find interpretation(problem,interpretation); | ||
398 | PartialInterpretation.scopes(interpretation,scope); | ||
399 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
400 | Scope.maxNewElements(scope,0); | ||
401 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
402 | Type.name(type,"Payload class"); | ||
403 | } | ||
404 | |||
405 | /** | ||
406 | * An element may be an instance of type "Payload class". | ||
407 | */ | ||
408 | private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
409 | { | ||
410 | find interpretation(problem,interpretation); | ||
411 | PartialInterpretation.newElements(interpretation,element); | ||
412 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
413 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
414 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
415 | neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); | ||
416 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
417 | neg find scopeDisallowsNewPayload_class(problem, interpretation); | ||
418 | neg find isPrimitive(element); | ||
419 | } or { | ||
420 | find interpretation(problem,interpretation); | ||
421 | PartialInterpretation.openWorldElements(interpretation,element); | ||
422 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
423 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
424 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
425 | neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); | ||
426 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
427 | neg find scopeDisallowsNewPayload_class(problem, interpretation); | ||
428 | neg find isPrimitive(element); | ||
429 | } or | ||
430 | { find mustInstanceOfPayload_class(problem,interpretation,element); } | ||
431 | /** | ||
432 | * An element must be an instance of type "InterferometryPayload class". | ||
433 | */ | ||
434 | private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
435 | Type.name(type,"InterferometryPayload class"); | ||
436 | find directInstanceOf(problem,interpretation,element,type); | ||
437 | } | ||
438 | private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
439 | find interpretation(problem,interpretation); | ||
440 | PartialInterpretation.scopes(interpretation,scope); | ||
441 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
442 | Scope.maxNewElements(scope,0); | ||
443 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
444 | Type.name(type,"InterferometryPayload class"); | ||
445 | } | ||
446 | |||
447 | /** | ||
448 | * An element may be an instance of type "InterferometryPayload class". | ||
449 | */ | ||
450 | private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
451 | { | ||
452 | find interpretation(problem,interpretation); | ||
453 | PartialInterpretation.newElements(interpretation,element); | ||
454 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
455 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
456 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
457 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
458 | neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation); | ||
459 | neg find isPrimitive(element); | ||
460 | } or { | ||
461 | find interpretation(problem,interpretation); | ||
462 | PartialInterpretation.openWorldElements(interpretation,element); | ||
463 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
464 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
465 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
466 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
467 | neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation); | ||
468 | neg find isPrimitive(element); | ||
469 | } or | ||
470 | { find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); } | ||
471 | /** | ||
472 | * An element must be an instance of type "CubeSat3U class". | ||
473 | */ | ||
474 | private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
475 | Type.name(type,"CubeSat3U class"); | ||
476 | find directInstanceOf(problem,interpretation,element,type); | ||
477 | } | ||
478 | private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
479 | find interpretation(problem,interpretation); | ||
480 | PartialInterpretation.scopes(interpretation,scope); | ||
481 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
482 | Scope.maxNewElements(scope,0); | ||
483 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
484 | Type.name(type,"CubeSat3U class"); | ||
485 | } | ||
486 | |||
487 | /** | ||
488 | * An element may be an instance of type "CubeSat3U class". | ||
489 | */ | ||
490 | private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
491 | { | ||
492 | find interpretation(problem,interpretation); | ||
493 | PartialInterpretation.newElements(interpretation,element); | ||
494 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
495 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
496 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
497 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
498 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
499 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
500 | neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
501 | neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation); | ||
502 | neg find isPrimitive(element); | ||
503 | } or { | ||
504 | find interpretation(problem,interpretation); | ||
505 | PartialInterpretation.openWorldElements(interpretation,element); | ||
506 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
507 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
508 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
509 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
510 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
511 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
512 | neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
513 | neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation); | ||
514 | neg find isPrimitive(element); | ||
515 | } or | ||
516 | { find mustInstanceOfCubeSat3U_class(problem,interpretation,element); } | ||
517 | /** | ||
518 | * An element must be an instance of type "CubeSat6U class". | ||
519 | */ | ||
520 | private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
521 | Type.name(type,"CubeSat6U class"); | ||
522 | find directInstanceOf(problem,interpretation,element,type); | ||
523 | } | ||
524 | private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
525 | find interpretation(problem,interpretation); | ||
526 | PartialInterpretation.scopes(interpretation,scope); | ||
527 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
528 | Scope.maxNewElements(scope,0); | ||
529 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
530 | Type.name(type,"CubeSat6U class"); | ||
531 | } | ||
532 | |||
533 | /** | ||
534 | * An element may be an instance of type "CubeSat6U class". | ||
535 | */ | ||
536 | private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
537 | { | ||
538 | find interpretation(problem,interpretation); | ||
539 | PartialInterpretation.newElements(interpretation,element); | ||
540 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
541 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
542 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
543 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
544 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
545 | neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
546 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
547 | neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation); | ||
548 | neg find isPrimitive(element); | ||
549 | } or { | ||
550 | find interpretation(problem,interpretation); | ||
551 | PartialInterpretation.openWorldElements(interpretation,element); | ||
552 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
553 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
554 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
555 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
556 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
557 | neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
558 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
559 | neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation); | ||
560 | neg find isPrimitive(element); | ||
561 | } or | ||
562 | { find mustInstanceOfCubeSat6U_class(problem,interpretation,element); } | ||
563 | /** | ||
564 | * An element must be an instance of type "SmallSat class". | ||
565 | */ | ||
566 | private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
567 | Type.name(type,"SmallSat class"); | ||
568 | find directInstanceOf(problem,interpretation,element,type); | ||
569 | } | ||
570 | private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
571 | find interpretation(problem,interpretation); | ||
572 | PartialInterpretation.scopes(interpretation,scope); | ||
573 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
574 | Scope.maxNewElements(scope,0); | ||
575 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
576 | Type.name(type,"SmallSat class"); | ||
577 | } | ||
578 | |||
579 | /** | ||
580 | * An element may be an instance of type "SmallSat class". | ||
581 | */ | ||
582 | private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
583 | { | ||
584 | find interpretation(problem,interpretation); | ||
585 | PartialInterpretation.newElements(interpretation,element); | ||
586 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
587 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
588 | neg find mustInstanceOfCubeSat_class(problem,interpretation,element); | ||
589 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
590 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
591 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
592 | neg find scopeDisallowsNewSmallSat_class(problem, interpretation); | ||
593 | neg find isPrimitive(element); | ||
594 | } or { | ||
595 | find interpretation(problem,interpretation); | ||
596 | PartialInterpretation.openWorldElements(interpretation,element); | ||
597 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
598 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
599 | neg find mustInstanceOfCubeSat_class(problem,interpretation,element); | ||
600 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
601 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
602 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
603 | neg find scopeDisallowsNewSmallSat_class(problem, interpretation); | ||
604 | neg find isPrimitive(element); | ||
605 | } or | ||
606 | { find mustInstanceOfSmallSat_class(problem,interpretation,element); } | ||
607 | /** | ||
608 | * An element must be an instance of type "CubeSat class". | ||
609 | */ | ||
610 | private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
611 | Type.name(type,"CubeSat class"); | ||
612 | find directInstanceOf(problem,interpretation,element,type); | ||
613 | } | ||
614 | private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
615 | find interpretation(problem,interpretation); | ||
616 | PartialInterpretation.scopes(interpretation,scope); | ||
617 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
618 | Scope.maxNewElements(scope,0); | ||
619 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
620 | Type.name(type,"CubeSat class"); | ||
621 | } | ||
622 | |||
623 | /** | ||
624 | * An element may be an instance of type "CubeSat class". | ||
625 | */ | ||
626 | private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
627 | { | ||
628 | find interpretation(problem,interpretation); | ||
629 | PartialInterpretation.newElements(interpretation,element); | ||
630 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
631 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
632 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
633 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
634 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
635 | neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
636 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
637 | neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
638 | neg find scopeDisallowsNewCubeSat_class(problem, interpretation); | ||
639 | neg find isPrimitive(element); | ||
640 | } or { | ||
641 | find interpretation(problem,interpretation); | ||
642 | PartialInterpretation.openWorldElements(interpretation,element); | ||
643 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
644 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
645 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
646 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
647 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
648 | neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
649 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
650 | neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
651 | neg find scopeDisallowsNewCubeSat_class(problem, interpretation); | ||
652 | neg find isPrimitive(element); | ||
653 | } or | ||
654 | { find mustInstanceOfCubeSat_class(problem,interpretation,element); } | ||
655 | /** | ||
656 | * An element must be an instance of type "TransceiverBand enum". | ||
657 | */ | ||
658 | private pattern mustInstanceOfTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
659 | Type.name(type,"TransceiverBand enum"); | ||
660 | find directInstanceOf(problem,interpretation,element,type); | ||
661 | } | ||
662 | private pattern scopeDisallowsNewTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
663 | find interpretation(problem,interpretation); | ||
664 | PartialInterpretation.scopes(interpretation,scope); | ||
665 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
666 | Scope.maxNewElements(scope,0); | ||
667 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
668 | Type.name(type,"TransceiverBand enum"); | ||
669 | } | ||
670 | |||
671 | /** | ||
672 | * An element may be an instance of type "TransceiverBand enum". | ||
673 | */ | ||
674 | private pattern mayInstanceOfTransceiverBand_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
675 | { find mustInstanceOfTransceiverBand_enum(problem,interpretation,element); } | ||
676 | /** | ||
677 | * An element must be an instance of type "AntennaGain enum". | ||
678 | */ | ||
679 | private pattern mustInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
680 | Type.name(type,"AntennaGain enum"); | ||
681 | find directInstanceOf(problem,interpretation,element,type); | ||
682 | } | ||
683 | private pattern scopeDisallowsNewAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
684 | find interpretation(problem,interpretation); | ||
685 | PartialInterpretation.scopes(interpretation,scope); | ||
686 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
687 | Scope.maxNewElements(scope,0); | ||
688 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
689 | Type.name(type,"AntennaGain enum"); | ||
690 | } | ||
691 | |||
692 | /** | ||
693 | * An element may be an instance of type "AntennaGain enum". | ||
694 | */ | ||
695 | private pattern mayInstanceOfAntennaGain_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
696 | { find mustInstanceOfAntennaGain_enum(problem,interpretation,element); } | ||
697 | /** | ||
698 | * An element must be an instance of type "SpacecraftKind enum". | ||
699 | */ | ||
700 | private pattern mustInstanceOfSpacecraftKind_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
701 | Type.name(type,"SpacecraftKind enum"); | ||
702 | find directInstanceOf(problem,interpretation,element,type); | ||
703 | } | ||
704 | private pattern scopeDisallowsNewSpacecraftKind_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
705 | find interpretation(problem,interpretation); | ||
706 | PartialInterpretation.scopes(interpretation,scope); | ||
707 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
708 | Scope.maxNewElements(scope,0); | ||
709 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
710 | Type.name(type,"SpacecraftKind enum"); | ||
711 | } | ||
712 | |||
713 | /** | ||
714 | * An element may be an instance of type "SpacecraftKind enum". | ||
715 | */ | ||
716 | private pattern mayInstanceOfSpacecraftKind_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
717 | { find mustInstanceOfSpacecraftKind_enum(problem,interpretation,element); } | ||
718 | /** | ||
719 | * An element must be an instance of type "ConstellationMission class DefinedPart". | ||
720 | */ | ||
721 | private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
722 | Type.name(type,"ConstellationMission class DefinedPart"); | ||
723 | find directInstanceOf(problem,interpretation,element,type); | ||
724 | } | ||
725 | private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
726 | find interpretation(problem,interpretation); | ||
727 | PartialInterpretation.scopes(interpretation,scope); | ||
728 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
729 | Scope.maxNewElements(scope,0); | ||
730 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
731 | Type.name(type,"ConstellationMission class DefinedPart"); | ||
732 | } | ||
733 | |||
734 | /** | ||
735 | * An element may be an instance of type "ConstellationMission class DefinedPart". | ||
736 | */ | ||
737 | private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
738 | { find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); } | ||
739 | /** | ||
740 | * An element must be an instance of type "ConstellationMission class UndefinedPart". | ||
741 | */ | ||
742 | private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
743 | Type.name(type,"ConstellationMission class UndefinedPart"); | ||
744 | find directInstanceOf(problem,interpretation,element,type); | ||
745 | } | ||
746 | private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
747 | find interpretation(problem,interpretation); | ||
748 | PartialInterpretation.scopes(interpretation,scope); | ||
749 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
750 | Scope.maxNewElements(scope,0); | ||
751 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
752 | Type.name(type,"ConstellationMission class UndefinedPart"); | ||
753 | } | ||
754 | |||
755 | /** | ||
756 | * An element may be an instance of type "ConstellationMission class UndefinedPart". | ||
757 | */ | ||
758 | private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
759 | { | ||
760 | find interpretation(problem,interpretation); | ||
761 | PartialInterpretation.newElements(interpretation,element); | ||
762 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
763 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
764 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
765 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
766 | neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); | ||
767 | neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation); | ||
768 | neg find isPrimitive(element); | ||
769 | } or { | ||
770 | find interpretation(problem,interpretation); | ||
771 | PartialInterpretation.openWorldElements(interpretation,element); | ||
772 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
773 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
774 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
775 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
776 | neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); | ||
777 | neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation); | ||
778 | neg find isPrimitive(element); | ||
779 | } or | ||
780 | { find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); } | ||
781 | /** | ||
782 | * An element must be an instance of type "InterferometryMission class DefinedPart". | ||
783 | */ | ||
784 | private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
785 | Type.name(type,"InterferometryMission class DefinedPart"); | ||
786 | find directInstanceOf(problem,interpretation,element,type); | ||
787 | } | ||
788 | private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
789 | find interpretation(problem,interpretation); | ||
790 | PartialInterpretation.scopes(interpretation,scope); | ||
791 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
792 | Scope.maxNewElements(scope,0); | ||
793 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
794 | Type.name(type,"InterferometryMission class DefinedPart"); | ||
795 | } | ||
796 | |||
797 | /** | ||
798 | * An element may be an instance of type "InterferometryMission class DefinedPart". | ||
799 | */ | ||
800 | private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
801 | { find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); } | ||
802 | /** | ||
803 | * An element must be an instance of type "InterferometryMission class UndefinedPart". | ||
804 | */ | ||
805 | private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
806 | Type.name(type,"InterferometryMission class UndefinedPart"); | ||
807 | find directInstanceOf(problem,interpretation,element,type); | ||
808 | } | ||
809 | private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
810 | find interpretation(problem,interpretation); | ||
811 | PartialInterpretation.scopes(interpretation,scope); | ||
812 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
813 | Scope.maxNewElements(scope,0); | ||
814 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
815 | Type.name(type,"InterferometryMission class UndefinedPart"); | ||
816 | } | ||
817 | |||
818 | /** | ||
819 | * An element may be an instance of type "InterferometryMission class UndefinedPart". | ||
820 | */ | ||
821 | private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
822 | { | ||
823 | find interpretation(problem,interpretation); | ||
824 | PartialInterpretation.newElements(interpretation,element); | ||
825 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
826 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
827 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
828 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
829 | neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation); | ||
830 | neg find isPrimitive(element); | ||
831 | } or { | ||
832 | find interpretation(problem,interpretation); | ||
833 | PartialInterpretation.openWorldElements(interpretation,element); | ||
834 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
835 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
836 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
837 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
838 | neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation); | ||
839 | neg find isPrimitive(element); | ||
840 | } or | ||
841 | { find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); } | ||
842 | /** | ||
843 | * An element must be an instance of type "CommunicatingElement class DefinedPart". | ||
844 | */ | ||
845 | private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
846 | Type.name(type,"CommunicatingElement class DefinedPart"); | ||
847 | find directInstanceOf(problem,interpretation,element,type); | ||
848 | } | ||
849 | private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
850 | find interpretation(problem,interpretation); | ||
851 | PartialInterpretation.scopes(interpretation,scope); | ||
852 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
853 | Scope.maxNewElements(scope,0); | ||
854 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
855 | Type.name(type,"CommunicatingElement class DefinedPart"); | ||
856 | } | ||
857 | |||
858 | /** | ||
859 | * An element may be an instance of type "CommunicatingElement class DefinedPart". | ||
860 | */ | ||
861 | private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
862 | { find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); } | ||
863 | /** | ||
864 | * An element must be an instance of type "CommunicatingElement class UndefinedPart". | ||
865 | */ | ||
866 | private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
867 | Type.name(type,"CommunicatingElement class UndefinedPart"); | ||
868 | find directInstanceOf(problem,interpretation,element,type); | ||
869 | } | ||
870 | private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
871 | find interpretation(problem,interpretation); | ||
872 | PartialInterpretation.scopes(interpretation,scope); | ||
873 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
874 | Scope.maxNewElements(scope,0); | ||
875 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
876 | Type.name(type,"CommunicatingElement class UndefinedPart"); | ||
877 | } | ||
878 | |||
879 | /** | ||
880 | * An element may be an instance of type "CommunicatingElement class UndefinedPart". | ||
881 | */ | ||
882 | private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
883 | { | ||
884 | find interpretation(problem,interpretation); | ||
885 | PartialInterpretation.newElements(interpretation,element); | ||
886 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
887 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
888 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
889 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
890 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
891 | neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); | ||
892 | neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation); | ||
893 | neg find isPrimitive(element); | ||
894 | } or { | ||
895 | find interpretation(problem,interpretation); | ||
896 | PartialInterpretation.openWorldElements(interpretation,element); | ||
897 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
898 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
899 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
900 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
901 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
902 | neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); | ||
903 | neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation); | ||
904 | neg find isPrimitive(element); | ||
905 | } or | ||
906 | { find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); } | ||
907 | /** | ||
908 | * An element must be an instance of type "GroundStationNetwork class DefinedPart". | ||
909 | */ | ||
910 | private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
911 | Type.name(type,"GroundStationNetwork class DefinedPart"); | ||
912 | find directInstanceOf(problem,interpretation,element,type); | ||
913 | } | ||
914 | private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
915 | find interpretation(problem,interpretation); | ||
916 | PartialInterpretation.scopes(interpretation,scope); | ||
917 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
918 | Scope.maxNewElements(scope,0); | ||
919 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
920 | Type.name(type,"GroundStationNetwork class DefinedPart"); | ||
921 | } | ||
922 | |||
923 | /** | ||
924 | * An element may be an instance of type "GroundStationNetwork class DefinedPart". | ||
925 | */ | ||
926 | private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
927 | { find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); } | ||
928 | /** | ||
929 | * An element must be an instance of type "GroundStationNetwork class UndefinedPart". | ||
930 | */ | ||
931 | private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
932 | Type.name(type,"GroundStationNetwork class UndefinedPart"); | ||
933 | find directInstanceOf(problem,interpretation,element,type); | ||
934 | } | ||
935 | private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
936 | find interpretation(problem,interpretation); | ||
937 | PartialInterpretation.scopes(interpretation,scope); | ||
938 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
939 | Scope.maxNewElements(scope,0); | ||
940 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
941 | Type.name(type,"GroundStationNetwork class UndefinedPart"); | ||
942 | } | ||
943 | |||
944 | /** | ||
945 | * An element may be an instance of type "GroundStationNetwork class UndefinedPart". | ||
946 | */ | ||
947 | private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
948 | { | ||
949 | find interpretation(problem,interpretation); | ||
950 | PartialInterpretation.newElements(interpretation,element); | ||
951 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
952 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
953 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
954 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
955 | neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); | ||
956 | neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation); | ||
957 | neg find isPrimitive(element); | ||
958 | } or { | ||
959 | find interpretation(problem,interpretation); | ||
960 | PartialInterpretation.openWorldElements(interpretation,element); | ||
961 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
962 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
963 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
964 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
965 | neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); | ||
966 | neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation); | ||
967 | neg find isPrimitive(element); | ||
968 | } or | ||
969 | { find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); } | ||
970 | /** | ||
971 | * An element must be an instance of type "CommSubsystem class DefinedPart". | ||
972 | */ | ||
973 | private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
974 | Type.name(type,"CommSubsystem class DefinedPart"); | ||
975 | find directInstanceOf(problem,interpretation,element,type); | ||
976 | } | ||
977 | private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
978 | find interpretation(problem,interpretation); | ||
979 | PartialInterpretation.scopes(interpretation,scope); | ||
980 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
981 | Scope.maxNewElements(scope,0); | ||
982 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
983 | Type.name(type,"CommSubsystem class DefinedPart"); | ||
984 | } | ||
985 | |||
986 | /** | ||
987 | * An element may be an instance of type "CommSubsystem class DefinedPart". | ||
988 | */ | ||
989 | private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
990 | { find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); } | ||
991 | /** | ||
992 | * An element must be an instance of type "CommSubsystem class UndefinedPart". | ||
993 | */ | ||
994 | private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
995 | Type.name(type,"CommSubsystem class UndefinedPart"); | ||
996 | find directInstanceOf(problem,interpretation,element,type); | ||
997 | } | ||
998 | private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
999 | find interpretation(problem,interpretation); | ||
1000 | PartialInterpretation.scopes(interpretation,scope); | ||
1001 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
1002 | Scope.maxNewElements(scope,0); | ||
1003 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
1004 | Type.name(type,"CommSubsystem class UndefinedPart"); | ||
1005 | } | ||
1006 | |||
1007 | /** | ||
1008 | * An element may be an instance of type "CommSubsystem class UndefinedPart". | ||
1009 | */ | ||
1010 | private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
1011 | { | ||
1012 | find interpretation(problem,interpretation); | ||
1013 | PartialInterpretation.newElements(interpretation,element); | ||
1014 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
1015 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
1016 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
1017 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
1018 | neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation); | ||
1019 | neg find isPrimitive(element); | ||
1020 | } or { | ||
1021 | find interpretation(problem,interpretation); | ||
1022 | PartialInterpretation.openWorldElements(interpretation,element); | ||
1023 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
1024 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
1025 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
1026 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
1027 | neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation); | ||
1028 | neg find isPrimitive(element); | ||
1029 | } or | ||
1030 | { find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); } | ||
1031 | |||
1032 | ////////// | ||
1033 | // 1.2 Relation Declaration Indexers | ||
1034 | ////////// | ||
1035 | /** | ||
1036 | * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target) | ||
1037 | */ | ||
1038 | private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission( | ||
1039 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1040 | source: DefinedElement, target:DefinedElement) | ||
1041 | { | ||
1042 | find interpretation(problem,interpretation); | ||
1043 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1044 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission"); | ||
1045 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1046 | BinaryElementRelationLink.param1(link,source); | ||
1047 | BinaryElementRelationLink.param2(link,target); | ||
1048 | } | ||
1049 | /** | ||
1050 | * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target) | ||
1051 | */ | ||
1052 | private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission( | ||
1053 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1054 | source: DefinedElement, target:DefinedElement) | ||
1055 | { | ||
1056 | find interpretation(problem,interpretation); | ||
1057 | // The two endpoint of the link have to exist | ||
1058 | find mayExist(problem, interpretation, source); | ||
1059 | find mayExist(problem, interpretation, target); | ||
1060 | // Type consistency | ||
1061 | find mayInstanceOfConstellationMission_class(problem,interpretation,source); | ||
1062 | find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target); | ||
1063 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1064 | // the upper bound of the multiplicity should be considered. | ||
1065 | numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_); | ||
1066 | check(numberOfExistingReferences < 1); | ||
1067 | // The reference is containment, then a new reference cannot be create if: | ||
1068 | // 1. Multiple parents | ||
1069 | neg find mustContains4(problem,interpretation,_,target); | ||
1070 | // 2. Circle in the containment hierarchy | ||
1071 | neg find mustTransitiveContains(source,target); | ||
1072 | } or { | ||
1073 | find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); | ||
1074 | } | ||
1075 | /** | ||
1076 | * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target) | ||
1077 | */ | ||
1078 | private pattern mustInRelationspacecraft_reference_ConstellationMission( | ||
1079 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1080 | source: DefinedElement, target:DefinedElement) | ||
1081 | { | ||
1082 | find interpretation(problem,interpretation); | ||
1083 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1084 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission"); | ||
1085 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1086 | BinaryElementRelationLink.param1(link,source); | ||
1087 | BinaryElementRelationLink.param2(link,target); | ||
1088 | } | ||
1089 | /** | ||
1090 | * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target) | ||
1091 | */ | ||
1092 | private pattern mayInRelationspacecraft_reference_ConstellationMission( | ||
1093 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1094 | source: DefinedElement, target:DefinedElement) | ||
1095 | { | ||
1096 | find interpretation(problem,interpretation); | ||
1097 | // The two endpoint of the link have to exist | ||
1098 | find mayExist(problem, interpretation, source); | ||
1099 | find mayExist(problem, interpretation, target); | ||
1100 | // Type consistency | ||
1101 | find mayInstanceOfConstellationMission_class(problem,interpretation,source); | ||
1102 | find mayInstanceOfSpacecraft_class(problem,interpretation,target); | ||
1103 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1104 | // the upper bound of the multiplicity should be considered. | ||
1105 | numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_); | ||
1106 | check(numberOfExistingReferences < 50); | ||
1107 | // The reference is containment, then a new reference cannot be create if: | ||
1108 | // 1. Multiple parents | ||
1109 | neg find mustContains4(problem,interpretation,_,target); | ||
1110 | // 2. Circle in the containment hierarchy | ||
1111 | neg find mustTransitiveContains(source,target); | ||
1112 | } or { | ||
1113 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); | ||
1114 | } | ||
1115 | /** | ||
1116 | * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target) | ||
1117 | */ | ||
1118 | private pattern mustInRelationcommSubsystem_reference_CommunicatingElement( | ||
1119 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1120 | source: DefinedElement, target:DefinedElement) | ||
1121 | { | ||
1122 | find interpretation(problem,interpretation); | ||
1123 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1124 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement"); | ||
1125 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1126 | BinaryElementRelationLink.param1(link,source); | ||
1127 | BinaryElementRelationLink.param2(link,target); | ||
1128 | } | ||
1129 | /** | ||
1130 | * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target) | ||
1131 | */ | ||
1132 | private pattern mayInRelationcommSubsystem_reference_CommunicatingElement( | ||
1133 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1134 | source: DefinedElement, target:DefinedElement) | ||
1135 | { | ||
1136 | find interpretation(problem,interpretation); | ||
1137 | // The two endpoint of the link have to exist | ||
1138 | find mayExist(problem, interpretation, source); | ||
1139 | find mayExist(problem, interpretation, target); | ||
1140 | // Type consistency | ||
1141 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,source); | ||
1142 | find mayInstanceOfCommSubsystem_class(problem,interpretation,target); | ||
1143 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1144 | // the upper bound of the multiplicity should be considered. | ||
1145 | numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_); | ||
1146 | check(numberOfExistingReferences < 2); | ||
1147 | // The reference is containment, then a new reference cannot be create if: | ||
1148 | // 1. Multiple parents | ||
1149 | neg find mustContains4(problem,interpretation,_,target); | ||
1150 | // 2. Circle in the containment hierarchy | ||
1151 | neg find mustTransitiveContains(source,target); | ||
1152 | } or { | ||
1153 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); | ||
1154 | } | ||
1155 | /** | ||
1156 | * Matcher for detecting tuples t where []communicationLink reference CommunicatingElement(source,target) | ||
1157 | */ | ||
1158 | private pattern mustInRelationcommunicationLink_reference_CommunicatingElement( | ||
1159 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1160 | source: DefinedElement, target:DefinedElement) | ||
1161 | { | ||
1162 | find interpretation(problem,interpretation); | ||
1163 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1164 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"communicationLink reference CommunicatingElement"); | ||
1165 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1166 | BinaryElementRelationLink.param1(link,source); | ||
1167 | BinaryElementRelationLink.param2(link,target); | ||
1168 | } | ||
1169 | /** | ||
1170 | * Matcher for detecting tuples t where <>communicationLink reference CommunicatingElement(source,target) | ||
1171 | */ | ||
1172 | private pattern mayInRelationcommunicationLink_reference_CommunicatingElement( | ||
1173 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1174 | source: DefinedElement, target:DefinedElement) | ||
1175 | { | ||
1176 | find interpretation(problem,interpretation); | ||
1177 | // The two endpoint of the link have to exist | ||
1178 | find mayExist(problem, interpretation, source); | ||
1179 | find mayExist(problem, interpretation, target); | ||
1180 | // Type consistency | ||
1181 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,source); | ||
1182 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,target); | ||
1183 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1184 | // the upper bound of the multiplicity should be considered. | ||
1185 | numberOfExistingReferences == count find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,source,_); | ||
1186 | check(numberOfExistingReferences < 1); | ||
1187 | // The reference is containment, then a new reference cannot be create if: | ||
1188 | // 1. Multiple parents | ||
1189 | neg find mustContains4(problem,interpretation,_,target); | ||
1190 | // 2. Circle in the containment hierarchy | ||
1191 | neg find mustTransitiveContains(source,target); | ||
1192 | } or { | ||
1193 | find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,source,target); | ||
1194 | } | ||
1195 | /** | ||
1196 | * Matcher for detecting tuples t where []payload reference Spacecraft(source,target) | ||
1197 | */ | ||
1198 | private pattern mustInRelationpayload_reference_Spacecraft( | ||
1199 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1200 | source: DefinedElement, target:DefinedElement) | ||
1201 | { | ||
1202 | find interpretation(problem,interpretation); | ||
1203 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1204 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft"); | ||
1205 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1206 | BinaryElementRelationLink.param1(link,source); | ||
1207 | BinaryElementRelationLink.param2(link,target); | ||
1208 | } | ||
1209 | /** | ||
1210 | * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target) | ||
1211 | */ | ||
1212 | private pattern mayInRelationpayload_reference_Spacecraft( | ||
1213 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1214 | source: DefinedElement, target:DefinedElement) | ||
1215 | { | ||
1216 | find interpretation(problem,interpretation); | ||
1217 | // The two endpoint of the link have to exist | ||
1218 | find mayExist(problem, interpretation, source); | ||
1219 | find mayExist(problem, interpretation, target); | ||
1220 | // Type consistency | ||
1221 | find mayInstanceOfSpacecraft_class(problem,interpretation,source); | ||
1222 | find mayInstanceOfPayload_class(problem,interpretation,target); | ||
1223 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1224 | // the upper bound of the multiplicity should be considered. | ||
1225 | numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_); | ||
1226 | check(numberOfExistingReferences < 1); | ||
1227 | // The reference is containment, then a new reference cannot be create if: | ||
1228 | // 1. Multiple parents | ||
1229 | neg find mustContains4(problem,interpretation,_,target); | ||
1230 | // 2. Circle in the containment hierarchy | ||
1231 | neg find mustTransitiveContains(source,target); | ||
1232 | } or { | ||
1233 | find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); | ||
1234 | } | ||
1235 | /** | ||
1236 | * Matcher for detecting tuples t where []source reference DirectedCommunicationLink(source,target) | ||
1237 | */ | ||
1238 | private pattern mustInRelationsource_reference_DirectedCommunicationLink( | ||
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,"source reference DirectedCommunicationLink"); | ||
1245 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1246 | BinaryElementRelationLink.param1(link,source); | ||
1247 | BinaryElementRelationLink.param2(link,target); | ||
1248 | } | ||
1249 | /** | ||
1250 | * Matcher for detecting tuples t where <>source reference DirectedCommunicationLink(source,target) | ||
1251 | */ | ||
1252 | private pattern mayInRelationsource_reference_DirectedCommunicationLink( | ||
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 mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,source); | ||
1262 | find mayInstanceOfCommSubsystem_class(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 mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,source,_); | ||
1266 | check(numberOfExistingReferences < 1); | ||
1267 | } or { | ||
1268 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,source,target); | ||
1269 | } | ||
1270 | /** | ||
1271 | * Matcher for detecting tuples t where []target reference DirectedCommunicationLink(source,target) | ||
1272 | */ | ||
1273 | private pattern mustInRelationtarget_reference_DirectedCommunicationLink( | ||
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,"target reference DirectedCommunicationLink"); | ||
1280 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1281 | BinaryElementRelationLink.param1(link,source); | ||
1282 | BinaryElementRelationLink.param2(link,target); | ||
1283 | } | ||
1284 | /** | ||
1285 | * Matcher for detecting tuples t where <>target reference DirectedCommunicationLink(source,target) | ||
1286 | */ | ||
1287 | private pattern mayInRelationtarget_reference_DirectedCommunicationLink( | ||
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 mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,source); | ||
1297 | find mayInstanceOfCommSubsystem_class(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 mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,source,_); | ||
1301 | check(numberOfExistingReferences < 1); | ||
1302 | } or { | ||
1303 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,source,target); | ||
1304 | } | ||
1305 | /** | ||
1306 | * Matcher for detecting tuples t where []kind attribute Spacecraft(source,target) | ||
1307 | */ | ||
1308 | private pattern mustInRelationkind_attribute_Spacecraft( | ||
1309 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1310 | source: DefinedElement, target:DefinedElement) | ||
1311 | { | ||
1312 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(problem,interpretation,source,target); | ||
1313 | } | ||
1314 | /** | ||
1315 | * Matcher for detecting tuples t where []kind attribute Spacecraft(source,target) | ||
1316 | */ | ||
1317 | private pattern mayInRelationkind_attribute_Spacecraft( | ||
1318 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1319 | source: DefinedElement, target:DefinedElement) | ||
1320 | { | ||
1321 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind(problem,interpretation,source,target); | ||
1322 | } | ||
1323 | /** | ||
1324 | * Matcher for detecting tuples t where []band attribute CommSubsystem(source,target) | ||
1325 | */ | ||
1326 | private pattern mustInRelationband_attribute_CommSubsystem( | ||
1327 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1328 | source: DefinedElement, target:DefinedElement) | ||
1329 | { | ||
1330 | find interpretation(problem,interpretation); | ||
1331 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1332 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"band attribute CommSubsystem"); | ||
1333 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1334 | BinaryElementRelationLink.param1(link,source); | ||
1335 | BinaryElementRelationLink.param2(link,target); | ||
1336 | } | ||
1337 | /** | ||
1338 | * Matcher for detecting tuples t where <>band attribute CommSubsystem(source,target) | ||
1339 | */ | ||
1340 | private pattern mayInRelationband_attribute_CommSubsystem( | ||
1341 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1342 | source: DefinedElement, target:DefinedElement) | ||
1343 | { | ||
1344 | find interpretation(problem,interpretation); | ||
1345 | // The two endpoint of the link have to exist | ||
1346 | find mayExist(problem, interpretation, source); | ||
1347 | find mayExist(problem, interpretation, target); | ||
1348 | // Type consistency | ||
1349 | find mayInstanceOfCommSubsystem_class(problem,interpretation,source); | ||
1350 | find mayInstanceOfTransceiverBand_enum(problem,interpretation,target); | ||
1351 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1352 | // the upper bound of the multiplicity should be considered. | ||
1353 | numberOfExistingReferences == count find mustInRelationband_attribute_CommSubsystem(problem,interpretation,source,_); | ||
1354 | check(numberOfExistingReferences < 1); | ||
1355 | } or { | ||
1356 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,source,target); | ||
1357 | } | ||
1358 | /** | ||
1359 | * Matcher for detecting tuples t where []gain attribute CommSubsystem(source,target) | ||
1360 | */ | ||
1361 | private pattern mustInRelationgain_attribute_CommSubsystem( | ||
1362 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1363 | source: DefinedElement, target:DefinedElement) | ||
1364 | { | ||
1365 | find interpretation(problem,interpretation); | ||
1366 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
1367 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"gain attribute CommSubsystem"); | ||
1368 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
1369 | BinaryElementRelationLink.param1(link,source); | ||
1370 | BinaryElementRelationLink.param2(link,target); | ||
1371 | } | ||
1372 | /** | ||
1373 | * Matcher for detecting tuples t where <>gain attribute CommSubsystem(source,target) | ||
1374 | */ | ||
1375 | private pattern mayInRelationgain_attribute_CommSubsystem( | ||
1376 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1377 | source: DefinedElement, target:DefinedElement) | ||
1378 | { | ||
1379 | find interpretation(problem,interpretation); | ||
1380 | // The two endpoint of the link have to exist | ||
1381 | find mayExist(problem, interpretation, source); | ||
1382 | find mayExist(problem, interpretation, target); | ||
1383 | // Type consistency | ||
1384 | find mayInstanceOfCommSubsystem_class(problem,interpretation,source); | ||
1385 | find mayInstanceOfAntennaGain_enum(problem,interpretation,target); | ||
1386 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
1387 | // the upper bound of the multiplicity should be considered. | ||
1388 | numberOfExistingReferences == count find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,source,_); | ||
1389 | check(numberOfExistingReferences < 1); | ||
1390 | } or { | ||
1391 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,source,target); | ||
1392 | } | ||
1393 | |||
1394 | ////////// | ||
1395 | // 1.3 Relation Definition Indexers | ||
1396 | ////////// | ||
1397 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement | ||
1398 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( | ||
1399 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1400 | var_Link) | ||
1401 | { | ||
1402 | find interpretation(problem,interpretation); | ||
1403 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
1404 | // Link is exported | ||
1405 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); | ||
1406 | find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); | ||
1407 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0); | ||
1408 | find mustEquivalent(problem, interpretation, var_virtual0, var_Link); | ||
1409 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
1410 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
1411 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
1412 | find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm); | ||
1413 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement); | ||
1414 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2); | ||
1415 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
1416 | find mustEquivalent(problem, interpretation, var_virtual2, var_SourceComm); | ||
1417 | neg find mayEquivalent(problem, interpretation, var_Element, var_SourceElement); | ||
1418 | } | ||
1419 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( | ||
1420 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1421 | var_Link) | ||
1422 | { | ||
1423 | find interpretation(problem,interpretation); | ||
1424 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
1425 | // Link is exported | ||
1426 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); | ||
1427 | find mayInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); | ||
1428 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0); | ||
1429 | find mayEquivalent(problem, interpretation, var_virtual0, var_Link); | ||
1430 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
1431 | find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
1432 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
1433 | find mayEquivalent(problem, interpretation, var_virtual1, var_SourceComm); | ||
1434 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement); | ||
1435 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2); | ||
1436 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
1437 | find mayEquivalent(problem, interpretation, var_virtual2, var_SourceComm); | ||
1438 | neg find mustEquivalent(problem, interpretation, var_Element, var_SourceElement); | ||
1439 | } | ||
1440 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( | ||
1441 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1442 | var_Link) | ||
1443 | { | ||
1444 | find interpretation(problem,interpretation); | ||
1445 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
1446 | // Link is exported | ||
1447 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); | ||
1448 | find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); | ||
1449 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_virtual0); | ||
1450 | find mustEquivalent(problem, interpretation, var_virtual0, var_Link); | ||
1451 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
1452 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
1453 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
1454 | find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm); | ||
1455 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_SourceElement); | ||
1456 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_SourceElement,var_virtual2); | ||
1457 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
1458 | find mustEquivalent(problem, interpretation, var_virtual2, var_SourceComm); | ||
1459 | neg find mustEquivalent(problem, interpretation, var_Element, var_SourceElement); | ||
1460 | } | ||
1461 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads | ||
1462 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( | ||
1463 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1464 | var_Mission) | ||
1465 | { | ||
1466 | find interpretation(problem,interpretation); | ||
1467 | find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1468 | // Mission is exported | ||
1469 | find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1470 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission); | ||
1471 | } | ||
1472 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( | ||
1473 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1474 | var_Mission) | ||
1475 | { | ||
1476 | find interpretation(problem,interpretation); | ||
1477 | find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1478 | // Mission is exported | ||
1479 | find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1480 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission); | ||
1481 | } | ||
1482 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( | ||
1483 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1484 | var_Mission) | ||
1485 | { | ||
1486 | find interpretation(problem,interpretation); | ||
1487 | find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1488 | // Mission is exported | ||
1489 | find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1490 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission); | ||
1491 | } | ||
1492 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads | ||
1493 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( | ||
1494 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1495 | var_Mission) | ||
1496 | { | ||
1497 | find interpretation(problem,interpretation); | ||
1498 | find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1499 | // Mission is exported | ||
1500 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); | ||
1501 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); | ||
1502 | neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2); | ||
1503 | } | ||
1504 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( | ||
1505 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1506 | var_Mission) | ||
1507 | { | ||
1508 | find interpretation(problem,interpretation); | ||
1509 | find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1510 | // Mission is exported | ||
1511 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); | ||
1512 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); | ||
1513 | neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2); | ||
1514 | } | ||
1515 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( | ||
1516 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1517 | var_Mission) | ||
1518 | { | ||
1519 | find interpretation(problem,interpretation); | ||
1520 | find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); | ||
1521 | // Mission is exported | ||
1522 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); | ||
1523 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); | ||
1524 | neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2); | ||
1525 | } | ||
1526 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload | ||
1527 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( | ||
1528 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1529 | var_Mission, var_Spacecraft) | ||
1530 | { | ||
1531 | find interpretation(problem,interpretation); | ||
1532 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1533 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1534 | // Mission is exported | ||
1535 | // Spacecraft is exported | ||
1536 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1537 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1538 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); | ||
1539 | find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft); | ||
1540 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1541 | find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); | ||
1542 | find mustInstanceOfPayload_class(problem,interpretation,var_virtual1); | ||
1543 | find mustEquivalent(problem, interpretation, var_virtual1, var_Payload); | ||
1544 | find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); | ||
1545 | } | ||
1546 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( | ||
1547 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1548 | var_Mission, var_Spacecraft) | ||
1549 | { | ||
1550 | find interpretation(problem,interpretation); | ||
1551 | find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1552 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1553 | // Mission is exported | ||
1554 | // Spacecraft is exported | ||
1555 | find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1556 | find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1557 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); | ||
1558 | find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft); | ||
1559 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1560 | find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); | ||
1561 | find mayInstanceOfPayload_class(problem,interpretation,var_virtual1); | ||
1562 | find mayEquivalent(problem, interpretation, var_virtual1, var_Payload); | ||
1563 | find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); | ||
1564 | } | ||
1565 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( | ||
1566 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1567 | var_Mission, var_Spacecraft) | ||
1568 | { | ||
1569 | find interpretation(problem,interpretation); | ||
1570 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1571 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1572 | // Mission is exported | ||
1573 | // Spacecraft is exported | ||
1574 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1575 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1576 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); | ||
1577 | find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft); | ||
1578 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1579 | find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); | ||
1580 | find mustInstanceOfPayload_class(problem,interpretation,var_virtual1); | ||
1581 | find mustEquivalent(problem, interpretation, var_virtual1, var_Payload); | ||
1582 | find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); | ||
1583 | } | ||
1584 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation | ||
1585 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( | ||
1586 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1587 | var_Spacecraft) | ||
1588 | { | ||
1589 | find interpretation(problem,interpretation); | ||
1590 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1591 | // Spacecraft is exported | ||
1592 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1593 | find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1594 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); | ||
1595 | find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); | ||
1596 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1597 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); | ||
1598 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); | ||
1599 | find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); | ||
1600 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); | ||
1601 | } | ||
1602 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( | ||
1603 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1604 | var_Spacecraft) | ||
1605 | { | ||
1606 | find interpretation(problem,interpretation); | ||
1607 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1608 | // Spacecraft is exported | ||
1609 | find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1610 | find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1611 | find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); | ||
1612 | find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation); | ||
1613 | find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1614 | find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); | ||
1615 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); | ||
1616 | find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); | ||
1617 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); | ||
1618 | } | ||
1619 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( | ||
1620 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1621 | var_Spacecraft) | ||
1622 | { | ||
1623 | find interpretation(problem,interpretation); | ||
1624 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1625 | // Spacecraft is exported | ||
1626 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1627 | find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1628 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); | ||
1629 | find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); | ||
1630 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1631 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); | ||
1632 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); | ||
1633 | find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); | ||
1634 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); | ||
1635 | } | ||
1636 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation | ||
1637 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation( | ||
1638 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1639 | var_Spacecraft) | ||
1640 | { | ||
1641 | find interpretation(problem,interpretation); | ||
1642 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1643 | // Spacecraft is exported | ||
1644 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1645 | find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1646 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); | ||
1647 | find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); | ||
1648 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1649 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); | ||
1650 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); | ||
1651 | find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); | ||
1652 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation); | ||
1653 | } | ||
1654 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation( | ||
1655 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1656 | var_Spacecraft) | ||
1657 | { | ||
1658 | find interpretation(problem,interpretation); | ||
1659 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1660 | // Spacecraft is exported | ||
1661 | find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1662 | find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1663 | find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); | ||
1664 | find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation); | ||
1665 | find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1666 | find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); | ||
1667 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); | ||
1668 | find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); | ||
1669 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation); | ||
1670 | } | ||
1671 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation( | ||
1672 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1673 | var_Spacecraft) | ||
1674 | { | ||
1675 | find interpretation(problem,interpretation); | ||
1676 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
1677 | // Spacecraft is exported | ||
1678 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1679 | find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); | ||
1680 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); | ||
1681 | find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); | ||
1682 | find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); | ||
1683 | find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); | ||
1684 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); | ||
1685 | find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); | ||
1686 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation); | ||
1687 | } | ||
1688 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed | ||
1689 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed( | ||
1690 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1691 | var_From, var_To) | ||
1692 | { | ||
1693 | find interpretation(problem,interpretation); | ||
1694 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1695 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1696 | // From is exported | ||
1697 | // To is exported | ||
1698 | find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To); | ||
1699 | } | ||
1700 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed( | ||
1701 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1702 | var_From, var_To) | ||
1703 | { | ||
1704 | find interpretation(problem,interpretation); | ||
1705 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1706 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1707 | // From is exported | ||
1708 | // To is exported | ||
1709 | find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To); | ||
1710 | } | ||
1711 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed( | ||
1712 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1713 | var_From, var_To) | ||
1714 | { | ||
1715 | find interpretation(problem,interpretation); | ||
1716 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1717 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1718 | // From is exported | ||
1719 | // To is exported | ||
1720 | find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To); | ||
1721 | } | ||
1722 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed | ||
1723 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed( | ||
1724 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1725 | var_From, var_To) | ||
1726 | { | ||
1727 | find interpretation(problem,interpretation); | ||
1728 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1729 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1730 | // From is exported | ||
1731 | // To is exported | ||
1732 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0); | ||
1733 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From); | ||
1734 | }or{ | ||
1735 | find interpretation(problem,interpretation); | ||
1736 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1737 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1738 | // From is exported | ||
1739 | // To is exported | ||
1740 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
1741 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,var_virtual0); | ||
1742 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); | ||
1743 | }or{ | ||
1744 | find interpretation(problem,interpretation); | ||
1745 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1746 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1747 | // From is exported | ||
1748 | // To is exported | ||
1749 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0); | ||
1750 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); | ||
1751 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To); | ||
1752 | } | ||
1753 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed( | ||
1754 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1755 | var_From, var_To) | ||
1756 | { | ||
1757 | find interpretation(problem,interpretation); | ||
1758 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1759 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1760 | // From is exported | ||
1761 | // To is exported | ||
1762 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0); | ||
1763 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From); | ||
1764 | }or{ | ||
1765 | find interpretation(problem,interpretation); | ||
1766 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1767 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1768 | // From is exported | ||
1769 | // To is exported | ||
1770 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
1771 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,var_virtual0); | ||
1772 | find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From); | ||
1773 | }or{ | ||
1774 | find interpretation(problem,interpretation); | ||
1775 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1776 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1777 | // From is exported | ||
1778 | // To is exported | ||
1779 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0); | ||
1780 | find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From); | ||
1781 | find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To); | ||
1782 | } | ||
1783 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed( | ||
1784 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1785 | var_From, var_To) | ||
1786 | { | ||
1787 | find interpretation(problem,interpretation); | ||
1788 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1789 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1790 | // From is exported | ||
1791 | // To is exported | ||
1792 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0); | ||
1793 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From); | ||
1794 | }or{ | ||
1795 | find interpretation(problem,interpretation); | ||
1796 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1797 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1798 | // From is exported | ||
1799 | // To is exported | ||
1800 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
1801 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,var_virtual0); | ||
1802 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); | ||
1803 | }or{ | ||
1804 | find interpretation(problem,interpretation); | ||
1805 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1806 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1807 | // From is exported | ||
1808 | // To is exported | ||
1809 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To,_var__0); | ||
1810 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); | ||
1811 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To); | ||
1812 | } | ||
1813 | private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) { | ||
1814 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To); | ||
1815 | } | ||
1816 | private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) { | ||
1817 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To); | ||
1818 | } | ||
1819 | private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) { | ||
1820 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To); | ||
1821 | } | ||
1822 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna | ||
1823 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna( | ||
1824 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1825 | var_From, var_To, var_Band) | ||
1826 | { | ||
1827 | find interpretation(problem,interpretation); | ||
1828 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1829 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1830 | // type constraint is enforced by construction | ||
1831 | // From is exported | ||
1832 | // To is exported | ||
1833 | // Band is exported | ||
1834 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From); | ||
1835 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0); | ||
1836 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
1837 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual0,var_virtual1); | ||
1838 | // type constraint is enforced by construction | ||
1839 | find mustEquivalent(problem, interpretation, var_virtual1, var_Band); | ||
1840 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1841 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual2); | ||
1842 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
1843 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual2,var_virtual3); | ||
1844 | // type constraint is enforced by construction | ||
1845 | find mustEquivalent(problem, interpretation, var_virtual3, var_Band); | ||
1846 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From); | ||
1847 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual4); | ||
1848 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual4); | ||
1849 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual4,var_virtual5); | ||
1850 | // type constraint is enforced by construction | ||
1851 | find mustEquivalent(problem, interpretation, var_virtual5, var_Gain); | ||
1852 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1853 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual6); | ||
1854 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual6); | ||
1855 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual6,var_virtual7); | ||
1856 | // type constraint is enforced by construction | ||
1857 | find mustEquivalent(problem, interpretation, var_virtual7, var_Gain); | ||
1858 | } | ||
1859 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna( | ||
1860 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1861 | var_From, var_To, var_Band) | ||
1862 | { | ||
1863 | find interpretation(problem,interpretation); | ||
1864 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1865 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1866 | // type constraint is enforced by construction | ||
1867 | // From is exported | ||
1868 | // To is exported | ||
1869 | // Band is exported | ||
1870 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From); | ||
1871 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0); | ||
1872 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
1873 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual0,var_virtual1); | ||
1874 | // type constraint is enforced by construction | ||
1875 | find mayEquivalent(problem, interpretation, var_virtual1, var_Band); | ||
1876 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1877 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual2); | ||
1878 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
1879 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual2,var_virtual3); | ||
1880 | // type constraint is enforced by construction | ||
1881 | find mayEquivalent(problem, interpretation, var_virtual3, var_Band); | ||
1882 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From); | ||
1883 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual4); | ||
1884 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual4); | ||
1885 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual4,var_virtual5); | ||
1886 | // type constraint is enforced by construction | ||
1887 | find mayEquivalent(problem, interpretation, var_virtual5, var_Gain); | ||
1888 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1889 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual6); | ||
1890 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual6); | ||
1891 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual6,var_virtual7); | ||
1892 | // type constraint is enforced by construction | ||
1893 | find mayEquivalent(problem, interpretation, var_virtual7, var_Gain); | ||
1894 | } | ||
1895 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna( | ||
1896 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1897 | var_From, var_To, var_Band) | ||
1898 | { | ||
1899 | find interpretation(problem,interpretation); | ||
1900 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); | ||
1901 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1902 | // type constraint is enforced by construction | ||
1903 | // From is exported | ||
1904 | // To is exported | ||
1905 | // Band is exported | ||
1906 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From); | ||
1907 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0); | ||
1908 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
1909 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual0,var_virtual1); | ||
1910 | // type constraint is enforced by construction | ||
1911 | find mustEquivalent(problem, interpretation, var_virtual1, var_Band); | ||
1912 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1913 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual2); | ||
1914 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
1915 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual2,var_virtual3); | ||
1916 | // type constraint is enforced by construction | ||
1917 | find mustEquivalent(problem, interpretation, var_virtual3, var_Band); | ||
1918 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From); | ||
1919 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual4); | ||
1920 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual4); | ||
1921 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual4,var_virtual5); | ||
1922 | // type constraint is enforced by construction | ||
1923 | find mustEquivalent(problem, interpretation, var_virtual5, var_Gain); | ||
1924 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); | ||
1925 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual6); | ||
1926 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual6); | ||
1927 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_virtual6,var_virtual7); | ||
1928 | // type constraint is enforced by construction | ||
1929 | find mustEquivalent(problem, interpretation, var_virtual7, var_Gain); | ||
1930 | } | ||
1931 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U | ||
1932 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U( | ||
1933 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1934 | var_Sat) | ||
1935 | { | ||
1936 | find interpretation(problem,interpretation); | ||
1937 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
1938 | // Sat is exported | ||
1939 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
1940 | } | ||
1941 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U( | ||
1942 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1943 | var_Sat) | ||
1944 | { | ||
1945 | find interpretation(problem,interpretation); | ||
1946 | find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
1947 | // Sat is exported | ||
1948 | find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
1949 | } | ||
1950 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U( | ||
1951 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1952 | var_Sat) | ||
1953 | { | ||
1954 | find interpretation(problem,interpretation); | ||
1955 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
1956 | // Sat is exported | ||
1957 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
1958 | } | ||
1959 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop | ||
1960 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( | ||
1961 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1962 | var_Element) | ||
1963 | { | ||
1964 | find interpretation(problem,interpretation); | ||
1965 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); | ||
1966 | // Element is exported | ||
1967 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element); | ||
1968 | } | ||
1969 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( | ||
1970 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1971 | var_Element) | ||
1972 | { | ||
1973 | find interpretation(problem,interpretation); | ||
1974 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); | ||
1975 | // Element is exported | ||
1976 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element); | ||
1977 | } | ||
1978 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( | ||
1979 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1980 | var_Element) | ||
1981 | { | ||
1982 | find interpretation(problem,interpretation); | ||
1983 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); | ||
1984 | // Element is exported | ||
1985 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element); | ||
1986 | } | ||
1987 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink | ||
1988 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink( | ||
1989 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
1990 | var_Source, var_Target) | ||
1991 | { | ||
1992 | find interpretation(problem,interpretation); | ||
1993 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
1994 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
1995 | // Source is exported | ||
1996 | // Target is exported | ||
1997 | find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target); | ||
1998 | } | ||
1999 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink( | ||
2000 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2001 | var_Source, var_Target) | ||
2002 | { | ||
2003 | find interpretation(problem,interpretation); | ||
2004 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2005 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2006 | // Source is exported | ||
2007 | // Target is exported | ||
2008 | find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target); | ||
2009 | } | ||
2010 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink( | ||
2011 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2012 | var_Source, var_Target) | ||
2013 | { | ||
2014 | find interpretation(problem,interpretation); | ||
2015 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2016 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2017 | // Source is exported | ||
2018 | // Target is exported | ||
2019 | find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target); | ||
2020 | } | ||
2021 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink | ||
2022 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( | ||
2023 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2024 | var_Source, var_Target) | ||
2025 | { | ||
2026 | find interpretation(problem,interpretation); | ||
2027 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2028 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2029 | // Source is exported | ||
2030 | // Target is exported | ||
2031 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2032 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2033 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2034 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2035 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2036 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2037 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2038 | find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2039 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2040 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2); | ||
2041 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
2042 | find mustEquivalent(problem, interpretation, var_virtual2, var_SourceSubsystem); | ||
2043 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2044 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); | ||
2045 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); | ||
2046 | find mustEquivalent(problem, interpretation, var_virtual3, var_TargetSubsystem); | ||
2047 | } | ||
2048 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( | ||
2049 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2050 | var_Source, var_Target) | ||
2051 | { | ||
2052 | find interpretation(problem,interpretation); | ||
2053 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2054 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2055 | // Source is exported | ||
2056 | // Target is exported | ||
2057 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2058 | find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2059 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2060 | find mayEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2061 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2062 | find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2063 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2064 | find mayEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2065 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2066 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2); | ||
2067 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
2068 | find mayEquivalent(problem, interpretation, var_virtual2, var_SourceSubsystem); | ||
2069 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2070 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); | ||
2071 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); | ||
2072 | find mayEquivalent(problem, interpretation, var_virtual3, var_TargetSubsystem); | ||
2073 | } | ||
2074 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( | ||
2075 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2076 | var_Source, var_Target) | ||
2077 | { | ||
2078 | find interpretation(problem,interpretation); | ||
2079 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2080 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2081 | // Source is exported | ||
2082 | // Target is exported | ||
2083 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2084 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2085 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2086 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2087 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2088 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2089 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2090 | find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2091 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); | ||
2092 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual2); | ||
2093 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
2094 | find mustEquivalent(problem, interpretation, var_virtual2, var_SourceSubsystem); | ||
2095 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2096 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); | ||
2097 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); | ||
2098 | find mustEquivalent(problem, interpretation, var_virtual3, var_TargetSubsystem); | ||
2099 | } | ||
2100 | private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { | ||
2101 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); | ||
2102 | } | ||
2103 | private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { | ||
2104 | find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); | ||
2105 | } | ||
2106 | private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { | ||
2107 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); | ||
2108 | } | ||
2109 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand | ||
2110 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( | ||
2111 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2112 | var_Link) | ||
2113 | { | ||
2114 | find interpretation(problem,interpretation); | ||
2115 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2116 | // Link is exported | ||
2117 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2118 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2119 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2120 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2121 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2122 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2123 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2124 | find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2125 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); | ||
2126 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); | ||
2127 | // type constraint is enforced by construction | ||
2128 | find mustEquivalent(problem, interpretation, var_virtual2, var_Band); | ||
2129 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band); | ||
2130 | } | ||
2131 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( | ||
2132 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2133 | var_Link) | ||
2134 | { | ||
2135 | find interpretation(problem,interpretation); | ||
2136 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2137 | // Link is exported | ||
2138 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2139 | find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2140 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2141 | find mayEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2142 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2143 | find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2144 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2145 | find mayEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2146 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); | ||
2147 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); | ||
2148 | // type constraint is enforced by construction | ||
2149 | find mayEquivalent(problem, interpretation, var_virtual2, var_Band); | ||
2150 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band); | ||
2151 | } | ||
2152 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( | ||
2153 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2154 | var_Link) | ||
2155 | { | ||
2156 | find interpretation(problem,interpretation); | ||
2157 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2158 | // Link is exported | ||
2159 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2160 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2161 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2162 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2163 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2164 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2165 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2166 | find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2167 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); | ||
2168 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); | ||
2169 | // type constraint is enforced by construction | ||
2170 | find mustEquivalent(problem, interpretation, var_virtual2, var_Band); | ||
2171 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand(problem,interpretation,var_TargetSubsystem,var_Band); | ||
2172 | } | ||
2173 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand | ||
2174 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand( | ||
2175 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2176 | var_Comm, var_Band) | ||
2177 | { | ||
2178 | find interpretation(problem,interpretation); | ||
2179 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2180 | // type constraint is enforced by construction | ||
2181 | // Comm is exported | ||
2182 | // Band is exported | ||
2183 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2184 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); | ||
2185 | // type constraint is enforced by construction | ||
2186 | find mustEquivalent(problem, interpretation, var_virtual0, var_Band); | ||
2187 | } | ||
2188 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand( | ||
2189 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2190 | var_Comm, var_Band) | ||
2191 | { | ||
2192 | find interpretation(problem,interpretation); | ||
2193 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2194 | // type constraint is enforced by construction | ||
2195 | // Comm is exported | ||
2196 | // Band is exported | ||
2197 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2198 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); | ||
2199 | // type constraint is enforced by construction | ||
2200 | find mayEquivalent(problem, interpretation, var_virtual0, var_Band); | ||
2201 | } | ||
2202 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBand( | ||
2203 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2204 | var_Comm, var_Band) | ||
2205 | { | ||
2206 | find interpretation(problem,interpretation); | ||
2207 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2208 | // type constraint is enforced by construction | ||
2209 | // Comm is exported | ||
2210 | // Band is exported | ||
2211 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2212 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); | ||
2213 | // type constraint is enforced by construction | ||
2214 | find mustEquivalent(problem, interpretation, var_virtual0, var_Band); | ||
2215 | } | ||
2216 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain | ||
2217 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain( | ||
2218 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2219 | var_Link) | ||
2220 | { | ||
2221 | find interpretation(problem,interpretation); | ||
2222 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2223 | // Link is exported | ||
2224 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2225 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2226 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2227 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2228 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2229 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2230 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2231 | find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2232 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); | ||
2233 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); | ||
2234 | // type constraint is enforced by construction | ||
2235 | find mustEquivalent(problem, interpretation, var_virtual2, var_Gain); | ||
2236 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain); | ||
2237 | } | ||
2238 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain( | ||
2239 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2240 | var_Link) | ||
2241 | { | ||
2242 | find interpretation(problem,interpretation); | ||
2243 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2244 | // Link is exported | ||
2245 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2246 | find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2247 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2248 | find mayEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2249 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2250 | find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2251 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2252 | find mayEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2253 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); | ||
2254 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); | ||
2255 | // type constraint is enforced by construction | ||
2256 | find mayEquivalent(problem, interpretation, var_virtual2, var_Gain); | ||
2257 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain); | ||
2258 | } | ||
2259 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain( | ||
2260 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2261 | var_Link) | ||
2262 | { | ||
2263 | find interpretation(problem,interpretation); | ||
2264 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2265 | // Link is exported | ||
2266 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2267 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual0); | ||
2268 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2269 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceSubsystem); | ||
2270 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2271 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2272 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2273 | find mustEquivalent(problem, interpretation, var_virtual1, var_TargetSubsystem); | ||
2274 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); | ||
2275 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual2); | ||
2276 | // type constraint is enforced by construction | ||
2277 | find mustEquivalent(problem, interpretation, var_virtual2, var_Gain); | ||
2278 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain(problem,interpretation,var_TargetSubsystem,var_Gain); | ||
2279 | } | ||
2280 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain | ||
2281 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain( | ||
2282 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2283 | var_Comm, var_Gain) | ||
2284 | { | ||
2285 | find interpretation(problem,interpretation); | ||
2286 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2287 | // type constraint is enforced by construction | ||
2288 | // Comm is exported | ||
2289 | // Gain is exported | ||
2290 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2291 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); | ||
2292 | // type constraint is enforced by construction | ||
2293 | find mustEquivalent(problem, interpretation, var_virtual0, var_Gain); | ||
2294 | } | ||
2295 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain( | ||
2296 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2297 | var_Comm, var_Gain) | ||
2298 | { | ||
2299 | find interpretation(problem,interpretation); | ||
2300 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2301 | // type constraint is enforced by construction | ||
2302 | // Comm is exported | ||
2303 | // Gain is exported | ||
2304 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2305 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); | ||
2306 | // type constraint is enforced by construction | ||
2307 | find mayEquivalent(problem, interpretation, var_virtual0, var_Gain); | ||
2308 | } | ||
2309 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGain( | ||
2310 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2311 | var_Comm, var_Gain) | ||
2312 | { | ||
2313 | find interpretation(problem,interpretation); | ||
2314 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2315 | // type constraint is enforced by construction | ||
2316 | // Comm is exported | ||
2317 | // Gain is exported | ||
2318 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2319 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual0); | ||
2320 | // type constraint is enforced by construction | ||
2321 | find mustEquivalent(problem, interpretation, var_virtual0, var_Gain); | ||
2322 | } | ||
2323 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow | ||
2324 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow( | ||
2325 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2326 | var_Comm) | ||
2327 | { | ||
2328 | find interpretation(problem,interpretation); | ||
2329 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2330 | // Comm is exported | ||
2331 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
2332 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2333 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2334 | // type constraint is enforced by construction | ||
2335 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2336 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm); | ||
2337 | } | ||
2338 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow( | ||
2339 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2340 | var_Comm) | ||
2341 | { | ||
2342 | find interpretation(problem,interpretation); | ||
2343 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2344 | // Comm is exported | ||
2345 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
2346 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2347 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2348 | // type constraint is enforced by construction | ||
2349 | find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2350 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm); | ||
2351 | } | ||
2352 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow( | ||
2353 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2354 | var_Comm) | ||
2355 | { | ||
2356 | find interpretation(problem,interpretation); | ||
2357 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2358 | // Comm is exported | ||
2359 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
2360 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2361 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2362 | // type constraint is enforced by construction | ||
2363 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2364 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow(problem,interpretation,var_Comm); | ||
2365 | } | ||
2366 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow | ||
2367 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow( | ||
2368 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2369 | var_Comm) | ||
2370 | { | ||
2371 | find interpretation(problem,interpretation); | ||
2372 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2373 | // Comm is exported | ||
2374 | var_virtual0 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); | ||
2375 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2376 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2377 | // type constraint is enforced by construction | ||
2378 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2379 | } | ||
2380 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow( | ||
2381 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2382 | var_Comm) | ||
2383 | { | ||
2384 | find interpretation(problem,interpretation); | ||
2385 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2386 | // Comm is exported | ||
2387 | var_virtual0 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); | ||
2388 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2389 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2390 | // type constraint is enforced by construction | ||
2391 | find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2392 | } | ||
2393 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainLow( | ||
2394 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2395 | var_Comm) | ||
2396 | { | ||
2397 | find interpretation(problem,interpretation); | ||
2398 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2399 | // Comm is exported | ||
2400 | var_virtual0 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); | ||
2401 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2402 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2403 | // type constraint is enforced by construction | ||
2404 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2405 | } | ||
2406 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium | ||
2407 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium( | ||
2408 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2409 | var_Comm) | ||
2410 | { | ||
2411 | find interpretation(problem,interpretation); | ||
2412 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2413 | // Comm is exported | ||
2414 | var_virtual0 == const_X_TransceiverBand;DefinedElement.name(const_X_TransceiverBand,"X TransceiverBand"); //LogicProblem.elements(problem,const_X_TransceiverBand); | ||
2415 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2416 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2417 | // type constraint is enforced by construction | ||
2418 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2419 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm); | ||
2420 | } | ||
2421 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium( | ||
2422 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2423 | var_Comm) | ||
2424 | { | ||
2425 | find interpretation(problem,interpretation); | ||
2426 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2427 | // Comm is exported | ||
2428 | var_virtual0 == const_X_TransceiverBand;DefinedElement.name(const_X_TransceiverBand,"X TransceiverBand"); //LogicProblem.elements(problem,const_X_TransceiverBand); | ||
2429 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2430 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2431 | // type constraint is enforced by construction | ||
2432 | find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2433 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm); | ||
2434 | } | ||
2435 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium( | ||
2436 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2437 | var_Comm) | ||
2438 | { | ||
2439 | find interpretation(problem,interpretation); | ||
2440 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2441 | // Comm is exported | ||
2442 | var_virtual0 == const_X_TransceiverBand;DefinedElement.name(const_X_TransceiverBand,"X TransceiverBand"); //LogicProblem.elements(problem,const_X_TransceiverBand); | ||
2443 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2444 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2445 | // type constraint is enforced by construction | ||
2446 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2447 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium(problem,interpretation,var_Comm); | ||
2448 | } | ||
2449 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium | ||
2450 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium( | ||
2451 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2452 | var_Comm) | ||
2453 | { | ||
2454 | find interpretation(problem,interpretation); | ||
2455 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2456 | // Comm is exported | ||
2457 | var_virtual0 == const_MEDIUM_AntennaGain;DefinedElement.name(const_MEDIUM_AntennaGain,"MEDIUM AntennaGain"); //LogicProblem.elements(problem,const_MEDIUM_AntennaGain); | ||
2458 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2459 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2460 | // type constraint is enforced by construction | ||
2461 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2462 | } | ||
2463 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium( | ||
2464 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2465 | var_Comm) | ||
2466 | { | ||
2467 | find interpretation(problem,interpretation); | ||
2468 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2469 | // Comm is exported | ||
2470 | var_virtual0 == const_MEDIUM_AntennaGain;DefinedElement.name(const_MEDIUM_AntennaGain,"MEDIUM AntennaGain"); //LogicProblem.elements(problem,const_MEDIUM_AntennaGain); | ||
2471 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2472 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2473 | // type constraint is enforced by construction | ||
2474 | find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2475 | } | ||
2476 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemGainMedium( | ||
2477 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2478 | var_Comm) | ||
2479 | { | ||
2480 | find interpretation(problem,interpretation); | ||
2481 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2482 | // Comm is exported | ||
2483 | var_virtual0 == const_MEDIUM_AntennaGain;DefinedElement.name(const_MEDIUM_AntennaGain,"MEDIUM AntennaGain"); //LogicProblem.elements(problem,const_MEDIUM_AntennaGain); | ||
2484 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2485 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2486 | // type constraint is enforced by construction | ||
2487 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2488 | } | ||
2489 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow | ||
2490 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow( | ||
2491 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2492 | var_Comm) | ||
2493 | { | ||
2494 | find interpretation(problem,interpretation); | ||
2495 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2496 | // Comm is exported | ||
2497 | var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand); | ||
2498 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2499 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2500 | // type constraint is enforced by construction | ||
2501 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2502 | var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); | ||
2503 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2504 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3); | ||
2505 | // type constraint is enforced by construction | ||
2506 | find mustEquivalent(problem, interpretation, var_virtual3, var_virtual2); | ||
2507 | } | ||
2508 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow( | ||
2509 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2510 | var_Comm) | ||
2511 | { | ||
2512 | find interpretation(problem,interpretation); | ||
2513 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2514 | // Comm is exported | ||
2515 | var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand); | ||
2516 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2517 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2518 | // type constraint is enforced by construction | ||
2519 | find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2520 | var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); | ||
2521 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2522 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3); | ||
2523 | // type constraint is enforced by construction | ||
2524 | find mayEquivalent(problem, interpretation, var_virtual3, var_virtual2); | ||
2525 | } | ||
2526 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow( | ||
2527 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2528 | var_Comm) | ||
2529 | { | ||
2530 | find interpretation(problem,interpretation); | ||
2531 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2532 | // Comm is exported | ||
2533 | var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand); | ||
2534 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2535 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2536 | // type constraint is enforced by construction | ||
2537 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2538 | var_virtual2 == const_LOW_AntennaGain;DefinedElement.name(const_LOW_AntennaGain,"LOW AntennaGain"); //LogicProblem.elements(problem,const_LOW_AntennaGain); | ||
2539 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2540 | find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual3); | ||
2541 | // type constraint is enforced by construction | ||
2542 | find mustEquivalent(problem, interpretation, var_virtual3, var_virtual2); | ||
2543 | } | ||
2544 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink | ||
2545 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( | ||
2546 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2547 | var_Sat) | ||
2548 | { | ||
2549 | find interpretation(problem,interpretation); | ||
2550 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
2551 | // Sat is exported | ||
2552 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); | ||
2553 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); | ||
2554 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2555 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm); | ||
2556 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); | ||
2557 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2558 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2559 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2560 | find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm); | ||
2561 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2562 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2); | ||
2563 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
2564 | find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm); | ||
2565 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2566 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); | ||
2567 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); | ||
2568 | find mustEquivalent(problem, interpretation, var_virtual3, var_TargetComm); | ||
2569 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); | ||
2570 | } | ||
2571 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( | ||
2572 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2573 | var_Sat) | ||
2574 | { | ||
2575 | find interpretation(problem,interpretation); | ||
2576 | find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
2577 | // Sat is exported | ||
2578 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); | ||
2579 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); | ||
2580 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2581 | find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm); | ||
2582 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); | ||
2583 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2584 | find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2585 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2586 | find mayEquivalent(problem, interpretation, var_virtual1, var_SourceComm); | ||
2587 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2588 | find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2); | ||
2589 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
2590 | find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm); | ||
2591 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2592 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); | ||
2593 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); | ||
2594 | find mayEquivalent(problem, interpretation, var_virtual3, var_TargetComm); | ||
2595 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); | ||
2596 | } | ||
2597 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( | ||
2598 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2599 | var_Sat) | ||
2600 | { | ||
2601 | find interpretation(problem,interpretation); | ||
2602 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); | ||
2603 | // Sat is exported | ||
2604 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); | ||
2605 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); | ||
2606 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); | ||
2607 | find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm); | ||
2608 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); | ||
2609 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2610 | find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual1); | ||
2611 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2612 | find mustEquivalent(problem, interpretation, var_virtual1, var_SourceComm); | ||
2613 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,var_Link); | ||
2614 | find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,var_Link,var_virtual2); | ||
2615 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); | ||
2616 | find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm); | ||
2617 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); | ||
2618 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual3); | ||
2619 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual3); | ||
2620 | find mustEquivalent(problem, interpretation, var_virtual3, var_TargetComm); | ||
2621 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); | ||
2622 | } | ||
2623 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf | ||
2624 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( | ||
2625 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2626 | var_Comm) | ||
2627 | { | ||
2628 | find interpretation(problem,interpretation); | ||
2629 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2630 | // Comm is exported | ||
2631 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
2632 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2633 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2634 | // type constraint is enforced by construction | ||
2635 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2636 | } | ||
2637 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( | ||
2638 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2639 | var_Comm) | ||
2640 | { | ||
2641 | find interpretation(problem,interpretation); | ||
2642 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2643 | // Comm is exported | ||
2644 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
2645 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2646 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2647 | // type constraint is enforced by construction | ||
2648 | find mayEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2649 | } | ||
2650 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( | ||
2651 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2652 | var_Comm) | ||
2653 | { | ||
2654 | find interpretation(problem,interpretation); | ||
2655 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2656 | // Comm is exported | ||
2657 | var_virtual0 == const_UHF_TransceiverBand;DefinedElement.name(const_UHF_TransceiverBand,"UHF TransceiverBand"); //LogicProblem.elements(problem,const_UHF_TransceiverBand); | ||
2658 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); | ||
2659 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); | ||
2660 | // type constraint is enforced by construction | ||
2661 | find mustEquivalent(problem, interpretation, var_virtual1, var_virtual0); | ||
2662 | } | ||
2663 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork | ||
2664 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( | ||
2665 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2666 | var_Network) | ||
2667 | { | ||
2668 | find interpretation(problem,interpretation); | ||
2669 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); | ||
2670 | // Network is exported | ||
2671 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); | ||
2672 | } | ||
2673 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( | ||
2674 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2675 | var_Network) | ||
2676 | { | ||
2677 | find interpretation(problem,interpretation); | ||
2678 | find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); | ||
2679 | // Network is exported | ||
2680 | find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); | ||
2681 | } | ||
2682 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( | ||
2683 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2684 | var_Network) | ||
2685 | { | ||
2686 | find interpretation(problem,interpretation); | ||
2687 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); | ||
2688 | // Network is exported | ||
2689 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); | ||
2690 | } | ||
2691 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna | ||
2692 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( | ||
2693 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2694 | var_Spacecraft) | ||
2695 | { | ||
2696 | find interpretation(problem,interpretation); | ||
2697 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2698 | // Spacecraft is exported | ||
2699 | var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand); | ||
2700 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft); | ||
2701 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual1); | ||
2702 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2703 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2); | ||
2704 | // type constraint is enforced by construction | ||
2705 | find mustEquivalent(problem, interpretation, var_virtual2, var_virtual0); | ||
2706 | neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); | ||
2707 | } | ||
2708 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( | ||
2709 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2710 | var_Spacecraft) | ||
2711 | { | ||
2712 | find interpretation(problem,interpretation); | ||
2713 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2714 | // Spacecraft is exported | ||
2715 | var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand); | ||
2716 | find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft); | ||
2717 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual1); | ||
2718 | find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2719 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2); | ||
2720 | // type constraint is enforced by construction | ||
2721 | find mayEquivalent(problem, interpretation, var_virtual2, var_virtual0); | ||
2722 | neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); | ||
2723 | } | ||
2724 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( | ||
2725 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2726 | var_Spacecraft) | ||
2727 | { | ||
2728 | find interpretation(problem,interpretation); | ||
2729 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2730 | // Spacecraft is exported | ||
2731 | var_virtual0 == const_Ka_TransceiverBand;DefinedElement.name(const_Ka_TransceiverBand,"Ka TransceiverBand"); //LogicProblem.elements(problem,const_Ka_TransceiverBand); | ||
2732 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft); | ||
2733 | find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual1); | ||
2734 | find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); | ||
2735 | find mustInRelationband_attribute_CommSubsystem(problem,interpretation,var_virtual1,var_virtual2); | ||
2736 | // type constraint is enforced by construction | ||
2737 | find mustEquivalent(problem, interpretation, var_virtual2, var_virtual0); | ||
2738 | neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); | ||
2739 | } | ||
2740 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat | ||
2741 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat( | ||
2742 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2743 | var_Sat) | ||
2744 | { | ||
2745 | find interpretation(problem,interpretation); | ||
2746 | find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); | ||
2747 | // Sat is exported | ||
2748 | find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); | ||
2749 | } | ||
2750 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat( | ||
2751 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2752 | var_Sat) | ||
2753 | { | ||
2754 | find interpretation(problem,interpretation); | ||
2755 | find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat); | ||
2756 | // Sat is exported | ||
2757 | find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat); | ||
2758 | } | ||
2759 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat( | ||
2760 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2761 | var_Sat) | ||
2762 | { | ||
2763 | find interpretation(problem,interpretation); | ||
2764 | find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); | ||
2765 | // Sat is exported | ||
2766 | find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); | ||
2767 | } | ||
2768 | // Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftOfKind | ||
2769 | private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind( | ||
2770 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2771 | var_Spacecraft, var_Kind) | ||
2772 | { | ||
2773 | find interpretation(problem,interpretation); | ||
2774 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2775 | // type constraint is enforced by construction | ||
2776 | // Spacecraft is exported | ||
2777 | // Kind is exported | ||
2778 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Spacecraft); | ||
2779 | var_virtual0 == const_CubeSat3U_SpacecraftKind;DefinedElement.name(const_CubeSat3U_SpacecraftKind,"CubeSat3U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat3U_SpacecraftKind); | ||
2780 | find mustEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2781 | }or{ | ||
2782 | find interpretation(problem,interpretation); | ||
2783 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2784 | // type constraint is enforced by construction | ||
2785 | // Spacecraft is exported | ||
2786 | // Kind is exported | ||
2787 | find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Spacecraft); | ||
2788 | var_virtual0 == const_CubeSat6U_SpacecraftKind;DefinedElement.name(const_CubeSat6U_SpacecraftKind,"CubeSat6U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat6U_SpacecraftKind); | ||
2789 | find mustEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2790 | }or{ | ||
2791 | find interpretation(problem,interpretation); | ||
2792 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2793 | // type constraint is enforced by construction | ||
2794 | // Spacecraft is exported | ||
2795 | // Kind is exported | ||
2796 | find mustInstanceOfSmallSat_class(problem,interpretation,var_Spacecraft); | ||
2797 | var_virtual0 == const_SmallSat_SpacecraftKind;DefinedElement.name(const_SmallSat_SpacecraftKind,"SmallSat SpacecraftKind"); //LogicProblem.elements(problem,const_SmallSat_SpacecraftKind); | ||
2798 | find mustEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2799 | } | ||
2800 | private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind( | ||
2801 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2802 | var_Spacecraft, var_Kind) | ||
2803 | { | ||
2804 | find interpretation(problem,interpretation); | ||
2805 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2806 | // type constraint is enforced by construction | ||
2807 | // Spacecraft is exported | ||
2808 | // Kind is exported | ||
2809 | find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Spacecraft); | ||
2810 | var_virtual0 == const_CubeSat3U_SpacecraftKind;DefinedElement.name(const_CubeSat3U_SpacecraftKind,"CubeSat3U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat3U_SpacecraftKind); | ||
2811 | find mayEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2812 | }or{ | ||
2813 | find interpretation(problem,interpretation); | ||
2814 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2815 | // type constraint is enforced by construction | ||
2816 | // Spacecraft is exported | ||
2817 | // Kind is exported | ||
2818 | find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Spacecraft); | ||
2819 | var_virtual0 == const_CubeSat6U_SpacecraftKind;DefinedElement.name(const_CubeSat6U_SpacecraftKind,"CubeSat6U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat6U_SpacecraftKind); | ||
2820 | find mayEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2821 | }or{ | ||
2822 | find interpretation(problem,interpretation); | ||
2823 | find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2824 | // type constraint is enforced by construction | ||
2825 | // Spacecraft is exported | ||
2826 | // Kind is exported | ||
2827 | find mayInstanceOfSmallSat_class(problem,interpretation,var_Spacecraft); | ||
2828 | var_virtual0 == const_SmallSat_SpacecraftKind;DefinedElement.name(const_SmallSat_SpacecraftKind,"SmallSat SpacecraftKind"); //LogicProblem.elements(problem,const_SmallSat_SpacecraftKind); | ||
2829 | find mayEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2830 | } | ||
2831 | private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftOfKind( | ||
2832 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
2833 | var_Spacecraft, var_Kind) | ||
2834 | { | ||
2835 | find interpretation(problem,interpretation); | ||
2836 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2837 | // type constraint is enforced by construction | ||
2838 | // Spacecraft is exported | ||
2839 | // Kind is exported | ||
2840 | find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Spacecraft); | ||
2841 | var_virtual0 == const_CubeSat3U_SpacecraftKind;DefinedElement.name(const_CubeSat3U_SpacecraftKind,"CubeSat3U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat3U_SpacecraftKind); | ||
2842 | find mustEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2843 | }or{ | ||
2844 | find interpretation(problem,interpretation); | ||
2845 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2846 | // type constraint is enforced by construction | ||
2847 | // Spacecraft is exported | ||
2848 | // Kind is exported | ||
2849 | find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Spacecraft); | ||
2850 | var_virtual0 == const_CubeSat6U_SpacecraftKind;DefinedElement.name(const_CubeSat6U_SpacecraftKind,"CubeSat6U SpacecraftKind"); //LogicProblem.elements(problem,const_CubeSat6U_SpacecraftKind); | ||
2851 | find mustEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2852 | }or{ | ||
2853 | find interpretation(problem,interpretation); | ||
2854 | find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); | ||
2855 | // type constraint is enforced by construction | ||
2856 | // Spacecraft is exported | ||
2857 | // Kind is exported | ||
2858 | find mustInstanceOfSmallSat_class(problem,interpretation,var_Spacecraft); | ||
2859 | var_virtual0 == const_SmallSat_SpacecraftKind;DefinedElement.name(const_SmallSat_SpacecraftKind,"SmallSat SpacecraftKind"); //LogicProblem.elements(problem,const_SmallSat_SpacecraftKind); | ||
2860 | find mustEquivalent(problem, interpretation, var_Kind, var_virtual0); | ||
2861 | } | ||
2862 | |||
2863 | ////////// | ||
2864 | // 1.4 Containment Indexer | ||
2865 | ////////// | ||
2866 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
2867 | find mustContains4(_,_,source,target); | ||
2868 | } | ||
2869 | |||
2870 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2871 | source: DefinedElement, target: DefinedElement) | ||
2872 | { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or | ||
2873 | |||
2874 | { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or | ||
2875 | |||
2876 | { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or | ||
2877 | |||
2878 | { find mustInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,source,target); }or | ||
2879 | |||
2880 | { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); } | ||
2881 | |||
2882 | private pattern mustTransitiveContains(source,target) { | ||
2883 | find mustContains2+(source,target); | ||
2884 | } | ||
2885 | |||
2886 | ////////// | ||
2887 | // 2. Invalidation Indexers | ||
2888 | ////////// | ||
2889 | // 2.1 Invalidated by WF Queries | ||
2890 | ////////// | ||
2891 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2892 | var_Link) | ||
2893 | { | ||
2894 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link); | ||
2895 | } | ||
2896 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2897 | var_Mission) | ||
2898 | { | ||
2899 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission); | ||
2900 | } | ||
2901 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2902 | var_Spacecraft) | ||
2903 | { | ||
2904 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft); | ||
2905 | } | ||
2906 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2907 | var_Spacecraft) | ||
2908 | { | ||
2909 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft); | ||
2910 | } | ||
2911 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2912 | var_Element) | ||
2913 | { | ||
2914 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element); | ||
2915 | } | ||
2916 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2917 | var_Link) | ||
2918 | { | ||
2919 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_Link); | ||
2920 | } | ||
2921 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2922 | var_Link) | ||
2923 | { | ||
2924 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem,interpretation,var_Link); | ||
2925 | } | ||
2926 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2927 | var_Comm) | ||
2928 | { | ||
2929 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem,interpretation,var_Comm); | ||
2930 | } | ||
2931 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2932 | var_Comm) | ||
2933 | { | ||
2934 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem,interpretation,var_Comm); | ||
2935 | } | ||
2936 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2937 | var_Comm) | ||
2938 | { | ||
2939 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem,interpretation,var_Comm); | ||
2940 | } | ||
2941 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2942 | var_Sat) | ||
2943 | { | ||
2944 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat); | ||
2945 | } | ||
2946 | pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation, | ||
2947 | var_Spacecraft) | ||
2948 | { | ||
2949 | find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft); | ||
2950 | } | ||
2951 | |||
2952 | ////////// | ||
2953 | // 3. Unfinishedness Indexers | ||
2954 | ////////// | ||
2955 | // 3.1 Unfinishedness Measured by Multiplicity | ||
2956 | ////////// | ||
2957 | pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
2958 | find interpretation(problem,interpretation); | ||
2959 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2960 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission"); | ||
2961 | find mustInstanceOfConstellationMission_class(problem,interpretation,object); | ||
2962 | numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_); | ||
2963 | check(numberOfExistingReferences < 1); | ||
2964 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
2965 | } | ||
2966 | pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
2967 | find interpretation(problem,interpretation); | ||
2968 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2969 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission"); | ||
2970 | find mustInstanceOfConstellationMission_class(problem,interpretation,object); | ||
2971 | numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_); | ||
2972 | check(numberOfExistingReferences < 2); | ||
2973 | missingMultiplicity == eval(2-numberOfExistingReferences); | ||
2974 | } | ||
2975 | pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
2976 | find interpretation(problem,interpretation); | ||
2977 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2978 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement"); | ||
2979 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,object); | ||
2980 | numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_); | ||
2981 | check(numberOfExistingReferences < 1); | ||
2982 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
2983 | } | ||
2984 | pattern unfinishedLowerMultiplicity_source_reference_DirectedCommunicationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
2985 | find interpretation(problem,interpretation); | ||
2986 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2987 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference DirectedCommunicationLink"); | ||
2988 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,object); | ||
2989 | numberOfExistingReferences == count find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,object,_); | ||
2990 | check(numberOfExistingReferences < 1); | ||
2991 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
2992 | } | ||
2993 | pattern unfinishedLowerMultiplicity_target_reference_DirectedCommunicationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
2994 | find interpretation(problem,interpretation); | ||
2995 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
2996 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference DirectedCommunicationLink"); | ||
2997 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,object); | ||
2998 | numberOfExistingReferences == count find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,object,_); | ||
2999 | check(numberOfExistingReferences < 1); | ||
3000 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
3001 | } | ||
3002 | pattern unfinishedLowerMultiplicity_band_attribute_CommSubsystem(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
3003 | find interpretation(problem,interpretation); | ||
3004 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3005 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"band attribute CommSubsystem"); | ||
3006 | find mustInstanceOfCommSubsystem_class(problem,interpretation,object); | ||
3007 | numberOfExistingReferences == count find mustInRelationband_attribute_CommSubsystem(problem,interpretation,object,_); | ||
3008 | check(numberOfExistingReferences < 1); | ||
3009 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
3010 | } | ||
3011 | pattern unfinishedLowerMultiplicity_gain_attribute_CommSubsystem(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
3012 | find interpretation(problem,interpretation); | ||
3013 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3014 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"gain attribute CommSubsystem"); | ||
3015 | find mustInstanceOfCommSubsystem_class(problem,interpretation,object); | ||
3016 | numberOfExistingReferences == count find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,object,_); | ||
3017 | check(numberOfExistingReferences < 1); | ||
3018 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
3019 | } | ||
3020 | |||
3021 | ////////// | ||
3022 | // 3.2 Unfinishedness Measured by WF Queries | ||
3023 | ////////// | ||
3024 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3025 | var_Link) | ||
3026 | { | ||
3027 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Link); | ||
3028 | } | ||
3029 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3030 | var_Mission) | ||
3031 | { | ||
3032 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission); | ||
3033 | } | ||
3034 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3035 | var_Spacecraft) | ||
3036 | { | ||
3037 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft); | ||
3038 | } | ||
3039 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3040 | var_Spacecraft) | ||
3041 | { | ||
3042 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft); | ||
3043 | } | ||
3044 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3045 | var_Element) | ||
3046 | { | ||
3047 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element); | ||
3048 | } | ||
3049 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3050 | var_Link) | ||
3051 | { | ||
3052 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_Link); | ||
3053 | } | ||
3054 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3055 | var_Link) | ||
3056 | { | ||
3057 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetGain(problem,interpretation,var_Link); | ||
3058 | } | ||
3059 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3060 | var_Comm) | ||
3061 | { | ||
3062 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_uhfAntennaGainNotLow(problem,interpretation,var_Comm); | ||
3063 | } | ||
3064 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3065 | var_Comm) | ||
3066 | { | ||
3067 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_xAntennaGainNotMedium(problem,interpretation,var_Comm); | ||
3068 | } | ||
3069 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3070 | var_Comm) | ||
3071 | { | ||
3072 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_kaAntennaGainLow(problem,interpretation,var_Comm); | ||
3073 | } | ||
3074 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3075 | var_Sat) | ||
3076 | { | ||
3077 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat); | ||
3078 | } | ||
3079 | pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation, | ||
3080 | var_Spacecraft) | ||
3081 | { | ||
3082 | find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft); | ||
3083 | } | ||
3084 | |||
3085 | ////////// | ||
3086 | // 4. Refinement Indexers | ||
3087 | ////////// | ||
3088 | // 4.1 Object constructors | ||
3089 | ////////// | ||
3090 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
3091 | { | ||
3092 | find interpretation(problem,interpretation); | ||
3093 | find mustInstanceOfInterferometryPayload_class(problem,interpretation,root); | ||
3094 | find mustExist(problem, interpretation, root); | ||
3095 | }or{ | ||
3096 | find interpretation(problem,interpretation); | ||
3097 | find mustInstanceOfSpacecraft_class(problem,interpretation,root); | ||
3098 | find mustExist(problem, interpretation, root); | ||
3099 | }or{ | ||
3100 | find interpretation(problem,interpretation); | ||
3101 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,root); | ||
3102 | find mustExist(problem, interpretation, root); | ||
3103 | }or{ | ||
3104 | find interpretation(problem,interpretation); | ||
3105 | find mustInstanceOfCubeSat_class(problem,interpretation,root); | ||
3106 | find mustExist(problem, interpretation, root); | ||
3107 | }or{ | ||
3108 | find interpretation(problem,interpretation); | ||
3109 | find mustInstanceOfConstellationMission_class(problem,interpretation,root); | ||
3110 | find mustExist(problem, interpretation, root); | ||
3111 | }or{ | ||
3112 | find interpretation(problem,interpretation); | ||
3113 | find mustInstanceOfInterferometryMission_class(problem,interpretation,root); | ||
3114 | find mustExist(problem, interpretation, root); | ||
3115 | }or{ | ||
3116 | find interpretation(problem,interpretation); | ||
3117 | find mustInstanceOfCubeSat3U_class(problem,interpretation,root); | ||
3118 | find mustExist(problem, interpretation, root); | ||
3119 | }or{ | ||
3120 | find interpretation(problem,interpretation); | ||
3121 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,root); | ||
3122 | find mustExist(problem, interpretation, root); | ||
3123 | }or{ | ||
3124 | find interpretation(problem,interpretation); | ||
3125 | find mustInstanceOfCubeSat6U_class(problem,interpretation,root); | ||
3126 | find mustExist(problem, interpretation, root); | ||
3127 | }or{ | ||
3128 | find interpretation(problem,interpretation); | ||
3129 | find mustInstanceOfSmallSat_class(problem,interpretation,root); | ||
3130 | find mustExist(problem, interpretation, root); | ||
3131 | }or{ | ||
3132 | find interpretation(problem,interpretation); | ||
3133 | find mustInstanceOfCommSubsystem_class(problem,interpretation,root); | ||
3134 | find mustExist(problem, interpretation, root); | ||
3135 | }or{ | ||
3136 | find interpretation(problem,interpretation); | ||
3137 | find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root); | ||
3138 | find mustExist(problem, interpretation, root); | ||
3139 | }or{ | ||
3140 | find interpretation(problem,interpretation); | ||
3141 | find mustInstanceOfPayload_class(problem,interpretation,root); | ||
3142 | find mustExist(problem, interpretation, root); | ||
3143 | }or{ | ||
3144 | find interpretation(problem,interpretation); | ||
3145 | find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root); | ||
3146 | find mustExist(problem, interpretation, root); | ||
3147 | }or{ | ||
3148 | find interpretation(problem,interpretation); | ||
3149 | find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root); | ||
3150 | find mustExist(problem, interpretation, root); | ||
3151 | }or{ | ||
3152 | find interpretation(problem,interpretation); | ||
3153 | find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root); | ||
3154 | find mustExist(problem, interpretation, root); | ||
3155 | }or{ | ||
3156 | find interpretation(problem,interpretation); | ||
3157 | find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root); | ||
3158 | find mustExist(problem, interpretation, root); | ||
3159 | }or{ | ||
3160 | find interpretation(problem,interpretation); | ||
3161 | find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root); | ||
3162 | find mustExist(problem, interpretation, root); | ||
3163 | }or{ | ||
3164 | find interpretation(problem,interpretation); | ||
3165 | find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root); | ||
3166 | find mustExist(problem, interpretation, root); | ||
3167 | }or{ | ||
3168 | find interpretation(problem,interpretation); | ||
3169 | find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root); | ||
3170 | find mustExist(problem, interpretation, root); | ||
3171 | }or{ | ||
3172 | find interpretation(problem,interpretation); | ||
3173 | find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root); | ||
3174 | find mustExist(problem, interpretation, root); | ||
3175 | }or{ | ||
3176 | find interpretation(problem,interpretation); | ||
3177 | find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root); | ||
3178 | find mustExist(problem, interpretation, root); | ||
3179 | }or{ | ||
3180 | find interpretation(problem,interpretation); | ||
3181 | find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root); | ||
3182 | find mustExist(problem, interpretation, root); | ||
3183 | } | ||
3184 | pattern createObject_DirectedCommunicationLink_class_by_communicationLink_reference_CommunicatingElement( | ||
3185 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3186 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3187 | container:DefinedElement) | ||
3188 | { | ||
3189 | find interpretation(problem,interpretation); | ||
3190 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3191 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class"); | ||
3192 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3193 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"communicationLink reference CommunicatingElement"); | ||
3194 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,container); | ||
3195 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject); | ||
3196 | find mayInRelationcommunicationLink_reference_CommunicatingElement(problem,interpretation,container,newObject); | ||
3197 | find mustExist(problem, interpretation, container); | ||
3198 | neg find mustExist(problem, interpretation, newObject); | ||
3199 | } | ||
3200 | pattern createObject_DirectedCommunicationLink_class( | ||
3201 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3202 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3203 | { | ||
3204 | find interpretation(problem,interpretation); | ||
3205 | neg find hasElementInContainment(problem,interpretation); | ||
3206 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3207 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"DirectedCommunicationLink class"); | ||
3208 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,newObject); | ||
3209 | find mayExist(problem, interpretation, newObject); | ||
3210 | neg find mustExist(problem, interpretation, newObject); | ||
3211 | } | ||
3212 | pattern createObject_InterferometryMission_class_UndefinedPart( | ||
3213 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3214 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3215 | { | ||
3216 | find interpretation(problem,interpretation); | ||
3217 | neg find hasElementInContainment(problem,interpretation); | ||
3218 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3219 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart"); | ||
3220 | find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject); | ||
3221 | find mayExist(problem, interpretation, newObject); | ||
3222 | neg find mustExist(problem, interpretation, newObject); | ||
3223 | } | ||
3224 | pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft( | ||
3225 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3226 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3227 | container:DefinedElement) | ||
3228 | { | ||
3229 | find interpretation(problem,interpretation); | ||
3230 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3231 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class"); | ||
3232 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3233 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft"); | ||
3234 | find mustInstanceOfSpacecraft_class(problem,interpretation,container); | ||
3235 | find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject); | ||
3236 | find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject); | ||
3237 | find mustExist(problem, interpretation, container); | ||
3238 | neg find mustExist(problem, interpretation, newObject); | ||
3239 | } | ||
3240 | pattern createObject_InterferometryPayload_class( | ||
3241 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3242 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3243 | { | ||
3244 | find interpretation(problem,interpretation); | ||
3245 | neg find hasElementInContainment(problem,interpretation); | ||
3246 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3247 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class"); | ||
3248 | find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject); | ||
3249 | find mayExist(problem, interpretation, newObject); | ||
3250 | neg find mustExist(problem, interpretation, newObject); | ||
3251 | } | ||
3252 | pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission( | ||
3253 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3254 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3255 | container:DefinedElement) | ||
3256 | { | ||
3257 | find interpretation(problem,interpretation); | ||
3258 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3259 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart"); | ||
3260 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3261 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission"); | ||
3262 | find mustInstanceOfConstellationMission_class(problem,interpretation,container); | ||
3263 | find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject); | ||
3264 | find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject); | ||
3265 | find mustExist(problem, interpretation, container); | ||
3266 | neg find mustExist(problem, interpretation, newObject); | ||
3267 | } | ||
3268 | pattern createObject_GroundStationNetwork_class_UndefinedPart( | ||
3269 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3270 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3271 | { | ||
3272 | find interpretation(problem,interpretation); | ||
3273 | neg find hasElementInContainment(problem,interpretation); | ||
3274 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3275 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart"); | ||
3276 | find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject); | ||
3277 | find mayExist(problem, interpretation, newObject); | ||
3278 | neg find mustExist(problem, interpretation, newObject); | ||
3279 | } | ||
3280 | pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission( | ||
3281 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3282 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3283 | container:DefinedElement) | ||
3284 | { | ||
3285 | find interpretation(problem,interpretation); | ||
3286 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3287 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class"); | ||
3288 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3289 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); | ||
3290 | find mustInstanceOfConstellationMission_class(problem,interpretation,container); | ||
3291 | find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject); | ||
3292 | find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); | ||
3293 | find mustExist(problem, interpretation, container); | ||
3294 | neg find mustExist(problem, interpretation, newObject); | ||
3295 | } | ||
3296 | pattern createObject_CubeSat3U_class( | ||
3297 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3298 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3299 | { | ||
3300 | find interpretation(problem,interpretation); | ||
3301 | neg find hasElementInContainment(problem,interpretation); | ||
3302 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3303 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class"); | ||
3304 | find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject); | ||
3305 | find mayExist(problem, interpretation, newObject); | ||
3306 | neg find mustExist(problem, interpretation, newObject); | ||
3307 | } | ||
3308 | pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission( | ||
3309 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3310 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3311 | container:DefinedElement) | ||
3312 | { | ||
3313 | find interpretation(problem,interpretation); | ||
3314 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3315 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class"); | ||
3316 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3317 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); | ||
3318 | find mustInstanceOfConstellationMission_class(problem,interpretation,container); | ||
3319 | find mayInstanceOfSmallSat_class(problem,interpretation,newObject); | ||
3320 | find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); | ||
3321 | find mustExist(problem, interpretation, container); | ||
3322 | neg find mustExist(problem, interpretation, newObject); | ||
3323 | } | ||
3324 | pattern createObject_SmallSat_class( | ||
3325 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3326 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3327 | { | ||
3328 | find interpretation(problem,interpretation); | ||
3329 | neg find hasElementInContainment(problem,interpretation); | ||
3330 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3331 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class"); | ||
3332 | find mayInstanceOfSmallSat_class(problem,interpretation,newObject); | ||
3333 | find mayExist(problem, interpretation, newObject); | ||
3334 | neg find mustExist(problem, interpretation, newObject); | ||
3335 | } | ||
3336 | pattern createObject_CommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement( | ||
3337 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3338 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3339 | container:DefinedElement) | ||
3340 | { | ||
3341 | find interpretation(problem,interpretation); | ||
3342 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3343 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart"); | ||
3344 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3345 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement"); | ||
3346 | find mustInstanceOfCommunicatingElement_class(problem,interpretation,container); | ||
3347 | find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); | ||
3348 | find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject); | ||
3349 | find mustExist(problem, interpretation, container); | ||
3350 | neg find mustExist(problem, interpretation, newObject); | ||
3351 | } | ||
3352 | pattern createObject_CommSubsystem_class_UndefinedPart( | ||
3353 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3354 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3355 | { | ||
3356 | find interpretation(problem,interpretation); | ||
3357 | neg find hasElementInContainment(problem,interpretation); | ||
3358 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3359 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CommSubsystem class UndefinedPart"); | ||
3360 | find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); | ||
3361 | find mayExist(problem, interpretation, newObject); | ||
3362 | neg find mustExist(problem, interpretation, newObject); | ||
3363 | } | ||
3364 | pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission( | ||
3365 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3366 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
3367 | container:DefinedElement) | ||
3368 | { | ||
3369 | find interpretation(problem,interpretation); | ||
3370 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3371 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class"); | ||
3372 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
3373 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); | ||
3374 | find mustInstanceOfConstellationMission_class(problem,interpretation,container); | ||
3375 | find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject); | ||
3376 | find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); | ||
3377 | find mustExist(problem, interpretation, container); | ||
3378 | neg find mustExist(problem, interpretation, newObject); | ||
3379 | } | ||
3380 | pattern createObject_CubeSat6U_class( | ||
3381 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3382 | typeInterpretation:PartialComplexTypeInterpretation) | ||
3383 | { | ||
3384 | find interpretation(problem,interpretation); | ||
3385 | neg find hasElementInContainment(problem,interpretation); | ||
3386 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
3387 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class"); | ||
3388 | find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject); | ||
3389 | find mayExist(problem, interpretation, newObject); | ||
3390 | neg find mustExist(problem, interpretation, newObject); | ||
3391 | } | ||
3392 | |||
3393 | ////////// | ||
3394 | // 4.2 Type refinement | ||
3395 | ////////// | ||
3396 | pattern refineTypeTo_DirectedCommunicationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3397 | find interpretation(problem,interpretation); | ||
3398 | PartialInterpretation.newElements(interpretation,element); | ||
3399 | find mayInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3400 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3401 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3402 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3403 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3404 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
3405 | } | ||
3406 | pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3407 | find interpretation(problem,interpretation); | ||
3408 | PartialInterpretation.newElements(interpretation,element); | ||
3409 | find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); | ||
3410 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3411 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3412 | neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); | ||
3413 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3414 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
3415 | } | ||
3416 | pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3417 | find interpretation(problem,interpretation); | ||
3418 | PartialInterpretation.newElements(interpretation,element); | ||
3419 | find mayInstanceOfInterferometryPayload_class(problem,interpretation,element); | ||
3420 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3421 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3422 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
3423 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3424 | neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); | ||
3425 | } | ||
3426 | pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3427 | find interpretation(problem,interpretation); | ||
3428 | PartialInterpretation.newElements(interpretation,element); | ||
3429 | find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); | ||
3430 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3431 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3432 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3433 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3434 | neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); | ||
3435 | neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); | ||
3436 | } | ||
3437 | pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3438 | find interpretation(problem,interpretation); | ||
3439 | PartialInterpretation.newElements(interpretation,element); | ||
3440 | find mayInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
3441 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3442 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3443 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
3444 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3445 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3446 | neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
3447 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
3448 | neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
3449 | } | ||
3450 | pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3451 | find interpretation(problem,interpretation); | ||
3452 | PartialInterpretation.newElements(interpretation,element); | ||
3453 | find mayInstanceOfSmallSat_class(problem,interpretation,element); | ||
3454 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3455 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3456 | neg find mustInstanceOfCubeSat_class(problem,interpretation,element); | ||
3457 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
3458 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3459 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3460 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
3461 | } | ||
3462 | pattern refineTypeTo_CommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3463 | find interpretation(problem,interpretation); | ||
3464 | PartialInterpretation.newElements(interpretation,element); | ||
3465 | find mayInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); | ||
3466 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3467 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3468 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3469 | neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); | ||
3470 | neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); | ||
3471 | } | ||
3472 | pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
3473 | find interpretation(problem,interpretation); | ||
3474 | PartialInterpretation.newElements(interpretation,element); | ||
3475 | find mayInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
3476 | neg find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,element); | ||
3477 | neg find mustInstanceOfPayload_class(problem,interpretation,element); | ||
3478 | neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); | ||
3479 | neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); | ||
3480 | neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); | ||
3481 | neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); | ||
3482 | neg find mustInstanceOfSmallSat_class(problem,interpretation,element); | ||
3483 | neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); | ||
3484 | } | ||
3485 | |||
3486 | ////////// | ||
3487 | // 4.3 Relation refinement | ||
3488 | ////////// | ||
3489 | pattern refineRelation_source_reference_DirectedCommunicationLink( | ||
3490 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3491 | relationIterpretation:PartialRelationInterpretation, | ||
3492 | from: DefinedElement, to: DefinedElement) | ||
3493 | { | ||
3494 | find interpretation(problem,interpretation); | ||
3495 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3496 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference DirectedCommunicationLink"); | ||
3497 | find mustExist(problem, interpretation, from); | ||
3498 | find mustExist(problem, interpretation, to); | ||
3499 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,from); | ||
3500 | find mustInstanceOfCommSubsystem_class(problem,interpretation,to); | ||
3501 | find mayInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,from,to); | ||
3502 | neg find mustInRelationsource_reference_DirectedCommunicationLink(problem,interpretation,from,to); | ||
3503 | } | ||
3504 | pattern refineRelation_target_reference_DirectedCommunicationLink( | ||
3505 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3506 | relationIterpretation:PartialRelationInterpretation, | ||
3507 | from: DefinedElement, to: DefinedElement) | ||
3508 | { | ||
3509 | find interpretation(problem,interpretation); | ||
3510 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3511 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference DirectedCommunicationLink"); | ||
3512 | find mustExist(problem, interpretation, from); | ||
3513 | find mustExist(problem, interpretation, to); | ||
3514 | find mustInstanceOfDirectedCommunicationLink_class(problem,interpretation,from); | ||
3515 | find mustInstanceOfCommSubsystem_class(problem,interpretation,to); | ||
3516 | find mayInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to); | ||
3517 | neg find mustInRelationtarget_reference_DirectedCommunicationLink(problem,interpretation,from,to); | ||
3518 | } | ||
3519 | pattern refineRelation_kind_attribute_Spacecraft( | ||
3520 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3521 | relationIterpretation:PartialRelationInterpretation, | ||
3522 | from: DefinedElement, to: DefinedElement) | ||
3523 | { | ||
3524 | find interpretation(problem,interpretation); | ||
3525 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3526 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"kind attribute Spacecraft"); | ||
3527 | find mustExist(problem, interpretation, from); | ||
3528 | find mustExist(problem, interpretation, to); | ||
3529 | find mustInstanceOfSpacecraft_class(problem,interpretation,from); | ||
3530 | find mustInstanceOfSpacecraftKind_enum(problem,interpretation,to); | ||
3531 | find mayInRelationkind_attribute_Spacecraft(problem,interpretation,from,to); | ||
3532 | neg find mustInRelationkind_attribute_Spacecraft(problem,interpretation,from,to); | ||
3533 | } | ||
3534 | pattern refineRelation_band_attribute_CommSubsystem( | ||
3535 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3536 | relationIterpretation:PartialRelationInterpretation, | ||
3537 | from: DefinedElement, to: DefinedElement) | ||
3538 | { | ||
3539 | find interpretation(problem,interpretation); | ||
3540 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3541 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"band attribute CommSubsystem"); | ||
3542 | find mustExist(problem, interpretation, from); | ||
3543 | find mustExist(problem, interpretation, to); | ||
3544 | find mustInstanceOfCommSubsystem_class(problem,interpretation,from); | ||
3545 | find mustInstanceOfTransceiverBand_enum(problem,interpretation,to); | ||
3546 | find mayInRelationband_attribute_CommSubsystem(problem,interpretation,from,to); | ||
3547 | neg find mustInRelationband_attribute_CommSubsystem(problem,interpretation,from,to); | ||
3548 | } | ||
3549 | pattern refineRelation_gain_attribute_CommSubsystem( | ||
3550 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
3551 | relationIterpretation:PartialRelationInterpretation, | ||
3552 | from: DefinedElement, to: DefinedElement) | ||
3553 | { | ||
3554 | find interpretation(problem,interpretation); | ||
3555 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
3556 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"gain attribute CommSubsystem"); | ||
3557 | find mustExist(problem, interpretation, from); | ||
3558 | find mustExist(problem, interpretation, to); | ||
3559 | find mustInstanceOfCommSubsystem_class(problem,interpretation,from); | ||
3560 | find mustInstanceOfAntennaGain_enum(problem,interpretation,to); | ||
3561 | find mayInRelationgain_attribute_CommSubsystem(problem,interpretation,from,to); | ||
3562 | neg find mustInRelationgain_attribute_CommSubsystem(problem,interpretation,from,to); | ||
3563 | } | ||
3564 | |||
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..2a54174a --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem | |||
@@ -0,0 +1,2103 @@ | |||
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.16 //@types.17" isAbstract="true"/> | ||
4 | <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class" subtypes="//@types.18 //@types.19" supertypes="//@types.0" isAbstract="true"/> | ||
5 | <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class" subtypes="//@types.3 //@types.4 //@types.20 //@types.21" isAbstract="true"/> | ||
6 | <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class" subtypes="//@types.22 //@types.23" supertypes="//@types.2" isAbstract="true"/> | ||
7 | <types xsi:type="language_1:TypeDeclaration" name="Spacecraft class" subtypes="//@types.11 //@types.12" supertypes="//@types.2 //@types.21" isAbstract="true"/> | ||
8 | <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class" subtypes="//@types.24 //@types.25" isAbstract="true"/> | ||
9 | <types xsi:type="language_1:TypeDeclaration" name="DirectedCommunicationLink class"/> | ||
10 | <types xsi:type="language_1:TypeDeclaration" name="Payload class" subtypes="//@types.8" isAbstract="true"/> | ||
11 | <types xsi:type="language_1:TypeDeclaration" name="InterferometryPayload class" supertypes="//@types.7"/> | ||
12 | <types xsi:type="language_1:TypeDeclaration" name="CubeSat3U class" supertypes="//@types.12"/> | ||
13 | <types xsi:type="language_1:TypeDeclaration" name="CubeSat6U class" supertypes="//@types.12"/> | ||
14 | <types xsi:type="language_1:TypeDeclaration" name="SmallSat class" supertypes="//@types.4"/> | ||
15 | <types xsi:type="language_1:TypeDeclaration" name="CubeSat class" subtypes="//@types.9 //@types.10" supertypes="//@types.4" isAbstract="true"/> | ||
16 | <types xsi:type="language_1:TypeDefinition" name="TransceiverBand enum" elements="//@elements.0 //@elements.1 //@elements.2"/> | ||
17 | <types xsi:type="language_1:TypeDefinition" name="AntennaGain enum" elements="//@elements.3 //@elements.4 //@elements.5"/> | ||
18 | <types xsi:type="language_1:TypeDefinition" name="SpacecraftKind enum" elements="//@elements.6 //@elements.7 //@elements.8"/> | ||
19 | <types xsi:type="language_1:TypeDefinition" name="ConstellationMission class DefinedPart" subtypes="//@types.18" supertypes="//@types.0" isAbstract="true" elements="//@elements.9"/> | ||
20 | <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class UndefinedPart" subtypes="//@types.19" supertypes="//@types.0" isAbstract="true"/> | ||
21 | <types xsi:type="language_1:TypeDefinition" name="InterferometryMission class DefinedPart" supertypes="//@types.1 //@types.16" elements="//@elements.9"/> | ||
22 | <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class UndefinedPart" supertypes="//@types.1 //@types.17"/> | ||
23 | <types xsi:type="language_1:TypeDefinition" name="CommunicatingElement class DefinedPart" subtypes="//@types.22" supertypes="//@types.2" isAbstract="true" elements="//@elements.10"/> | ||
24 | <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class UndefinedPart" subtypes="//@types.23 //@types.4" supertypes="//@types.2" isAbstract="true"/> | ||
25 | <types xsi:type="language_1:TypeDefinition" name="GroundStationNetwork class DefinedPart" supertypes="//@types.3 //@types.20" elements="//@elements.10"/> | ||
26 | <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class UndefinedPart" supertypes="//@types.3 //@types.21"/> | ||
27 | <types xsi:type="language_1:TypeDefinition" name="CommSubsystem class DefinedPart" supertypes="//@types.5" elements="//@elements.11 //@elements.12"/> | ||
28 | <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class UndefinedPart" supertypes="//@types.5"/> | ||
29 | <assertions name="lowerMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.0"> | ||
30 | <value xsi:type="language_1:Forall"> | ||
31 | <quantifiedVariables name="src"> | ||
32 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
33 | </quantifiedVariables> | ||
34 | <expression xsi:type="language_1:Exists"> | ||
35 | <quantifiedVariables name="trg 1"> | ||
36 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
37 | </quantifiedVariables> | ||
38 | <expression xsi:type="language_1:And"> | ||
39 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
40 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
41 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/> | ||
42 | </operands> | ||
43 | </expression> | ||
44 | </expression> | ||
45 | </value> | ||
46 | </assertions> | ||
47 | <assertions name="upperMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.1"> | ||
48 | <value xsi:type="language_1:Forall"> | ||
49 | <quantifiedVariables name="src"> | ||
50 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
51 | </quantifiedVariables> | ||
52 | <quantifiedVariables name="trg 1"> | ||
53 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
54 | </quantifiedVariables> | ||
55 | <quantifiedVariables name="trg 2"> | ||
56 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
57 | </quantifiedVariables> | ||
58 | <expression xsi:type="language_1:Impl"> | ||
59 | <leftOperand xsi:type="language_1:And"> | ||
60 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
61 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
62 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
63 | </operands> | ||
64 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
65 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
66 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
67 | </operands> | ||
68 | </leftOperand> | ||
69 | <rightOperand xsi:type="language_1:Not"> | ||
70 | <operand xsi:type="language_1:Distinct"> | ||
71 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
72 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
73 | </operand> | ||
74 | </rightOperand> | ||
75 | </expression> | ||
76 | </value> | ||
77 | </assertions> | ||
78 | <assertions name="lowerMultiplicity spacecraft ConstellationMission" annotations="//@annotations.2"> | ||
79 | <value xsi:type="language_1:Forall"> | ||
80 | <quantifiedVariables name="src"> | ||
81 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
82 | </quantifiedVariables> | ||
83 | <expression xsi:type="language_1:Exists"> | ||
84 | <quantifiedVariables name="trg 1"> | ||
85 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
86 | </quantifiedVariables> | ||
87 | <quantifiedVariables name="trg 2"> | ||
88 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
89 | </quantifiedVariables> | ||
90 | <expression xsi:type="language_1:And"> | ||
91 | <operands xsi:type="language_1:Distinct"> | ||
92 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.0"/> | ||
93 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.1"/> | ||
94 | </operands> | ||
95 | <operands xsi:type="language_1:And"> | ||
96 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
97 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
98 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.0"/> | ||
99 | </operands> | ||
100 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
101 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
102 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.1"/> | ||
103 | </operands> | ||
104 | </operands> | ||
105 | </expression> | ||
106 | </expression> | ||
107 | </value> | ||
108 | </assertions> | ||
109 | <assertions name="upperMultiplicity spacecraft ConstellationMission" annotations="//@annotations.3"> | ||
110 | <value xsi:type="language_1:Forall"> | ||
111 | <quantifiedVariables name="src"> | ||
112 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
113 | </quantifiedVariables> | ||
114 | <quantifiedVariables name="trg 1"> | ||
115 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
116 | </quantifiedVariables> | ||
117 | <quantifiedVariables name="trg 2"> | ||
118 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
119 | </quantifiedVariables> | ||
120 | <quantifiedVariables name="trg 3"> | ||
121 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
122 | </quantifiedVariables> | ||
123 | <quantifiedVariables name="trg 4"> | ||
124 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
125 | </quantifiedVariables> | ||
126 | <quantifiedVariables name="trg 5"> | ||
127 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
128 | </quantifiedVariables> | ||
129 | <quantifiedVariables name="trg 6"> | ||
130 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
131 | </quantifiedVariables> | ||
132 | <quantifiedVariables name="trg 7"> | ||
133 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
134 | </quantifiedVariables> | ||
135 | <quantifiedVariables name="trg 8"> | ||
136 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
137 | </quantifiedVariables> | ||
138 | <quantifiedVariables name="trg 9"> | ||
139 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
140 | </quantifiedVariables> | ||
141 | <quantifiedVariables name="trg 10"> | ||
142 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
143 | </quantifiedVariables> | ||
144 | <quantifiedVariables name="trg 11"> | ||
145 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
146 | </quantifiedVariables> | ||
147 | <quantifiedVariables name="trg 12"> | ||
148 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
149 | </quantifiedVariables> | ||
150 | <quantifiedVariables name="trg 13"> | ||
151 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
152 | </quantifiedVariables> | ||
153 | <quantifiedVariables name="trg 14"> | ||
154 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
155 | </quantifiedVariables> | ||
156 | <quantifiedVariables name="trg 15"> | ||
157 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
158 | </quantifiedVariables> | ||
159 | <quantifiedVariables name="trg 16"> | ||
160 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
161 | </quantifiedVariables> | ||
162 | <quantifiedVariables name="trg 17"> | ||
163 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
164 | </quantifiedVariables> | ||
165 | <quantifiedVariables name="trg 18"> | ||
166 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
167 | </quantifiedVariables> | ||
168 | <quantifiedVariables name="trg 19"> | ||
169 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
170 | </quantifiedVariables> | ||
171 | <quantifiedVariables name="trg 20"> | ||
172 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
173 | </quantifiedVariables> | ||
174 | <quantifiedVariables name="trg 21"> | ||
175 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
176 | </quantifiedVariables> | ||
177 | <quantifiedVariables name="trg 22"> | ||
178 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
179 | </quantifiedVariables> | ||
180 | <quantifiedVariables name="trg 23"> | ||
181 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
182 | </quantifiedVariables> | ||
183 | <quantifiedVariables name="trg 24"> | ||
184 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
185 | </quantifiedVariables> | ||
186 | <quantifiedVariables name="trg 25"> | ||
187 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
188 | </quantifiedVariables> | ||
189 | <quantifiedVariables name="trg 26"> | ||
190 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
191 | </quantifiedVariables> | ||
192 | <quantifiedVariables name="trg 27"> | ||
193 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
194 | </quantifiedVariables> | ||
195 | <quantifiedVariables name="trg 28"> | ||
196 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
197 | </quantifiedVariables> | ||
198 | <quantifiedVariables name="trg 29"> | ||
199 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
200 | </quantifiedVariables> | ||
201 | <quantifiedVariables name="trg 30"> | ||
202 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
203 | </quantifiedVariables> | ||
204 | <quantifiedVariables name="trg 31"> | ||
205 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
206 | </quantifiedVariables> | ||
207 | <quantifiedVariables name="trg 32"> | ||
208 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
209 | </quantifiedVariables> | ||
210 | <quantifiedVariables name="trg 33"> | ||
211 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
212 | </quantifiedVariables> | ||
213 | <quantifiedVariables name="trg 34"> | ||
214 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
215 | </quantifiedVariables> | ||
216 | <quantifiedVariables name="trg 35"> | ||
217 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
218 | </quantifiedVariables> | ||
219 | <quantifiedVariables name="trg 36"> | ||
220 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
221 | </quantifiedVariables> | ||
222 | <quantifiedVariables name="trg 37"> | ||
223 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
224 | </quantifiedVariables> | ||
225 | <quantifiedVariables name="trg 38"> | ||
226 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
227 | </quantifiedVariables> | ||
228 | <quantifiedVariables name="trg 39"> | ||
229 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
230 | </quantifiedVariables> | ||
231 | <quantifiedVariables name="trg 40"> | ||
232 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
233 | </quantifiedVariables> | ||
234 | <quantifiedVariables name="trg 41"> | ||
235 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
236 | </quantifiedVariables> | ||
237 | <quantifiedVariables name="trg 42"> | ||
238 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
239 | </quantifiedVariables> | ||
240 | <quantifiedVariables name="trg 43"> | ||
241 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
242 | </quantifiedVariables> | ||
243 | <quantifiedVariables name="trg 44"> | ||
244 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
245 | </quantifiedVariables> | ||
246 | <quantifiedVariables name="trg 45"> | ||
247 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
248 | </quantifiedVariables> | ||
249 | <quantifiedVariables name="trg 46"> | ||
250 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
251 | </quantifiedVariables> | ||
252 | <quantifiedVariables name="trg 47"> | ||
253 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
254 | </quantifiedVariables> | ||
255 | <quantifiedVariables name="trg 48"> | ||
256 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
257 | </quantifiedVariables> | ||
258 | <quantifiedVariables name="trg 49"> | ||
259 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
260 | </quantifiedVariables> | ||
261 | <quantifiedVariables name="trg 50"> | ||
262 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
263 | </quantifiedVariables> | ||
264 | <quantifiedVariables name="trg 51"> | ||
265 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
266 | </quantifiedVariables> | ||
267 | <expression xsi:type="language_1:Impl"> | ||
268 | <leftOperand xsi:type="language_1:And"> | ||
269 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
270 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
271 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
272 | </operands> | ||
273 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
274 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
275 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
276 | </operands> | ||
277 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
278 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
279 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.3"/> | ||
280 | </operands> | ||
281 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
282 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
283 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.4"/> | ||
284 | </operands> | ||
285 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
286 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
287 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.5"/> | ||
288 | </operands> | ||
289 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
290 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
291 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.6"/> | ||
292 | </operands> | ||
293 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
294 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
295 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.7"/> | ||
296 | </operands> | ||
297 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
298 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
299 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.8"/> | ||
300 | </operands> | ||
301 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
302 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
303 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.9"/> | ||
304 | </operands> | ||
305 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
306 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
307 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.10"/> | ||
308 | </operands> | ||
309 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
310 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
311 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.11"/> | ||
312 | </operands> | ||
313 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
314 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
315 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.12"/> | ||
316 | </operands> | ||
317 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
318 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
319 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.13"/> | ||
320 | </operands> | ||
321 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
322 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
323 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.14"/> | ||
324 | </operands> | ||
325 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
326 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
327 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.15"/> | ||
328 | </operands> | ||
329 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
330 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
331 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.16"/> | ||
332 | </operands> | ||
333 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
334 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
335 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.17"/> | ||
336 | </operands> | ||
337 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
338 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
339 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.18"/> | ||
340 | </operands> | ||
341 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
342 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
343 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.19"/> | ||
344 | </operands> | ||
345 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
346 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
347 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.20"/> | ||
348 | </operands> | ||
349 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
350 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
351 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.21"/> | ||
352 | </operands> | ||
353 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
354 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
355 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.22"/> | ||
356 | </operands> | ||
357 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
358 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
359 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.23"/> | ||
360 | </operands> | ||
361 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
362 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
363 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.24"/> | ||
364 | </operands> | ||
365 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
366 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
367 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.25"/> | ||
368 | </operands> | ||
369 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
370 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
371 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.26"/> | ||
372 | </operands> | ||
373 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
374 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
375 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.27"/> | ||
376 | </operands> | ||
377 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
378 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
379 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.28"/> | ||
380 | </operands> | ||
381 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
382 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
383 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.29"/> | ||
384 | </operands> | ||
385 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
386 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
387 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.30"/> | ||
388 | </operands> | ||
389 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
390 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
391 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.31"/> | ||
392 | </operands> | ||
393 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
394 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
395 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.32"/> | ||
396 | </operands> | ||
397 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
398 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
399 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.33"/> | ||
400 | </operands> | ||
401 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
402 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
403 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.34"/> | ||
404 | </operands> | ||
405 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
406 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
407 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.35"/> | ||
408 | </operands> | ||
409 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
410 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
411 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.36"/> | ||
412 | </operands> | ||
413 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
414 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
415 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.37"/> | ||
416 | </operands> | ||
417 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
418 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
419 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.38"/> | ||
420 | </operands> | ||
421 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
422 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
423 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.39"/> | ||
424 | </operands> | ||
425 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
426 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
427 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.40"/> | ||
428 | </operands> | ||
429 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
430 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
431 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.41"/> | ||
432 | </operands> | ||
433 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
434 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
435 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.42"/> | ||
436 | </operands> | ||
437 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
438 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
439 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.43"/> | ||
440 | </operands> | ||
441 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
442 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
443 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.44"/> | ||
444 | </operands> | ||
445 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
446 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
447 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.45"/> | ||
448 | </operands> | ||
449 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
450 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
451 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.46"/> | ||
452 | </operands> | ||
453 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
454 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
455 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.47"/> | ||
456 | </operands> | ||
457 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
458 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
459 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.48"/> | ||
460 | </operands> | ||
461 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
462 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
463 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.49"/> | ||
464 | </operands> | ||
465 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
466 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
467 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.50"/> | ||
468 | </operands> | ||
469 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
470 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
471 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.51"/> | ||
472 | </operands> | ||
473 | </leftOperand> | ||
474 | <rightOperand xsi:type="language_1:Not"> | ||
475 | <operand xsi:type="language_1:Distinct"> | ||
476 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
477 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
478 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.3"/> | ||
479 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.4"/> | ||
480 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.5"/> | ||
481 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.6"/> | ||
482 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.7"/> | ||
483 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.8"/> | ||
484 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.9"/> | ||
485 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.10"/> | ||
486 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.11"/> | ||
487 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.12"/> | ||
488 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.13"/> | ||
489 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.14"/> | ||
490 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.15"/> | ||
491 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.16"/> | ||
492 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.17"/> | ||
493 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.18"/> | ||
494 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.19"/> | ||
495 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.20"/> | ||
496 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.21"/> | ||
497 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.22"/> | ||
498 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.23"/> | ||
499 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.24"/> | ||
500 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.25"/> | ||
501 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.26"/> | ||
502 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.27"/> | ||
503 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.28"/> | ||
504 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.29"/> | ||
505 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.30"/> | ||
506 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.31"/> | ||
507 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.32"/> | ||
508 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.33"/> | ||
509 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.34"/> | ||
510 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.35"/> | ||
511 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.36"/> | ||
512 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.37"/> | ||
513 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.38"/> | ||
514 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.39"/> | ||
515 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.40"/> | ||
516 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.41"/> | ||
517 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.42"/> | ||
518 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.43"/> | ||
519 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.44"/> | ||
520 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.45"/> | ||
521 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.46"/> | ||
522 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.47"/> | ||
523 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.48"/> | ||
524 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.49"/> | ||
525 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.50"/> | ||
526 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.51"/> | ||
527 | </operand> | ||
528 | </rightOperand> | ||
529 | </expression> | ||
530 | </value> | ||
531 | </assertions> | ||
532 | <assertions name="lowerMultiplicity commSubsystem CommunicatingElement" annotations="//@annotations.4"> | ||
533 | <value xsi:type="language_1:Forall"> | ||
534 | <quantifiedVariables name="src"> | ||
535 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
536 | </quantifiedVariables> | ||
537 | <expression xsi:type="language_1:Exists"> | ||
538 | <quantifiedVariables name="trg 1"> | ||
539 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
540 | </quantifiedVariables> | ||
541 | <expression xsi:type="language_1:And"> | ||
542 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
543 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
544 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@expression/@quantifiedVariables.0"/> | ||
545 | </operands> | ||
546 | </expression> | ||
547 | </expression> | ||
548 | </value> | ||
549 | </assertions> | ||
550 | <assertions name="upperMultiplicity commSubsystem CommunicatingElement" annotations="//@annotations.5"> | ||
551 | <value xsi:type="language_1:Forall"> | ||
552 | <quantifiedVariables name="src"> | ||
553 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
554 | </quantifiedVariables> | ||
555 | <quantifiedVariables name="trg 1"> | ||
556 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
557 | </quantifiedVariables> | ||
558 | <quantifiedVariables name="trg 2"> | ||
559 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
560 | </quantifiedVariables> | ||
561 | <quantifiedVariables name="trg 3"> | ||
562 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
563 | </quantifiedVariables> | ||
564 | <expression xsi:type="language_1:Impl"> | ||
565 | <leftOperand xsi:type="language_1:And"> | ||
566 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
567 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
568 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
569 | </operands> | ||
570 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
571 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
572 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> | ||
573 | </operands> | ||
574 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
575 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
576 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.3"/> | ||
577 | </operands> | ||
578 | </leftOperand> | ||
579 | <rightOperand xsi:type="language_1:Not"> | ||
580 | <operand xsi:type="language_1:Distinct"> | ||
581 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
582 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> | ||
583 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.3"/> | ||
584 | </operand> | ||
585 | </rightOperand> | ||
586 | </expression> | ||
587 | </value> | ||
588 | </assertions> | ||
589 | <assertions name="upperMultiplicity communicationLink CommunicatingElement" annotations="//@annotations.6"> | ||
590 | <value xsi:type="language_1:Forall"> | ||
591 | <quantifiedVariables name="src"> | ||
592 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
593 | </quantifiedVariables> | ||
594 | <quantifiedVariables name="trg 1"> | ||
595 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
596 | </quantifiedVariables> | ||
597 | <quantifiedVariables name="trg 2"> | ||
598 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
599 | </quantifiedVariables> | ||
600 | <expression xsi:type="language_1:Impl"> | ||
601 | <leftOperand xsi:type="language_1:And"> | ||
602 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
603 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
604 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
605 | </operands> | ||
606 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
607 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
608 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
609 | </operands> | ||
610 | </leftOperand> | ||
611 | <rightOperand xsi:type="language_1:Not"> | ||
612 | <operand xsi:type="language_1:Distinct"> | ||
613 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
614 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
615 | </operand> | ||
616 | </rightOperand> | ||
617 | </expression> | ||
618 | </value> | ||
619 | </assertions> | ||
620 | <assertions name="upperMultiplicity payload Spacecraft" annotations="//@annotations.7"> | ||
621 | <value xsi:type="language_1:Forall"> | ||
622 | <quantifiedVariables name="src"> | ||
623 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
624 | </quantifiedVariables> | ||
625 | <quantifiedVariables name="trg 1"> | ||
626 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
627 | </quantifiedVariables> | ||
628 | <quantifiedVariables name="trg 2"> | ||
629 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
630 | </quantifiedVariables> | ||
631 | <expression xsi:type="language_1:Impl"> | ||
632 | <leftOperand xsi:type="language_1:And"> | ||
633 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
634 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
635 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> | ||
636 | </operands> | ||
637 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
638 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
639 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> | ||
640 | </operands> | ||
641 | </leftOperand> | ||
642 | <rightOperand xsi:type="language_1:Not"> | ||
643 | <operand xsi:type="language_1:Distinct"> | ||
644 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> | ||
645 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> | ||
646 | </operand> | ||
647 | </rightOperand> | ||
648 | </expression> | ||
649 | </value> | ||
650 | </assertions> | ||
651 | <assertions name="lowerMultiplicity source DirectedCommunicationLink" annotations="//@annotations.8"> | ||
652 | <value xsi:type="language_1:Forall"> | ||
653 | <quantifiedVariables name="src"> | ||
654 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
655 | </quantifiedVariables> | ||
656 | <expression xsi:type="language_1:Exists"> | ||
657 | <quantifiedVariables name="trg 1"> | ||
658 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
659 | </quantifiedVariables> | ||
660 | <expression xsi:type="language_1:And"> | ||
661 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
662 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
663 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@expression/@quantifiedVariables.0"/> | ||
664 | </operands> | ||
665 | </expression> | ||
666 | </expression> | ||
667 | </value> | ||
668 | </assertions> | ||
669 | <assertions name="upperMultiplicity source DirectedCommunicationLink" annotations="//@annotations.9"> | ||
670 | <value xsi:type="language_1:Forall"> | ||
671 | <quantifiedVariables name="src"> | ||
672 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
673 | </quantifiedVariables> | ||
674 | <quantifiedVariables name="trg 1"> | ||
675 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
676 | </quantifiedVariables> | ||
677 | <quantifiedVariables name="trg 2"> | ||
678 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
679 | </quantifiedVariables> | ||
680 | <expression xsi:type="language_1:Impl"> | ||
681 | <leftOperand xsi:type="language_1:And"> | ||
682 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
683 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
684 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> | ||
685 | </operands> | ||
686 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
687 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
688 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> | ||
689 | </operands> | ||
690 | </leftOperand> | ||
691 | <rightOperand xsi:type="language_1:Not"> | ||
692 | <operand xsi:type="language_1:Distinct"> | ||
693 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> | ||
694 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> | ||
695 | </operand> | ||
696 | </rightOperand> | ||
697 | </expression> | ||
698 | </value> | ||
699 | </assertions> | ||
700 | <assertions name="lowerMultiplicity target DirectedCommunicationLink" annotations="//@annotations.10"> | ||
701 | <value xsi:type="language_1:Forall"> | ||
702 | <quantifiedVariables name="src"> | ||
703 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
704 | </quantifiedVariables> | ||
705 | <expression xsi:type="language_1:Exists"> | ||
706 | <quantifiedVariables name="trg 1"> | ||
707 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
708 | </quantifiedVariables> | ||
709 | <expression xsi:type="language_1:And"> | ||
710 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
711 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
712 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@expression/@quantifiedVariables.0"/> | ||
713 | </operands> | ||
714 | </expression> | ||
715 | </expression> | ||
716 | </value> | ||
717 | </assertions> | ||
718 | <assertions name="upperMultiplicity target DirectedCommunicationLink" annotations="//@annotations.11"> | ||
719 | <value xsi:type="language_1:Forall"> | ||
720 | <quantifiedVariables name="src"> | ||
721 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
722 | </quantifiedVariables> | ||
723 | <quantifiedVariables name="trg 1"> | ||
724 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
725 | </quantifiedVariables> | ||
726 | <quantifiedVariables name="trg 2"> | ||
727 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
728 | </quantifiedVariables> | ||
729 | <expression xsi:type="language_1:Impl"> | ||
730 | <leftOperand xsi:type="language_1:And"> | ||
731 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
732 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
733 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/> | ||
734 | </operands> | ||
735 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
736 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
737 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/> | ||
738 | </operands> | ||
739 | </leftOperand> | ||
740 | <rightOperand xsi:type="language_1:Not"> | ||
741 | <operand xsi:type="language_1:Distinct"> | ||
742 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/> | ||
743 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/> | ||
744 | </operand> | ||
745 | </rightOperand> | ||
746 | </expression> | ||
747 | </value> | ||
748 | </assertions> | ||
749 | <assertions name="lowerMultiplicity kind Spacecraft" annotations="//@annotations.12"> | ||
750 | <value xsi:type="language_1:Forall"> | ||
751 | <quantifiedVariables name="src"> | ||
752 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
753 | </quantifiedVariables> | ||
754 | <expression xsi:type="language_1:Exists"> | ||
755 | <quantifiedVariables name="trg 1"> | ||
756 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
757 | </quantifiedVariables> | ||
758 | <expression xsi:type="language_1:And"> | ||
759 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
760 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
761 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@expression/@quantifiedVariables.0"/> | ||
762 | </operands> | ||
763 | </expression> | ||
764 | </expression> | ||
765 | </value> | ||
766 | </assertions> | ||
767 | <assertions name="upperMultiplicity kind Spacecraft" annotations="//@annotations.13"> | ||
768 | <value xsi:type="language_1:Forall"> | ||
769 | <quantifiedVariables name="src"> | ||
770 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
771 | </quantifiedVariables> | ||
772 | <quantifiedVariables name="trg 1"> | ||
773 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
774 | </quantifiedVariables> | ||
775 | <quantifiedVariables name="trg 2"> | ||
776 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
777 | </quantifiedVariables> | ||
778 | <expression xsi:type="language_1:Impl"> | ||
779 | <leftOperand xsi:type="language_1:And"> | ||
780 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
781 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
782 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/> | ||
783 | </operands> | ||
784 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
785 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
786 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/> | ||
787 | </operands> | ||
788 | </leftOperand> | ||
789 | <rightOperand xsi:type="language_1:Not"> | ||
790 | <operand xsi:type="language_1:Distinct"> | ||
791 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/> | ||
792 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/> | ||
793 | </operand> | ||
794 | </rightOperand> | ||
795 | </expression> | ||
796 | </value> | ||
797 | </assertions> | ||
798 | <assertions name="lowerMultiplicity band CommSubsystem" annotations="//@annotations.14"> | ||
799 | <value xsi:type="language_1:Forall"> | ||
800 | <quantifiedVariables name="src"> | ||
801 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
802 | </quantifiedVariables> | ||
803 | <expression xsi:type="language_1:Exists"> | ||
804 | <quantifiedVariables name="trg 1"> | ||
805 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
806 | </quantifiedVariables> | ||
807 | <expression xsi:type="language_1:And"> | ||
808 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
809 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
810 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@expression/@quantifiedVariables.0"/> | ||
811 | </operands> | ||
812 | </expression> | ||
813 | </expression> | ||
814 | </value> | ||
815 | </assertions> | ||
816 | <assertions name="upperMultiplicity band CommSubsystem" annotations="//@annotations.15"> | ||
817 | <value xsi:type="language_1:Forall"> | ||
818 | <quantifiedVariables name="src"> | ||
819 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
820 | </quantifiedVariables> | ||
821 | <quantifiedVariables name="trg 1"> | ||
822 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
823 | </quantifiedVariables> | ||
824 | <quantifiedVariables name="trg 2"> | ||
825 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
826 | </quantifiedVariables> | ||
827 | <expression xsi:type="language_1:Impl"> | ||
828 | <leftOperand xsi:type="language_1:And"> | ||
829 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
830 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
831 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
832 | </operands> | ||
833 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
834 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
835 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/> | ||
836 | </operands> | ||
837 | </leftOperand> | ||
838 | <rightOperand xsi:type="language_1:Not"> | ||
839 | <operand xsi:type="language_1:Distinct"> | ||
840 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
841 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/> | ||
842 | </operand> | ||
843 | </rightOperand> | ||
844 | </expression> | ||
845 | </value> | ||
846 | </assertions> | ||
847 | <assertions name="lowerMultiplicity gain CommSubsystem" annotations="//@annotations.16"> | ||
848 | <value xsi:type="language_1:Forall"> | ||
849 | <quantifiedVariables name="src"> | ||
850 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
851 | </quantifiedVariables> | ||
852 | <expression xsi:type="language_1:Exists"> | ||
853 | <quantifiedVariables name="trg 1"> | ||
854 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
855 | </quantifiedVariables> | ||
856 | <expression xsi:type="language_1:And"> | ||
857 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
858 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
859 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@expression/@quantifiedVariables.0"/> | ||
860 | </operands> | ||
861 | </expression> | ||
862 | </expression> | ||
863 | </value> | ||
864 | </assertions> | ||
865 | <assertions name="upperMultiplicity gain CommSubsystem" annotations="//@annotations.17"> | ||
866 | <value xsi:type="language_1:Forall"> | ||
867 | <quantifiedVariables name="src"> | ||
868 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
869 | </quantifiedVariables> | ||
870 | <quantifiedVariables name="trg 1"> | ||
871 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
872 | </quantifiedVariables> | ||
873 | <quantifiedVariables name="trg 2"> | ||
874 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
875 | </quantifiedVariables> | ||
876 | <expression xsi:type="language_1:Impl"> | ||
877 | <leftOperand xsi:type="language_1:And"> | ||
878 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
879 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
880 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
881 | </operands> | ||
882 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
883 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
884 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/> | ||
885 | </operands> | ||
886 | </leftOperand> | ||
887 | <rightOperand xsi:type="language_1:Not"> | ||
888 | <operand xsi:type="language_1:Distinct"> | ||
889 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
890 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/> | ||
891 | </operand> | ||
892 | </rightOperand> | ||
893 | </expression> | ||
894 | </value> | ||
895 | </assertions> | ||
896 | <assertions name="PartialInterpretation groundStationNetwork reference ConstellationMission" annotations="//@annotations.18"> | ||
897 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
898 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.9"/> | ||
899 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.10"/> | ||
900 | </value> | ||
901 | </assertions> | ||
902 | <assertions name="PartialInterpretation commSubsystem reference CommunicatingElement" annotations="//@annotations.19"> | ||
903 | <value xsi:type="language_1:And"> | ||
904 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
905 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.10"/> | ||
906 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.11"/> | ||
907 | </operands> | ||
908 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
909 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.10"/> | ||
910 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.12"/> | ||
911 | </operands> | ||
912 | </value> | ||
913 | </assertions> | ||
914 | <assertions name="PartialInterpretation band attribute CommSubsystem" annotations="//@annotations.20"> | ||
915 | <value xsi:type="language_1:And"> | ||
916 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
917 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.11"/> | ||
918 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/> | ||
919 | </operands> | ||
920 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
921 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.12"/> | ||
922 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/> | ||
923 | </operands> | ||
924 | </value> | ||
925 | </assertions> | ||
926 | <assertions name="PartialInterpretation gain attribute CommSubsystem" annotations="//@annotations.21"> | ||
927 | <value xsi:type="language_1:And"> | ||
928 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
929 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.11"/> | ||
930 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/> | ||
931 | </operands> | ||
932 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
933 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.12"/> | ||
934 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/> | ||
935 | </operands> | ||
936 | </value> | ||
937 | </assertions> | ||
938 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.50"> | ||
939 | <value xsi:type="language_1:Forall"> | ||
940 | <quantifiedVariables name="p0"> | ||
941 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
942 | </quantifiedVariables> | ||
943 | <expression xsi:type="language_1:Not"> | ||
944 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
945 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> | ||
946 | </operand> | ||
947 | </expression> | ||
948 | </value> | ||
949 | </assertions> | ||
950 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.51"> | ||
951 | <value xsi:type="language_1:Forall"> | ||
952 | <quantifiedVariables name="p0"> | ||
953 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
954 | </quantifiedVariables> | ||
955 | <expression xsi:type="language_1:Not"> | ||
956 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
957 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> | ||
958 | </operand> | ||
959 | </expression> | ||
960 | </value> | ||
961 | </assertions> | ||
962 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.52"> | ||
963 | <value xsi:type="language_1:Forall"> | ||
964 | <quantifiedVariables name="p0"> | ||
965 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
966 | </quantifiedVariables> | ||
967 | <expression xsi:type="language_1:Not"> | ||
968 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> | ||
969 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> | ||
970 | </operand> | ||
971 | </expression> | ||
972 | </value> | ||
973 | </assertions> | ||
974 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation" annotations="//@annotations.53"> | ||
975 | <value xsi:type="language_1:Forall"> | ||
976 | <quantifiedVariables name="p0"> | ||
977 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
978 | </quantifiedVariables> | ||
979 | <expression xsi:type="language_1:Not"> | ||
980 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
981 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> | ||
982 | </operand> | ||
983 | </expression> | ||
984 | </value> | ||
985 | </assertions> | ||
986 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.54"> | ||
987 | <value xsi:type="language_1:Forall"> | ||
988 | <quantifiedVariables name="p0"> | ||
989 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
990 | </quantifiedVariables> | ||
991 | <expression xsi:type="language_1:Not"> | ||
992 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20"> | ||
993 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> | ||
994 | </operand> | ||
995 | </expression> | ||
996 | </value> | ||
997 | </assertions> | ||
998 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.55"> | ||
999 | <value xsi:type="language_1:Forall"> | ||
1000 | <quantifiedVariables name="p0"> | ||
1001 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1002 | </quantifiedVariables> | ||
1003 | <expression xsi:type="language_1:Not"> | ||
1004 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> | ||
1005 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/> | ||
1006 | </operand> | ||
1007 | </expression> | ||
1008 | </value> | ||
1009 | </assertions> | ||
1010 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.56"> | ||
1011 | <value xsi:type="language_1:Forall"> | ||
1012 | <quantifiedVariables name="p0"> | ||
1013 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1014 | </quantifiedVariables> | ||
1015 | <expression xsi:type="language_1:Not"> | ||
1016 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25"> | ||
1017 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/> | ||
1018 | </operand> | ||
1019 | </expression> | ||
1020 | </value> | ||
1021 | </assertions> | ||
1022 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.57"> | ||
1023 | <value xsi:type="language_1:Forall"> | ||
1024 | <quantifiedVariables name="p0"> | ||
1025 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1026 | </quantifiedVariables> | ||
1027 | <expression xsi:type="language_1:Not"> | ||
1028 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27"> | ||
1029 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/> | ||
1030 | </operand> | ||
1031 | </expression> | ||
1032 | </value> | ||
1033 | </assertions> | ||
1034 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.58"> | ||
1035 | <value xsi:type="language_1:Forall"> | ||
1036 | <quantifiedVariables name="p0"> | ||
1037 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1038 | </quantifiedVariables> | ||
1039 | <expression xsi:type="language_1:Not"> | ||
1040 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29"> | ||
1041 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.0"/> | ||
1042 | </operand> | ||
1043 | </expression> | ||
1044 | </value> | ||
1045 | </assertions> | ||
1046 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.59"> | ||
1047 | <value xsi:type="language_1:Forall"> | ||
1048 | <quantifiedVariables name="p0"> | ||
1049 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1050 | </quantifiedVariables> | ||
1051 | <expression xsi:type="language_1:Not"> | ||
1052 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31"> | ||
1053 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.0"/> | ||
1054 | </operand> | ||
1055 | </expression> | ||
1056 | </value> | ||
1057 | </assertions> | ||
1058 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.60"> | ||
1059 | <value xsi:type="language_1:Forall"> | ||
1060 | <quantifiedVariables name="p0"> | ||
1061 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1062 | </quantifiedVariables> | ||
1063 | <expression xsi:type="language_1:Not"> | ||
1064 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> | ||
1065 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.0"/> | ||
1066 | </operand> | ||
1067 | </expression> | ||
1068 | </value> | ||
1069 | </assertions> | ||
1070 | <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.61"> | ||
1071 | <value xsi:type="language_1:Forall"> | ||
1072 | <quantifiedVariables name="p0"> | ||
1073 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1074 | </quantifiedVariables> | ||
1075 | <expression xsi:type="language_1:Not"> | ||
1076 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35"> | ||
1077 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.0"/> | ||
1078 | </operand> | ||
1079 | </expression> | ||
1080 | </value> | ||
1081 | </assertions> | ||
1082 | <relations xsi:type="language_1:RelationDeclaration" name="groundStationNetwork reference ConstellationMission"> | ||
1083 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1084 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1085 | </relations> | ||
1086 | <relations xsi:type="language_1:RelationDeclaration" name="spacecraft reference ConstellationMission"> | ||
1087 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1088 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1089 | </relations> | ||
1090 | <relations xsi:type="language_1:RelationDeclaration" name="commSubsystem reference CommunicatingElement"> | ||
1091 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1092 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1093 | </relations> | ||
1094 | <relations xsi:type="language_1:RelationDeclaration" name="communicationLink reference CommunicatingElement"> | ||
1095 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1096 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1097 | </relations> | ||
1098 | <relations xsi:type="language_1:RelationDeclaration" name="payload reference Spacecraft"> | ||
1099 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1100 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
1101 | </relations> | ||
1102 | <relations xsi:type="language_1:RelationDeclaration" name="source reference DirectedCommunicationLink"> | ||
1103 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1104 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1105 | </relations> | ||
1106 | <relations xsi:type="language_1:RelationDeclaration" name="target reference DirectedCommunicationLink"> | ||
1107 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1108 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1109 | </relations> | ||
1110 | <relations xsi:type="language_1:RelationDeclaration" name="kind attribute Spacecraft" annotations="//@annotations.62"> | ||
1111 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1112 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1113 | </relations> | ||
1114 | <relations xsi:type="language_1:RelationDeclaration" name="band attribute CommSubsystem"> | ||
1115 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1116 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1117 | </relations> | ||
1118 | <relations xsi:type="language_1:RelationDeclaration" name="gain attribute CommSubsystem"> | ||
1119 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1120 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1121 | </relations> | ||
1122 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.22"> | ||
1123 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1124 | <variables name="parameter Link"> | ||
1125 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1126 | </variables> | ||
1127 | <value xsi:type="language_1:Or"> | ||
1128 | <operands xsi:type="language_1:Exists"> | ||
1129 | <quantifiedVariables name="variable Element"> | ||
1130 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1131 | </quantifiedVariables> | ||
1132 | <quantifiedVariables name="variable SourceComm"> | ||
1133 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1134 | </quantifiedVariables> | ||
1135 | <quantifiedVariables name="variable SourceElement"> | ||
1136 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1137 | </quantifiedVariables> | ||
1138 | <expression xsi:type="language_1:And"> | ||
1139 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
1140 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.0"/> | ||
1141 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/> | ||
1142 | </operands> | ||
1143 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
1144 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/> | ||
1145 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/> | ||
1146 | </operands> | ||
1147 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1148 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.2"/> | ||
1149 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/> | ||
1150 | </operands> | ||
1151 | <operands xsi:type="language_1:InstanceOf"> | ||
1152 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/> | ||
1153 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1154 | </operands> | ||
1155 | <operands xsi:type="language_1:Distinct"> | ||
1156 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.0"/> | ||
1157 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.2"/> | ||
1158 | </operands> | ||
1159 | </expression> | ||
1160 | </operands> | ||
1161 | </value> | ||
1162 | </relations> | ||
1163 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.23"> | ||
1164 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1165 | <variables name="parameter Mission"> | ||
1166 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1167 | </variables> | ||
1168 | <value xsi:type="language_1:Or"> | ||
1169 | <operands xsi:type="language_1:And"> | ||
1170 | <operands xsi:type="language_1:InstanceOf"> | ||
1171 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/> | ||
1172 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1173 | </operands> | ||
1174 | <operands xsi:type="language_1:Not"> | ||
1175 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
1176 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/> | ||
1177 | </operand> | ||
1178 | </operands> | ||
1179 | </operands> | ||
1180 | </value> | ||
1181 | </relations> | ||
1182 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads" annotations="//@annotations.24"> | ||
1183 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1184 | <variables name="parameter Mission"> | ||
1185 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1186 | </variables> | ||
1187 | <value xsi:type="language_1:Or"> | ||
1188 | <operands xsi:type="language_1:Exists"> | ||
1189 | <quantifiedVariables name="variable Spacecraft1"> | ||
1190 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1191 | </quantifiedVariables> | ||
1192 | <quantifiedVariables name="variable Spacecraft2"> | ||
1193 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1194 | </quantifiedVariables> | ||
1195 | <expression xsi:type="language_1:And"> | ||
1196 | <operands xsi:type="language_1:InstanceOf"> | ||
1197 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/> | ||
1198 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
1199 | </operands> | ||
1200 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
1201 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/> | ||
1202 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/> | ||
1203 | </operands> | ||
1204 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
1205 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/> | ||
1206 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.1"/> | ||
1207 | </operands> | ||
1208 | <operands xsi:type="language_1:Distinct"> | ||
1209 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.0"/> | ||
1210 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@value/@operands.0/@quantifiedVariables.1"/> | ||
1211 | </operands> | ||
1212 | </expression> | ||
1213 | </operands> | ||
1214 | </value> | ||
1215 | </relations> | ||
1216 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload" annotations="//@annotations.25"> | ||
1217 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1218 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1219 | <variables name="parameter Mission"> | ||
1220 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1221 | </variables> | ||
1222 | <variables name="parameter Spacecraft"> | ||
1223 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1224 | </variables> | ||
1225 | <value xsi:type="language_1:Or"> | ||
1226 | <operands xsi:type="language_1:Exists"> | ||
1227 | <quantifiedVariables name="variable Payload"> | ||
1228 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
1229 | </quantifiedVariables> | ||
1230 | <expression xsi:type="language_1:And"> | ||
1231 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
1232 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/> | ||
1233 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/> | ||
1234 | </operands> | ||
1235 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
1236 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/> | ||
1237 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/> | ||
1238 | </operands> | ||
1239 | <operands xsi:type="language_1:InstanceOf"> | ||
1240 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@value/@operands.0/@quantifiedVariables.0"/> | ||
1241 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
1242 | </operands> | ||
1243 | </expression> | ||
1244 | </operands> | ||
1245 | </value> | ||
1246 | </relations> | ||
1247 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.26"> | ||
1248 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1249 | <variables name="parameter Spacecraft"> | ||
1250 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1251 | </variables> | ||
1252 | <value xsi:type="language_1:Or"> | ||
1253 | <operands xsi:type="language_1:Exists"> | ||
1254 | <quantifiedVariables name="variable Mission"> | ||
1255 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1256 | </quantifiedVariables> | ||
1257 | <quantifiedVariables name="variable GroundStation"> | ||
1258 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1259 | </quantifiedVariables> | ||
1260 | <expression xsi:type="language_1:And"> | ||
1261 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
1262 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.0"/> | ||
1263 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/> | ||
1264 | </operands> | ||
1265 | <operands xsi:type="language_1:InstanceOf"> | ||
1266 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/> | ||
1267 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1268 | </operands> | ||
1269 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
1270 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.0"/> | ||
1271 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/> | ||
1272 | </operands> | ||
1273 | <operands xsi:type="language_1:InstanceOf"> | ||
1274 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/> | ||
1275 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1276 | </operands> | ||
1277 | <operands xsi:type="language_1:Not"> | ||
1278 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> | ||
1279 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/> | ||
1280 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/> | ||
1281 | </operand> | ||
1282 | </operands> | ||
1283 | </expression> | ||
1284 | </operands> | ||
1285 | </value> | ||
1286 | </relations> | ||
1287 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation" annotations="//@annotations.27"> | ||
1288 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1289 | <variables name="parameter Spacecraft"> | ||
1290 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1291 | </variables> | ||
1292 | <value xsi:type="language_1:Or"> | ||
1293 | <operands xsi:type="language_1:Exists"> | ||
1294 | <quantifiedVariables name="variable Mission"> | ||
1295 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
1296 | </quantifiedVariables> | ||
1297 | <quantifiedVariables name="variable GroundStation"> | ||
1298 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1299 | </quantifiedVariables> | ||
1300 | <expression xsi:type="language_1:And"> | ||
1301 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
1302 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/> | ||
1303 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.1"/> | ||
1304 | </operands> | ||
1305 | <operands xsi:type="language_1:InstanceOf"> | ||
1306 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.1"/> | ||
1307 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1308 | </operands> | ||
1309 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
1310 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/> | ||
1311 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/> | ||
1312 | </operands> | ||
1313 | <operands xsi:type="language_1:InstanceOf"> | ||
1314 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/> | ||
1315 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1316 | </operands> | ||
1317 | <operands xsi:type="language_1:Not"> | ||
1318 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16"> | ||
1319 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/> | ||
1320 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.1"/> | ||
1321 | </operand> | ||
1322 | </operands> | ||
1323 | </expression> | ||
1324 | </operands> | ||
1325 | </value> | ||
1326 | </relations> | ||
1327 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed" annotations="//@annotations.28"> | ||
1328 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1329 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1330 | <variables name="parameter From"> | ||
1331 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1332 | </variables> | ||
1333 | <variables name="parameter To"> | ||
1334 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1335 | </variables> | ||
1336 | <value xsi:type="language_1:Or"> | ||
1337 | <operands xsi:type="language_1:And"> | ||
1338 | <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.17"/> | ||
1339 | </operands> | ||
1340 | </value> | ||
1341 | </relations> | ||
1342 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed" annotations="//@annotations.29"> | ||
1343 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1344 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1345 | <variables name="parameter From"> | ||
1346 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1347 | </variables> | ||
1348 | <variables name="parameter To"> | ||
1349 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1350 | </variables> | ||
1351 | <value xsi:type="language_1:Or"> | ||
1352 | <operands xsi:type="language_1:Exists"> | ||
1353 | <quantifiedVariables name="variable 0"> | ||
1354 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1355 | </quantifiedVariables> | ||
1356 | <expression xsi:type="language_1:And"> | ||
1357 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
1358 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> | ||
1359 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/> | ||
1360 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/> | ||
1361 | </operands> | ||
1362 | <operands xsi:type="language_1:Not"> | ||
1363 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
1364 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> | ||
1365 | </operand> | ||
1366 | </operands> | ||
1367 | </expression> | ||
1368 | </operands> | ||
1369 | <operands xsi:type="language_1:Exists"> | ||
1370 | <quantifiedVariables name="variable virtual0"> | ||
1371 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1372 | </quantifiedVariables> | ||
1373 | <expression xsi:type="language_1:And"> | ||
1374 | <operands xsi:type="language_1:Equals"> | ||
1375 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.1/@quantifiedVariables.0"/> | ||
1376 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> | ||
1377 | </operands> | ||
1378 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
1379 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> | ||
1380 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/> | ||
1381 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.1/@quantifiedVariables.0"/> | ||
1382 | </operands> | ||
1383 | <operands xsi:type="language_1:InstanceOf"> | ||
1384 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> | ||
1385 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1386 | </operands> | ||
1387 | </expression> | ||
1388 | </operands> | ||
1389 | <operands xsi:type="language_1:Exists"> | ||
1390 | <quantifiedVariables name="variable 0"> | ||
1391 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1392 | </quantifiedVariables> | ||
1393 | <expression xsi:type="language_1:And"> | ||
1394 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
1395 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> | ||
1396 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/> | ||
1397 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.2/@quantifiedVariables.0"/> | ||
1398 | </operands> | ||
1399 | <operands xsi:type="language_1:InstanceOf"> | ||
1400 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/> | ||
1401 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1402 | </operands> | ||
1403 | <operands xsi:type="language_1:InstanceOf"> | ||
1404 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/> | ||
1405 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1406 | </operands> | ||
1407 | </expression> | ||
1408 | </operands> | ||
1409 | </value> | ||
1410 | </relations> | ||
1411 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna" annotations="//@annotations.30"> | ||
1412 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1413 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1414 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1415 | <variables name="parameter From"> | ||
1416 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1417 | </variables> | ||
1418 | <variables name="parameter To"> | ||
1419 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1420 | </variables> | ||
1421 | <variables name="parameter Band"> | ||
1422 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1423 | </variables> | ||
1424 | <value xsi:type="language_1:Or"> | ||
1425 | <operands xsi:type="language_1:Exists"> | ||
1426 | <quantifiedVariables name="variable Gain"> | ||
1427 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1428 | </quantifiedVariables> | ||
1429 | <quantifiedVariables name="variable virtual0"> | ||
1430 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1431 | </quantifiedVariables> | ||
1432 | <quantifiedVariables name="variable virtual2"> | ||
1433 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1434 | </quantifiedVariables> | ||
1435 | <quantifiedVariables name="variable virtual4"> | ||
1436 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1437 | </quantifiedVariables> | ||
1438 | <quantifiedVariables name="variable virtual6"> | ||
1439 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1440 | </quantifiedVariables> | ||
1441 | <expression xsi:type="language_1:And"> | ||
1442 | <operands xsi:type="language_1:InstanceOf"> | ||
1443 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/> | ||
1444 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1445 | </operands> | ||
1446 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1447 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/> | ||
1448 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.1"/> | ||
1449 | </operands> | ||
1450 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1451 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.1"/> | ||
1452 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/> | ||
1453 | </operands> | ||
1454 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1455 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/> | ||
1456 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.2"/> | ||
1457 | </operands> | ||
1458 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1459 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.2"/> | ||
1460 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/> | ||
1461 | </operands> | ||
1462 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1463 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/> | ||
1464 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.3"/> | ||
1465 | </operands> | ||
1466 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1467 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.3"/> | ||
1468 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/> | ||
1469 | </operands> | ||
1470 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1471 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/> | ||
1472 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.4"/> | ||
1473 | </operands> | ||
1474 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1475 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.4"/> | ||
1476 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/> | ||
1477 | </operands> | ||
1478 | </expression> | ||
1479 | </operands> | ||
1480 | </value> | ||
1481 | </relations> | ||
1482 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U" annotations="//@annotations.31"> | ||
1483 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1484 | <variables name="parameter Sat"> | ||
1485 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1486 | </variables> | ||
1487 | <value xsi:type="language_1:Or"> | ||
1488 | <operands xsi:type="language_1:And"> | ||
1489 | <operands xsi:type="language_1:InstanceOf"> | ||
1490 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/> | ||
1491 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1492 | </operands> | ||
1493 | </operands> | ||
1494 | </value> | ||
1495 | </relations> | ||
1496 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.32"> | ||
1497 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1498 | <variables name="parameter Element"> | ||
1499 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1500 | </variables> | ||
1501 | <value xsi:type="language_1:Or"> | ||
1502 | <operands xsi:type="language_1:And"> | ||
1503 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> | ||
1504 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/> | ||
1505 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/> | ||
1506 | </operands> | ||
1507 | </operands> | ||
1508 | </value> | ||
1509 | </relations> | ||
1510 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink" annotations="//@annotations.33"> | ||
1511 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1512 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1513 | <variables name="parameter Source"> | ||
1514 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1515 | </variables> | ||
1516 | <variables name="parameter Target"> | ||
1517 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1518 | </variables> | ||
1519 | <value xsi:type="language_1:Or"> | ||
1520 | <operands xsi:type="language_1:And"> | ||
1521 | <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.22"/> | ||
1522 | </operands> | ||
1523 | </value> | ||
1524 | </relations> | ||
1525 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink" annotations="//@annotations.34"> | ||
1526 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1527 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1528 | <variables name="parameter Source"> | ||
1529 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1530 | </variables> | ||
1531 | <variables name="parameter Target"> | ||
1532 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1533 | </variables> | ||
1534 | <value xsi:type="language_1:Or"> | ||
1535 | <operands xsi:type="language_1:Exists"> | ||
1536 | <quantifiedVariables name="variable Link"> | ||
1537 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1538 | </quantifiedVariables> | ||
1539 | <quantifiedVariables name="variable SourceSubsystem"> | ||
1540 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1541 | </quantifiedVariables> | ||
1542 | <quantifiedVariables name="variable TargetSubsystem"> | ||
1543 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1544 | </quantifiedVariables> | ||
1545 | <expression xsi:type="language_1:And"> | ||
1546 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
1547 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> | ||
1548 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/> | ||
1549 | </operands> | ||
1550 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
1551 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> | ||
1552 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/> | ||
1553 | </operands> | ||
1554 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1555 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> | ||
1556 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/> | ||
1557 | </operands> | ||
1558 | <operands xsi:type="language_1:InstanceOf"> | ||
1559 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/> | ||
1560 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1561 | </operands> | ||
1562 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1563 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/> | ||
1564 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/> | ||
1565 | </operands> | ||
1566 | <operands xsi:type="language_1:InstanceOf"> | ||
1567 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/> | ||
1568 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1569 | </operands> | ||
1570 | </expression> | ||
1571 | </operands> | ||
1572 | </value> | ||
1573 | </relations> | ||
1574 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.35"> | ||
1575 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1576 | <variables name="parameter Link"> | ||
1577 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1578 | </variables> | ||
1579 | <value xsi:type="language_1:Or"> | ||
1580 | <operands xsi:type="language_1:Exists"> | ||
1581 | <quantifiedVariables name="variable SourceSubsystem"> | ||
1582 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1583 | </quantifiedVariables> | ||
1584 | <quantifiedVariables name="variable TargetSubsystem"> | ||
1585 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1586 | </quantifiedVariables> | ||
1587 | <quantifiedVariables name="variable Band"> | ||
1588 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1589 | </quantifiedVariables> | ||
1590 | <expression xsi:type="language_1:And"> | ||
1591 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
1592 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> | ||
1593 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/> | ||
1594 | </operands> | ||
1595 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
1596 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> | ||
1597 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.1"/> | ||
1598 | </operands> | ||
1599 | <operands xsi:type="language_1:InstanceOf"> | ||
1600 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.1"/> | ||
1601 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1602 | </operands> | ||
1603 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1604 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/> | ||
1605 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.2"/> | ||
1606 | </operands> | ||
1607 | <operands xsi:type="language_1:Not"> | ||
1608 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> | ||
1609 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.1"/> | ||
1610 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.2"/> | ||
1611 | </operand> | ||
1612 | </operands> | ||
1613 | </expression> | ||
1614 | </operands> | ||
1615 | </value> | ||
1616 | </relations> | ||
1617 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBand" annotations="//@annotations.36"> | ||
1618 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1619 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1620 | <variables name="parameter Comm"> | ||
1621 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1622 | </variables> | ||
1623 | <variables name="parameter Band"> | ||
1624 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1625 | </variables> | ||
1626 | <value xsi:type="language_1:Or"> | ||
1627 | <operands xsi:type="language_1:And"> | ||
1628 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1629 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/> | ||
1630 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/> | ||
1631 | </operands> | ||
1632 | </operands> | ||
1633 | </value> | ||
1634 | </relations> | ||
1635 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetGain" annotations="//@annotations.37"> | ||
1636 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1637 | <variables name="parameter Link"> | ||
1638 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1639 | </variables> | ||
1640 | <value xsi:type="language_1:Or"> | ||
1641 | <operands xsi:type="language_1:Exists"> | ||
1642 | <quantifiedVariables name="variable SourceSubsystem"> | ||
1643 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1644 | </quantifiedVariables> | ||
1645 | <quantifiedVariables name="variable TargetSubsystem"> | ||
1646 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1647 | </quantifiedVariables> | ||
1648 | <quantifiedVariables name="variable Gain"> | ||
1649 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1650 | </quantifiedVariables> | ||
1651 | <expression xsi:type="language_1:And"> | ||
1652 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
1653 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> | ||
1654 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/> | ||
1655 | </operands> | ||
1656 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
1657 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> | ||
1658 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/> | ||
1659 | </operands> | ||
1660 | <operands xsi:type="language_1:InstanceOf"> | ||
1661 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/> | ||
1662 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1663 | </operands> | ||
1664 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1665 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/> | ||
1666 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.2"/> | ||
1667 | </operands> | ||
1668 | <operands xsi:type="language_1:Not"> | ||
1669 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26"> | ||
1670 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.1"/> | ||
1671 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.2"/> | ||
1672 | </operand> | ||
1673 | </operands> | ||
1674 | </expression> | ||
1675 | </operands> | ||
1676 | </value> | ||
1677 | </relations> | ||
1678 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGain" annotations="//@annotations.38"> | ||
1679 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1680 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1681 | <variables name="parameter Comm"> | ||
1682 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1683 | </variables> | ||
1684 | <variables name="parameter Gain"> | ||
1685 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1686 | </variables> | ||
1687 | <value xsi:type="language_1:Or"> | ||
1688 | <operands xsi:type="language_1:And"> | ||
1689 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1690 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/> | ||
1691 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.1"/> | ||
1692 | </operands> | ||
1693 | </operands> | ||
1694 | </value> | ||
1695 | </relations> | ||
1696 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries uhfAntennaGainNotLow" annotations="//@annotations.39"> | ||
1697 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1698 | <variables name="parameter Comm"> | ||
1699 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1700 | </variables> | ||
1701 | <value xsi:type="language_1:Or"> | ||
1702 | <operands xsi:type="language_1:Exists"> | ||
1703 | <quantifiedVariables name="variable virtual0"> | ||
1704 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1705 | </quantifiedVariables> | ||
1706 | <expression xsi:type="language_1:And"> | ||
1707 | <operands xsi:type="language_1:Equals"> | ||
1708 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/> | ||
1709 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> | ||
1710 | </operands> | ||
1711 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1712 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/> | ||
1713 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/> | ||
1714 | </operands> | ||
1715 | <operands xsi:type="language_1:Not"> | ||
1716 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28"> | ||
1717 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/> | ||
1718 | </operand> | ||
1719 | </operands> | ||
1720 | </expression> | ||
1721 | </operands> | ||
1722 | </value> | ||
1723 | </relations> | ||
1724 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainLow" annotations="//@annotations.40"> | ||
1725 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1726 | <variables name="parameter Comm"> | ||
1727 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1728 | </variables> | ||
1729 | <value xsi:type="language_1:Or"> | ||
1730 | <operands xsi:type="language_1:Exists"> | ||
1731 | <quantifiedVariables name="variable virtual0"> | ||
1732 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1733 | </quantifiedVariables> | ||
1734 | <expression xsi:type="language_1:And"> | ||
1735 | <operands xsi:type="language_1:Equals"> | ||
1736 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/> | ||
1737 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/> | ||
1738 | </operands> | ||
1739 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1740 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/> | ||
1741 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/> | ||
1742 | </operands> | ||
1743 | </expression> | ||
1744 | </operands> | ||
1745 | </value> | ||
1746 | </relations> | ||
1747 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries xAntennaGainNotMedium" annotations="//@annotations.41"> | ||
1748 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1749 | <variables name="parameter Comm"> | ||
1750 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1751 | </variables> | ||
1752 | <value xsi:type="language_1:Or"> | ||
1753 | <operands xsi:type="language_1:Exists"> | ||
1754 | <quantifiedVariables name="variable virtual0"> | ||
1755 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1756 | </quantifiedVariables> | ||
1757 | <expression xsi:type="language_1:And"> | ||
1758 | <operands xsi:type="language_1:Equals"> | ||
1759 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/> | ||
1760 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/> | ||
1761 | </operands> | ||
1762 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1763 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/> | ||
1764 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@value/@operands.0/@quantifiedVariables.0"/> | ||
1765 | </operands> | ||
1766 | <operands xsi:type="language_1:Not"> | ||
1767 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30"> | ||
1768 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29/@variables.0"/> | ||
1769 | </operand> | ||
1770 | </operands> | ||
1771 | </expression> | ||
1772 | </operands> | ||
1773 | </value> | ||
1774 | </relations> | ||
1775 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemGainMedium" annotations="//@annotations.42"> | ||
1776 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1777 | <variables name="parameter Comm"> | ||
1778 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1779 | </variables> | ||
1780 | <value xsi:type="language_1:Or"> | ||
1781 | <operands xsi:type="language_1:Exists"> | ||
1782 | <quantifiedVariables name="variable virtual0"> | ||
1783 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1784 | </quantifiedVariables> | ||
1785 | <expression xsi:type="language_1:And"> | ||
1786 | <operands xsi:type="language_1:Equals"> | ||
1787 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@value/@operands.0/@quantifiedVariables.0"/> | ||
1788 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.4"/> | ||
1789 | </operands> | ||
1790 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1791 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@variables.0"/> | ||
1792 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30/@value/@operands.0/@quantifiedVariables.0"/> | ||
1793 | </operands> | ||
1794 | </expression> | ||
1795 | </operands> | ||
1796 | </value> | ||
1797 | </relations> | ||
1798 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries kaAntennaGainLow" annotations="//@annotations.43"> | ||
1799 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1800 | <variables name="parameter Comm"> | ||
1801 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1802 | </variables> | ||
1803 | <value xsi:type="language_1:Or"> | ||
1804 | <operands xsi:type="language_1:Exists"> | ||
1805 | <quantifiedVariables name="variable virtual0"> | ||
1806 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1807 | </quantifiedVariables> | ||
1808 | <quantifiedVariables name="variable virtual2"> | ||
1809 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/> | ||
1810 | </quantifiedVariables> | ||
1811 | <expression xsi:type="language_1:And"> | ||
1812 | <operands xsi:type="language_1:Equals"> | ||
1813 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.0"/> | ||
1814 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/> | ||
1815 | </operands> | ||
1816 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1817 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@variables.0"/> | ||
1818 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.0"/> | ||
1819 | </operands> | ||
1820 | <operands xsi:type="language_1:Equals"> | ||
1821 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.1"/> | ||
1822 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/> | ||
1823 | </operands> | ||
1824 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
1825 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@variables.0"/> | ||
1826 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31/@value/@operands.0/@quantifiedVariables.1"/> | ||
1827 | </operands> | ||
1828 | </expression> | ||
1829 | </operands> | ||
1830 | </value> | ||
1831 | </relations> | ||
1832 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.44"> | ||
1833 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1834 | <variables name="parameter Sat"> | ||
1835 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1836 | </variables> | ||
1837 | <value xsi:type="language_1:Or"> | ||
1838 | <operands xsi:type="language_1:Exists"> | ||
1839 | <quantifiedVariables name="variable SourceComm"> | ||
1840 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1841 | </quantifiedVariables> | ||
1842 | <quantifiedVariables name="variable Link"> | ||
1843 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
1844 | </quantifiedVariables> | ||
1845 | <quantifiedVariables name="variable TargetComm"> | ||
1846 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1847 | </quantifiedVariables> | ||
1848 | <quantifiedVariables name="variable Target"> | ||
1849 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
1850 | </quantifiedVariables> | ||
1851 | <expression xsi:type="language_1:And"> | ||
1852 | <operands xsi:type="language_1:InstanceOf"> | ||
1853 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@variables.0"/> | ||
1854 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1855 | </operands> | ||
1856 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1857 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@variables.0"/> | ||
1858 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/> | ||
1859 | </operands> | ||
1860 | <operands xsi:type="language_1:Not"> | ||
1861 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33"> | ||
1862 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/> | ||
1863 | </operand> | ||
1864 | </operands> | ||
1865 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
1866 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.1"/> | ||
1867 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/> | ||
1868 | </operands> | ||
1869 | <operands xsi:type="language_1:InstanceOf"> | ||
1870 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.0"/> | ||
1871 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1872 | </operands> | ||
1873 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
1874 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.1"/> | ||
1875 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.2"/> | ||
1876 | </operands> | ||
1877 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1878 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.3"/> | ||
1879 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.2"/> | ||
1880 | </operands> | ||
1881 | <operands xsi:type="language_1:InstanceOf"> | ||
1882 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.2"/> | ||
1883 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1884 | </operands> | ||
1885 | <operands xsi:type="language_1:Not"> | ||
1886 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34"> | ||
1887 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32/@value/@operands.0/@quantifiedVariables.3"/> | ||
1888 | </operand> | ||
1889 | </operands> | ||
1890 | </expression> | ||
1891 | </operands> | ||
1892 | </value> | ||
1893 | </relations> | ||
1894 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf" annotations="//@annotations.45"> | ||
1895 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1896 | <variables name="parameter Comm"> | ||
1897 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1898 | </variables> | ||
1899 | <value xsi:type="language_1:Or"> | ||
1900 | <operands xsi:type="language_1:Exists"> | ||
1901 | <quantifiedVariables name="variable virtual0"> | ||
1902 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1903 | </quantifiedVariables> | ||
1904 | <expression xsi:type="language_1:And"> | ||
1905 | <operands xsi:type="language_1:Equals"> | ||
1906 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33/@value/@operands.0/@quantifiedVariables.0"/> | ||
1907 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/> | ||
1908 | </operands> | ||
1909 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1910 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33/@variables.0"/> | ||
1911 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33/@value/@operands.0/@quantifiedVariables.0"/> | ||
1912 | </operands> | ||
1913 | </expression> | ||
1914 | </operands> | ||
1915 | </value> | ||
1916 | </relations> | ||
1917 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork" annotations="//@annotations.46"> | ||
1918 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1919 | <variables name="parameter Network"> | ||
1920 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1921 | </variables> | ||
1922 | <value xsi:type="language_1:Or"> | ||
1923 | <operands xsi:type="language_1:And"> | ||
1924 | <operands xsi:type="language_1:InstanceOf"> | ||
1925 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34/@variables.0"/> | ||
1926 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
1927 | </operands> | ||
1928 | </operands> | ||
1929 | </value> | ||
1930 | </relations> | ||
1931 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.47"> | ||
1932 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1933 | <variables name="parameter Spacecraft"> | ||
1934 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1935 | </variables> | ||
1936 | <value xsi:type="language_1:Or"> | ||
1937 | <operands xsi:type="language_1:Exists"> | ||
1938 | <quantifiedVariables name="variable virtual0"> | ||
1939 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> | ||
1940 | </quantifiedVariables> | ||
1941 | <quantifiedVariables name="variable virtual1"> | ||
1942 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
1943 | </quantifiedVariables> | ||
1944 | <expression xsi:type="language_1:And"> | ||
1945 | <operands xsi:type="language_1:InstanceOf"> | ||
1946 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@variables.0"/> | ||
1947 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1948 | </operands> | ||
1949 | <operands xsi:type="language_1:Equals"> | ||
1950 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.0"/> | ||
1951 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/> | ||
1952 | </operands> | ||
1953 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
1954 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@variables.0"/> | ||
1955 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.1"/> | ||
1956 | </operands> | ||
1957 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
1958 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.1"/> | ||
1959 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@value/@operands.0/@quantifiedVariables.0"/> | ||
1960 | </operands> | ||
1961 | <operands xsi:type="language_1:Not"> | ||
1962 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36"> | ||
1963 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.35/@variables.0"/> | ||
1964 | </operand> | ||
1965 | </operands> | ||
1966 | </expression> | ||
1967 | </operands> | ||
1968 | </value> | ||
1969 | </relations> | ||
1970 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries smallSat" annotations="//@annotations.48"> | ||
1971 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1972 | <variables name="parameter Sat"> | ||
1973 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1974 | </variables> | ||
1975 | <value xsi:type="language_1:Or"> | ||
1976 | <operands xsi:type="language_1:And"> | ||
1977 | <operands xsi:type="language_1:InstanceOf"> | ||
1978 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36/@variables.0"/> | ||
1979 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
1980 | </operands> | ||
1981 | </operands> | ||
1982 | </value> | ||
1983 | </relations> | ||
1984 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftOfKind" annotations="//@annotations.49" defines="//@relations.7"> | ||
1985 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1986 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1987 | <variables name="parameter Spacecraft"> | ||
1988 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
1989 | </variables> | ||
1990 | <variables name="parameter Kind"> | ||
1991 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/> | ||
1992 | </variables> | ||
1993 | <value xsi:type="language_1:Or"> | ||
1994 | <operands xsi:type="language_1:And"> | ||
1995 | <operands xsi:type="language_1:InstanceOf"> | ||
1996 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.0"/> | ||
1997 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
1998 | </operands> | ||
1999 | <operands xsi:type="language_1:Equals"> | ||
2000 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.1"/> | ||
2001 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/> | ||
2002 | </operands> | ||
2003 | </operands> | ||
2004 | <operands xsi:type="language_1:And"> | ||
2005 | <operands xsi:type="language_1:InstanceOf"> | ||
2006 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.0"/> | ||
2007 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> | ||
2008 | </operands> | ||
2009 | <operands xsi:type="language_1:Equals"> | ||
2010 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.1"/> | ||
2011 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.7"/> | ||
2012 | </operands> | ||
2013 | </operands> | ||
2014 | <operands xsi:type="language_1:And"> | ||
2015 | <operands xsi:type="language_1:InstanceOf"> | ||
2016 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.0"/> | ||
2017 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
2018 | </operands> | ||
2019 | <operands xsi:type="language_1:Equals"> | ||
2020 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37/@variables.1"/> | ||
2021 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.8"/> | ||
2022 | </operands> | ||
2023 | </operands> | ||
2024 | </value> | ||
2025 | </relations> | ||
2026 | <elements name="UHF literal TransceiverBand" definedInType="//@types.13"/> | ||
2027 | <elements name="X literal TransceiverBand" definedInType="//@types.13"/> | ||
2028 | <elements name="Ka literal TransceiverBand" definedInType="//@types.13"/> | ||
2029 | <elements name="LOW literal AntennaGain" definedInType="//@types.14"/> | ||
2030 | <elements name="MEDIUM literal AntennaGain" definedInType="//@types.14"/> | ||
2031 | <elements name="HIGH literal AntennaGain" definedInType="//@types.14"/> | ||
2032 | <elements name="CubeSat3U literal SpacecraftKind" definedInType="//@types.15"/> | ||
2033 | <elements name="CubeSat6U literal SpacecraftKind" definedInType="//@types.15"/> | ||
2034 | <elements name="SmallSat literal SpacecraftKind" definedInType="//@types.15"/> | ||
2035 | <elements name="o 1" definedInType="//@types.16 //@types.18"/> | ||
2036 | <elements name="o 2" definedInType="//@types.20 //@types.22"/> | ||
2037 | <elements name="o 3" definedInType="//@types.24"/> | ||
2038 | <elements name="o 4" definedInType="//@types.24"/> | ||
2039 | <containmentHierarchies typesOrderedInHierarchy="//@types.8 //@types.4 //@types.6 //@types.12 //@types.0 //@types.1 //@types.9 //@types.2 //@types.10 //@types.11 //@types.5 //@types.3 //@types.7 //@types.16 //@types.17 //@types.18 //@types.19 //@types.20 //@types.21 //@types.22 //@types.23 //@types.24 //@types.25" containmentRelations="//@relations.0 //@relations.1 //@relations.2 //@relations.3 //@relations.4"/> | ||
2040 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" lower="1"/> | ||
2041 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.0" upper="1"/> | ||
2042 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" lower="2"/> | ||
2043 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.1" upper="50"/> | ||
2044 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.4" relation="//@relations.2" lower="1"/> | ||
2045 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.2" upper="2"/> | ||
2046 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.3" upper="1"/> | ||
2047 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.4" upper="1"/> | ||
2048 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.8" relation="//@relations.5" lower="1"/> | ||
2049 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.5" upper="1"/> | ||
2050 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.10" relation="//@relations.6" lower="1"/> | ||
2051 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.11" relation="//@relations.6" upper="1"/> | ||
2052 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.12" relation="//@relations.7" lower="1"/> | ||
2053 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.13" relation="//@relations.7" upper="1"/> | ||
2054 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.14" relation="//@relations.8" lower="1"/> | ||
2055 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.15" relation="//@relations.8" upper="1"/> | ||
2056 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.16" relation="//@relations.9" lower="1"/> | ||
2057 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.17" relation="//@relations.9" upper="1"/> | ||
2058 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.18" targetRelation="//@relations.0"/> | ||
2059 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.19" targetRelation="//@relations.2"/> | ||
2060 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.20" targetRelation="//@relations.8"/> | ||
2061 | <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.21" targetRelation="//@relations.9"/> | ||
2062 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.10" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/> | ||
2063 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.11" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/> | ||
2064 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.12" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads"/> | ||
2065 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.13" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload"/> | ||
2066 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.14" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/> | ||
2067 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/> | ||
2068 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectLinkAllowed"/> | ||
2069 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.linkAllowed"/> | ||
2070 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingAntenna"/> | ||
2071 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat3U"/> | ||
2072 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/> | ||
2073 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink"/> | ||
2074 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink"/> | ||
2075 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/> | ||
2076 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBand"/> | ||
2077 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/> | ||
2078 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGain"/> | ||
2079 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow"/> | ||
2080 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.28" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainLow"/> | ||
2081 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.29" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium"/> | ||
2082 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.30" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemGainMedium"/> | ||
2083 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.31" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/> | ||
2084 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.32" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/> | ||
2085 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.33" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBandUhf"/> | ||
2086 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.34" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork"/> | ||
2087 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.35" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/> | ||
2088 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.36" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/> | ||
2089 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.37" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/> | ||
2090 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.22" query="//@annotations.22"/> | ||
2091 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.23"/> | ||
2092 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.26"/> | ||
2093 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.27"/> | ||
2094 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.26" query="//@annotations.32"/> | ||
2095 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.27" query="//@annotations.35"/> | ||
2096 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.28" query="//@annotations.37"/> | ||
2097 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.29" query="//@annotations.39"/> | ||
2098 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.30" query="//@annotations.41"/> | ||
2099 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.31" query="//@annotations.43"/> | ||
2100 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.32" query="//@annotations.44"/> | ||
2101 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.33" query="//@annotations.47"/> | ||
2102 | <annotations xsi:type="viatra2logicannotations:DefinedByDerivedFeature" target="//@relations.7" query="//@annotations.49"/> | ||
2103 | </language:LogicProblem> | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel new file mode 100644 index 00000000..6589a3ca --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/init.partialmodel | |||
@@ -0,0 +1,170 @@ | |||
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="16" maxNewElements="32"> | ||
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.9"/> | ||
8 | <param2 href="outputs/debug/generation.logicproblem#//@elements.10"/> | ||
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.10"/> | ||
22 | <param2 href="outputs/debug/generation.logicproblem#//@elements.11"/> | ||
23 | </relationlinks> | ||
24 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> | ||
25 | <param1 href="outputs/debug/generation.logicproblem#//@elements.10"/> | ||
26 | <param2 href="outputs/debug/generation.logicproblem#//@elements.12"/> | ||
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 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.0"/> | ||
54 | <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.7/@parameters.1"/> | ||
55 | </partialrelationinterpretation> | ||
56 | <partialrelationinterpretation> | ||
57 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.8"/> | ||
58 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> | ||
59 | <param1 href="outputs/debug/generation.logicproblem#//@elements.11"/> | ||
60 | <param2 href="outputs/debug/generation.logicproblem#//@elements.1"/> | ||
61 | </relationlinks> | ||
62 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> | ||
63 | <param1 href="outputs/debug/generation.logicproblem#//@elements.12"/> | ||
64 | <param2 href="outputs/debug/generation.logicproblem#//@elements.2"/> | ||
65 | </relationlinks> | ||
66 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.0"/> | ||
67 | <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.8/@parameters.1"/> | ||
68 | </partialrelationinterpretation> | ||
69 | <partialrelationinterpretation> | ||
70 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.9"/> | ||
71 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> | ||
72 | <param1 href="outputs/debug/generation.logicproblem#//@elements.11"/> | ||
73 | <param2 href="outputs/debug/generation.logicproblem#//@elements.4"/> | ||
74 | </relationlinks> | ||
75 | <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink"> | ||
76 | <param1 href="outputs/debug/generation.logicproblem#//@elements.12"/> | ||
77 | <param2 href="outputs/debug/generation.logicproblem#//@elements.5"/> | ||
78 | </relationlinks> | ||
79 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.9/@parameters.0"/> | ||
80 | <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.9/@parameters.1"/> | ||
81 | </partialrelationinterpretation> | ||
82 | <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/> | ||
83 | <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/> | ||
84 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/> | ||
85 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/> | ||
86 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/> | ||
87 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/> | ||
88 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0"> | ||
89 | <elements href="outputs/debug/generation.logicproblem#//@elements.9"/> | ||
90 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.0"/> | ||
91 | </partialtypeinterpratation> | ||
92 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4"> | ||
93 | <elements href="outputs/debug/generation.logicproblem#//@elements.9"/> | ||
94 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.1"/> | ||
95 | </partialtypeinterpratation> | ||
96 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2"> | ||
97 | <elements href="outputs/debug/generation.logicproblem#//@elements.10"/> | ||
98 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.2"/> | ||
99 | </partialtypeinterpratation> | ||
100 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6"> | ||
101 | <elements href="outputs/debug/generation.logicproblem#//@elements.10"/> | ||
102 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.3"/> | ||
103 | </partialtypeinterpratation> | ||
104 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.19"> | ||
105 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.4"/> | ||
106 | </partialtypeinterpratation> | ||
107 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5"> | ||
108 | <elements href="outputs/debug/generation.logicproblem#//@elements.11"/> | ||
109 | <elements href="outputs/debug/generation.logicproblem#//@elements.12"/> | ||
110 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.5"/> | ||
111 | </partialtypeinterpratation> | ||
112 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6"> | ||
113 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.6"/> | ||
114 | </partialtypeinterpratation> | ||
115 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7"> | ||
116 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.7"/> | ||
117 | </partialtypeinterpratation> | ||
118 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.11"> | ||
119 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.8"/> | ||
120 | </partialtypeinterpratation> | ||
121 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.16 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19"> | ||
122 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.9"/> | ||
123 | </partialtypeinterpratation> | ||
124 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.16 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19"> | ||
125 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.10"/> | ||
126 | </partialtypeinterpratation> | ||
127 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19"> | ||
128 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.11"/> | ||
129 | </partialtypeinterpratation> | ||
130 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19"> | ||
131 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.12"/> | ||
132 | </partialtypeinterpratation> | ||
133 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.4"> | ||
134 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.17"/> | ||
135 | </partialtypeinterpratation> | ||
136 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.17"> | ||
137 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.19"/> | ||
138 | </partialtypeinterpratation> | ||
139 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.6"> | ||
140 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.21"/> | ||
141 | </partialtypeinterpratation> | ||
142 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.19"> | ||
143 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.23"/> | ||
144 | </partialtypeinterpratation> | ||
145 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.9"> | ||
146 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.25"/> | ||
147 | </partialtypeinterpratation> | ||
148 | <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/> | ||
149 | <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> | ||
150 | <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> | ||
151 | <openWorldElements name="New Objects"/> | ||
152 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/> | ||
153 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/> | ||
154 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/> | ||
155 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/> | ||
156 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/> | ||
157 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/> | ||
158 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/> | ||
159 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/> | ||
160 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/> | ||
161 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/> | ||
162 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/> | ||
163 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/> | ||
164 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/> | ||
165 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/> | ||
166 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/> | ||
167 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/> | ||
168 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/> | ||
169 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/> | ||
170 | </partialinterpretation:PartialInterpretation> | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt new file mode 100644 index 00000000..1d3c9f62 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt | |||
@@ -0,0 +1 @@ | |||
Model generation started | |||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml new file mode 100644 index 00000000..59498c9f --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/1.gml | |||
@@ -0,0 +1,1627 @@ | |||
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 288.20000000000005 | ||
225 | h 40 | ||
226 | type "rectangle" | ||
227 | fill "#FFFFFF" | ||
228 | fill2 "#FFFFFF" | ||
229 | outline "#000000" | ||
230 | ] | ||
231 | LabelGraphics | ||
232 | [ | ||
233 | text "CubeSat3U literal SpacecraftKind" | ||
234 | outline "#000000" | ||
235 | fill "#FFFFFF" | ||
236 | fontSize 16 | ||
237 | fontName "Monospace" | ||
238 | autoSizePolicy "node_width" | ||
239 | anchor "t" | ||
240 | borderDistance 0.0 | ||
241 | ] | ||
242 | LabelGraphics | ||
243 | [ | ||
244 | text " | ||
245 | SpacecraftKind enum | ||
246 | " | ||
247 | fontSize 14 | ||
248 | fontName "Consolas" | ||
249 | alignment "left" | ||
250 | anchor "tl" | ||
251 | borderDistance 6 | ||
252 | ] | ||
253 | ] | ||
254 | |||
255 | node | ||
256 | [ | ||
257 | id 7 | ||
258 | graphics | ||
259 | [ | ||
260 | w 288.20000000000005 | ||
261 | h 40 | ||
262 | type "rectangle" | ||
263 | fill "#FFFFFF" | ||
264 | fill2 "#FFFFFF" | ||
265 | outline "#000000" | ||
266 | ] | ||
267 | LabelGraphics | ||
268 | [ | ||
269 | text "CubeSat6U literal SpacecraftKind" | ||
270 | outline "#000000" | ||
271 | fill "#FFFFFF" | ||
272 | fontSize 16 | ||
273 | fontName "Monospace" | ||
274 | autoSizePolicy "node_width" | ||
275 | anchor "t" | ||
276 | borderDistance 0.0 | ||
277 | ] | ||
278 | LabelGraphics | ||
279 | [ | ||
280 | text " | ||
281 | SpacecraftKind enum | ||
282 | " | ||
283 | fontSize 14 | ||
284 | fontName "Consolas" | ||
285 | alignment "left" | ||
286 | anchor "tl" | ||
287 | borderDistance 6 | ||
288 | ] | ||
289 | ] | ||
290 | |||
291 | node | ||
292 | [ | ||
293 | id 8 | ||
294 | graphics | ||
295 | [ | ||
296 | w 279.40000000000003 | ||
297 | h 40 | ||
298 | type "rectangle" | ||
299 | fill "#FFFFFF" | ||
300 | fill2 "#FFFFFF" | ||
301 | outline "#000000" | ||
302 | ] | ||
303 | LabelGraphics | ||
304 | [ | ||
305 | text "SmallSat literal SpacecraftKind" | ||
306 | outline "#000000" | ||
307 | fill "#FFFFFF" | ||
308 | fontSize 16 | ||
309 | fontName "Monospace" | ||
310 | autoSizePolicy "node_width" | ||
311 | anchor "t" | ||
312 | borderDistance 0.0 | ||
313 | ] | ||
314 | LabelGraphics | ||
315 | [ | ||
316 | text " | ||
317 | SpacecraftKind enum | ||
318 | " | ||
319 | fontSize 14 | ||
320 | fontName "Consolas" | ||
321 | alignment "left" | ||
322 | anchor "tl" | ||
323 | borderDistance 6 | ||
324 | ] | ||
325 | ] | ||
326 | |||
327 | node | ||
328 | [ | ||
329 | id 9 | ||
330 | graphics | ||
331 | [ | ||
332 | w 315.70000000000005 | ||
333 | h 82 | ||
334 | type "rectangle" | ||
335 | fill "#FFFFFF" | ||
336 | fill2 "#FFFFFF" | ||
337 | outline "#000000" | ||
338 | ] | ||
339 | LabelGraphics | ||
340 | [ | ||
341 | text "o 1" | ||
342 | outline "#000000" | ||
343 | fill "#FFFFFF" | ||
344 | fontSize 16 | ||
345 | fontName "Monospace" | ||
346 | autoSizePolicy "node_width" | ||
347 | anchor "t" | ||
348 | borderDistance 0.0 | ||
349 | ] | ||
350 | LabelGraphics | ||
351 | [ | ||
352 | text " | ||
353 | ConstellationMission class DefinedPart | ||
354 | InterferometryMission class DefinedPart | ||
355 | ConstellationMission class | ||
356 | InterferometryMission class | ||
357 | " | ||
358 | fontSize 14 | ||
359 | fontName "Consolas" | ||
360 | alignment "left" | ||
361 | anchor "tl" | ||
362 | borderDistance 6 | ||
363 | ] | ||
364 | ] | ||
365 | |||
366 | node | ||
367 | [ | ||
368 | id 10 | ||
369 | graphics | ||
370 | [ | ||
371 | w 308.0 | ||
372 | h 82 | ||
373 | type "rectangle" | ||
374 | fill "#FFFFFF" | ||
375 | fill2 "#FFFFFF" | ||
376 | outline "#000000" | ||
377 | ] | ||
378 | LabelGraphics | ||
379 | [ | ||
380 | text "o 2" | ||
381 | outline "#000000" | ||
382 | fill "#FFFFFF" | ||
383 | fontSize 16 | ||
384 | fontName "Monospace" | ||
385 | autoSizePolicy "node_width" | ||
386 | anchor "t" | ||
387 | borderDistance 0.0 | ||
388 | ] | ||
389 | LabelGraphics | ||
390 | [ | ||
391 | text " | ||
392 | CommunicatingElement class DefinedPart | ||
393 | GroundStationNetwork class DefinedPart | ||
394 | CommunicatingElement class | ||
395 | GroundStationNetwork class | ||
396 | " | ||
397 | fontSize 14 | ||
398 | fontName "Consolas" | ||
399 | alignment "left" | ||
400 | anchor "tl" | ||
401 | borderDistance 6 | ||
402 | ] | ||
403 | ] | ||
404 | |||
405 | node | ||
406 | [ | ||
407 | id 11 | ||
408 | graphics | ||
409 | [ | ||
410 | w 254.10000000000002 | ||
411 | h 54 | ||
412 | type "rectangle" | ||
413 | fill "#FFFFFF" | ||
414 | fill2 "#FFFFFF" | ||
415 | outline "#000000" | ||
416 | ] | ||
417 | LabelGraphics | ||
418 | [ | ||
419 | text "o 3" | ||
420 | outline "#000000" | ||
421 | fill "#FFFFFF" | ||
422 | fontSize 16 | ||
423 | fontName "Monospace" | ||
424 | autoSizePolicy "node_width" | ||
425 | anchor "t" | ||
426 | borderDistance 0.0 | ||
427 | ] | ||
428 | LabelGraphics | ||
429 | [ | ||
430 | text " | ||
431 | CommSubsystem class DefinedPart | ||
432 | CommSubsystem class | ||
433 | " | ||
434 | fontSize 14 | ||
435 | fontName "Consolas" | ||
436 | alignment "left" | ||
437 | anchor "tl" | ||
438 | borderDistance 6 | ||
439 | ] | ||
440 | ] | ||
441 | |||
442 | node | ||
443 | [ | ||
444 | id 12 | ||
445 | graphics | ||
446 | [ | ||
447 | w 254.10000000000002 | ||
448 | h 54 | ||
449 | type "rectangle" | ||
450 | fill "#FFFFFF" | ||
451 | fill2 "#FFFFFF" | ||
452 | outline "#000000" | ||
453 | ] | ||
454 | LabelGraphics | ||
455 | [ | ||
456 | text "o 4" | ||
457 | outline "#000000" | ||
458 | fill "#FFFFFF" | ||
459 | fontSize 16 | ||
460 | fontName "Monospace" | ||
461 | autoSizePolicy "node_width" | ||
462 | anchor "t" | ||
463 | borderDistance 0.0 | ||
464 | ] | ||
465 | LabelGraphics | ||
466 | [ | ||
467 | text " | ||
468 | CommSubsystem class DefinedPart | ||
469 | CommSubsystem class | ||
470 | " | ||
471 | fontSize 14 | ||
472 | fontName "Consolas" | ||
473 | alignment "left" | ||
474 | anchor "tl" | ||
475 | borderDistance 6 | ||
476 | ] | ||
477 | ] | ||
478 | |||
479 | node | ||
480 | [ | ||
481 | id 13 | ||
482 | graphics | ||
483 | [ | ||
484 | w 41.800000000000004 | ||
485 | h 26 | ||
486 | type "rectangle" | ||
487 | fill "#FFFFFF" | ||
488 | fill2 "#FFFFFF" | ||
489 | outline "#000000" | ||
490 | ] | ||
491 | LabelGraphics | ||
492 | [ | ||
493 | text "true" | ||
494 | outline "#000000" | ||
495 | fill "#FFFFFF" | ||
496 | fontSize 16 | ||
497 | fontName "Monospace" | ||
498 | autoSizePolicy "node_width" | ||
499 | anchor "t" | ||
500 | borderDistance 0.0 | ||
501 | ] | ||
502 | LabelGraphics | ||
503 | [ | ||
504 | text " | ||
505 | " | ||
506 | fontSize 14 | ||
507 | fontName "Consolas" | ||
508 | alignment "left" | ||
509 | anchor "tl" | ||
510 | borderDistance 6 | ||
511 | ] | ||
512 | ] | ||
513 | |||
514 | node | ||
515 | [ | ||
516 | id 14 | ||
517 | graphics | ||
518 | [ | ||
519 | w 50.6 | ||
520 | h 26 | ||
521 | type "rectangle" | ||
522 | fill "#FFFFFF" | ||
523 | fill2 "#FFFFFF" | ||
524 | outline "#000000" | ||
525 | ] | ||
526 | LabelGraphics | ||
527 | [ | ||
528 | text "false" | ||
529 | outline "#000000" | ||
530 | fill "#FFFFFF" | ||
531 | fontSize 16 | ||
532 | fontName "Monospace" | ||
533 | autoSizePolicy "node_width" | ||
534 | anchor "t" | ||
535 | borderDistance 0.0 | ||
536 | ] | ||
537 | LabelGraphics | ||
538 | [ | ||
539 | text " | ||
540 | " | ||
541 | fontSize 14 | ||
542 | fontName "Consolas" | ||
543 | alignment "left" | ||
544 | anchor "tl" | ||
545 | borderDistance 6 | ||
546 | ] | ||
547 | ] | ||
548 | |||
549 | node | ||
550 | [ | ||
551 | id 15 | ||
552 | graphics | ||
553 | [ | ||
554 | w 323.40000000000003 | ||
555 | h 96 | ||
556 | type "rectangle" | ||
557 | fill "#FFFFFF" | ||
558 | fill2 "#FFFFFF" | ||
559 | outline "#000000" | ||
560 | ] | ||
561 | LabelGraphics | ||
562 | [ | ||
563 | text "null" | ||
564 | outline "#000000" | ||
565 | fill "#FFFFFF" | ||
566 | fontSize 16 | ||
567 | fontName "Monospace" | ||
568 | autoSizePolicy "node_width" | ||
569 | anchor "t" | ||
570 | borderDistance 0.0 | ||
571 | ] | ||
572 | LabelGraphics | ||
573 | [ | ||
574 | text " | ||
575 | CommunicatingElement class | ||
576 | Spacecraft class | ||
577 | CubeSat6U class | ||
578 | CubeSat class | ||
579 | CommunicatingElement class UndefinedPart | ||
580 | " | ||
581 | fontSize 14 | ||
582 | fontName "Consolas" | ||
583 | alignment "left" | ||
584 | anchor "tl" | ||
585 | borderDistance 6 | ||
586 | ] | ||
587 | ] | ||
588 | |||
589 | node | ||
590 | [ | ||
591 | id 16 | ||
592 | graphics | ||
593 | [ | ||
594 | w 323.40000000000003 | ||
595 | h 96 | ||
596 | type "rectangle" | ||
597 | fill "#FFFFFF" | ||
598 | fill2 "#FFFFFF" | ||
599 | outline "#000000" | ||
600 | ] | ||
601 | LabelGraphics | ||
602 | [ | ||
603 | text "null" | ||
604 | outline "#000000" | ||
605 | fill "#FFFFFF" | ||
606 | fontSize 16 | ||
607 | fontName "Monospace" | ||
608 | autoSizePolicy "node_width" | ||
609 | anchor "t" | ||
610 | borderDistance 0.0 | ||
611 | ] | ||
612 | LabelGraphics | ||
613 | [ | ||
614 | text " | ||
615 | CommunicatingElement class | ||
616 | Spacecraft class | ||
617 | CubeSat3U class | ||
618 | CubeSat class | ||
619 | CommunicatingElement class UndefinedPart | ||
620 | " | ||
621 | fontSize 14 | ||
622 | fontName "Consolas" | ||
623 | alignment "left" | ||
624 | anchor "tl" | ||
625 | borderDistance 6 | ||
626 | ] | ||
627 | ] | ||
628 | |||
629 | node | ||
630 | [ | ||
631 | id 17 | ||
632 | graphics | ||
633 | [ | ||
634 | w 223.3 | ||
635 | h 54 | ||
636 | type "rectangle" | ||
637 | fill "#FFFFFF" | ||
638 | fill2 "#FFFFFF" | ||
639 | outline "#000000" | ||
640 | ] | ||
641 | LabelGraphics | ||
642 | [ | ||
643 | text "null" | ||
644 | outline "#000000" | ||
645 | fill "#FFFFFF" | ||
646 | fontSize 16 | ||
647 | fontName "Monospace" | ||
648 | autoSizePolicy "node_width" | ||
649 | anchor "t" | ||
650 | borderDistance 0.0 | ||
651 | ] | ||
652 | LabelGraphics | ||
653 | [ | ||
654 | text " | ||
655 | Payload class | ||
656 | InterferometryPayload class | ||
657 | " | ||
658 | fontSize 14 | ||
659 | fontName "Consolas" | ||
660 | alignment "left" | ||
661 | anchor "tl" | ||
662 | borderDistance 6 | ||
663 | ] | ||
664 | ] | ||
665 | |||
666 | node | ||
667 | [ | ||
668 | id 18 | ||
669 | graphics | ||
670 | [ | ||
671 | w 269.5 | ||
672 | h 54 | ||
673 | type "rectangle" | ||
674 | fill "#FFFFFF" | ||
675 | fill2 "#FFFFFF" | ||
676 | outline "#000000" | ||
677 | ] | ||
678 | LabelGraphics | ||
679 | [ | ||
680 | text "null" | ||
681 | outline "#000000" | ||
682 | fill "#FFFFFF" | ||
683 | fontSize 16 | ||
684 | fontName "Monospace" | ||
685 | autoSizePolicy "node_width" | ||
686 | anchor "t" | ||
687 | borderDistance 0.0 | ||
688 | ] | ||
689 | LabelGraphics | ||
690 | [ | ||
691 | text " | ||
692 | CommSubsystem class | ||
693 | CommSubsystem class UndefinedPart | ||
694 | " | ||
695 | fontSize 14 | ||
696 | fontName "Consolas" | ||
697 | alignment "left" | ||
698 | anchor "tl" | ||
699 | borderDistance 6 | ||
700 | ] | ||
701 | ] | ||
702 | |||
703 | node | ||
704 | [ | ||
705 | id 19 | ||
706 | graphics | ||
707 | [ | ||
708 | w 223.3 | ||
709 | h 54 | ||
710 | type "rectangle" | ||
711 | fill "#FFFFFF" | ||
712 | fill2 "#FFFFFF" | ||
713 | outline "#000000" | ||
714 | ] | ||
715 | LabelGraphics | ||
716 | [ | ||
717 | text "null" | ||
718 | outline "#000000" | ||
719 | fill "#FFFFFF" | ||
720 | fontSize 16 | ||
721 | fontName "Monospace" | ||
722 | autoSizePolicy "node_width" | ||
723 | anchor "t" | ||
724 | borderDistance 0.0 | ||
725 | ] | ||
726 | LabelGraphics | ||
727 | [ | ||
728 | text " | ||
729 | Payload class | ||
730 | InterferometryPayload 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 269.5 | ||
819 | h 54 | ||
820 | type "rectangle" | ||
821 | fill "#FFFFFF" | ||
822 | fill2 "#FFFFFF" | ||
823 | outline "#000000" | ||
824 | ] | ||
825 | LabelGraphics | ||
826 | [ | ||
827 | text "null" | ||
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 | CommSubsystem class | ||
840 | CommSubsystem class UndefinedPart | ||
841 | " | ||
842 | fontSize 14 | ||
843 | fontName "Consolas" | ||
844 | alignment "left" | ||
845 | anchor "tl" | ||
846 | borderDistance 6 | ||
847 | ] | ||
848 | ] | ||
849 | |||
850 | node | ||
851 | [ | ||
852 | id 23 | ||
853 | graphics | ||
854 | [ | ||
855 | w 269.5 | ||
856 | h 54 | ||
857 | type "rectangle" | ||
858 | fill "#FFFFFF" | ||
859 | fill2 "#FFFFFF" | ||
860 | outline "#000000" | ||
861 | ] | ||
862 | LabelGraphics | ||
863 | [ | ||
864 | text "null" | ||
865 | outline "#000000" | ||
866 | fill "#FFFFFF" | ||
867 | fontSize 16 | ||
868 | fontName "Monospace" | ||
869 | autoSizePolicy "node_width" | ||
870 | anchor "t" | ||
871 | borderDistance 0.0 | ||
872 | ] | ||
873 | LabelGraphics | ||
874 | [ | ||
875 | text " | ||
876 | CommSubsystem class | ||
877 | CommSubsystem class UndefinedPart | ||
878 | " | ||
879 | fontSize 14 | ||
880 | fontName "Consolas" | ||
881 | alignment "left" | ||
882 | anchor "tl" | ||
883 | borderDistance 6 | ||
884 | ] | ||
885 | ] | ||
886 | |||
887 | node | ||
888 | [ | ||
889 | id 24 | ||
890 | graphics | ||
891 | [ | ||
892 | w 254.10000000000002 | ||
893 | h 40 | ||
894 | type "rectangle" | ||
895 | fill "#FFFFFF" | ||
896 | fill2 "#FFFFFF" | ||
897 | outline "#000000" | ||
898 | ] | ||
899 | LabelGraphics | ||
900 | [ | ||
901 | text "null" | ||
902 | outline "#000000" | ||
903 | fill "#FFFFFF" | ||
904 | fontSize 16 | ||
905 | fontName "Monospace" | ||
906 | autoSizePolicy "node_width" | ||
907 | anchor "t" | ||
908 | borderDistance 0.0 | ||
909 | ] | ||
910 | LabelGraphics | ||
911 | [ | ||
912 | text " | ||
913 | DirectedCommunicationLink class | ||
914 | " | ||
915 | fontSize 14 | ||
916 | fontName "Consolas" | ||
917 | alignment "left" | ||
918 | anchor "tl" | ||
919 | borderDistance 6 | ||
920 | ] | ||
921 | ] | ||
922 | |||
923 | node | ||
924 | [ | ||
925 | id 25 | ||
926 | graphics | ||
927 | [ | ||
928 | w 112.2 | ||
929 | h 26 | ||
930 | type "rectangle" | ||
931 | fill "#FFFFFF" | ||
932 | fill2 "#FFFFFF" | ||
933 | outline "#000000" | ||
934 | ] | ||
935 | LabelGraphics | ||
936 | [ | ||
937 | text "New Integers" | ||
938 | outline "#000000" | ||
939 | fill "#FFFFFF" | ||
940 | fontSize 16 | ||
941 | fontName "Monospace" | ||
942 | autoSizePolicy "node_width" | ||
943 | anchor "t" | ||
944 | borderDistance 0.0 | ||
945 | ] | ||
946 | LabelGraphics | ||
947 | [ | ||
948 | text " | ||
949 | " | ||
950 | fontSize 14 | ||
951 | fontName "Consolas" | ||
952 | alignment "left" | ||
953 | anchor "tl" | ||
954 | borderDistance 6 | ||
955 | ] | ||
956 | ] | ||
957 | |||
958 | node | ||
959 | [ | ||
960 | id 26 | ||
961 | graphics | ||
962 | [ | ||
963 | w 85.80000000000001 | ||
964 | h 26 | ||
965 | type "rectangle" | ||
966 | fill "#FFFFFF" | ||
967 | fill2 "#FFFFFF" | ||
968 | outline "#000000" | ||
969 | ] | ||
970 | LabelGraphics | ||
971 | [ | ||
972 | text "New Reals" | ||
973 | outline "#000000" | ||
974 | fill "#FFFFFF" | ||
975 | fontSize 16 | ||
976 | fontName "Monospace" | ||
977 | autoSizePolicy "node_width" | ||
978 | anchor "t" | ||
979 | borderDistance 0.0 | ||
980 | ] | ||
981 | LabelGraphics | ||
982 | [ | ||
983 | text " | ||
984 | " | ||
985 | fontSize 14 | ||
986 | fontName "Consolas" | ||
987 | alignment "left" | ||
988 | anchor "tl" | ||
989 | borderDistance 6 | ||
990 | ] | ||
991 | ] | ||
992 | |||
993 | node | ||
994 | [ | ||
995 | id 27 | ||
996 | graphics | ||
997 | [ | ||
998 | w 103.4 | ||
999 | h 26 | ||
1000 | type "rectangle" | ||
1001 | fill "#FFFFFF" | ||
1002 | fill2 "#FFFFFF" | ||
1003 | outline "#000000" | ||
1004 | ] | ||
1005 | LabelGraphics | ||
1006 | [ | ||
1007 | text "New Strings" | ||
1008 | outline "#000000" | ||
1009 | fill "#FFFFFF" | ||
1010 | fontSize 16 | ||
1011 | fontName "Monospace" | ||
1012 | autoSizePolicy "node_width" | ||
1013 | anchor "t" | ||
1014 | borderDistance 0.0 | ||
1015 | ] | ||
1016 | LabelGraphics | ||
1017 | [ | ||
1018 | text " | ||
1019 | " | ||
1020 | fontSize 14 | ||
1021 | fontName "Consolas" | ||
1022 | alignment "left" | ||
1023 | anchor "tl" | ||
1024 | borderDistance 6 | ||
1025 | ] | ||
1026 | ] | ||
1027 | |||
1028 | node | ||
1029 | [ | ||
1030 | id 28 | ||
1031 | graphics | ||
1032 | [ | ||
1033 | w 103.4 | ||
1034 | h 26 | ||
1035 | type "rectangle" | ||
1036 | fill "#FFFFFF" | ||
1037 | fill2 "#FFFFFF" | ||
1038 | outline "#000000" | ||
1039 | ] | ||
1040 | LabelGraphics | ||
1041 | [ | ||
1042 | text "New Objects" | ||
1043 | outline "#000000" | ||
1044 | fill "#FFFFFF" | ||
1045 | fontSize 16 | ||
1046 | fontName "Monospace" | ||
1047 | autoSizePolicy "node_width" | ||
1048 | anchor "t" | ||
1049 | borderDistance 0.0 | ||
1050 | ] | ||
1051 | LabelGraphics | ||
1052 | [ | ||
1053 | text " | ||
1054 | " | ||
1055 | fontSize 14 | ||
1056 | fontName "Consolas" | ||
1057 | alignment "left" | ||
1058 | anchor "tl" | ||
1059 | borderDistance 6 | ||
1060 | ] | ||
1061 | ] | ||
1062 | edge | ||
1063 | [ | ||
1064 | source 9 | ||
1065 | target 10 | ||
1066 | graphics | ||
1067 | [ | ||
1068 | fill "#000000" | ||
1069 | width 3 | ||
1070 | targetArrow "standard" | ||
1071 | ] | ||
1072 | LabelGraphics | ||
1073 | [ | ||
1074 | text "groundStationNetwork reference ConstellationMission" | ||
1075 | fontSize 14 | ||
1076 | fontName "Consolas" | ||
1077 | configuration "AutoFlippingLabel" | ||
1078 | model "six_pos" | ||
1079 | position "thead" | ||
1080 | ] | ||
1081 | ] | ||
1082 | edge | ||
1083 | [ | ||
1084 | source 9 | ||
1085 | target 15 | ||
1086 | graphics | ||
1087 | [ | ||
1088 | fill "#000000" | ||
1089 | width 3 | ||
1090 | targetArrow "standard" | ||
1091 | ] | ||
1092 | LabelGraphics | ||
1093 | [ | ||
1094 | text "spacecraft reference ConstellationMission" | ||
1095 | fontSize 14 | ||
1096 | fontName "Consolas" | ||
1097 | configuration "AutoFlippingLabel" | ||
1098 | model "six_pos" | ||
1099 | position "thead" | ||
1100 | ] | ||
1101 | ] | ||
1102 | edge | ||
1103 | [ | ||
1104 | source 9 | ||
1105 | target 16 | ||
1106 | graphics | ||
1107 | [ | ||
1108 | fill "#000000" | ||
1109 | width 3 | ||
1110 | targetArrow "standard" | ||
1111 | ] | ||
1112 | LabelGraphics | ||
1113 | [ | ||
1114 | text "spacecraft reference ConstellationMission" | ||
1115 | fontSize 14 | ||
1116 | fontName "Consolas" | ||
1117 | configuration "AutoFlippingLabel" | ||
1118 | model "six_pos" | ||
1119 | position "thead" | ||
1120 | ] | ||
1121 | ] | ||
1122 | edge | ||
1123 | [ | ||
1124 | source 10 | ||
1125 | target 11 | ||
1126 | graphics | ||
1127 | [ | ||
1128 | fill "#000000" | ||
1129 | width 3 | ||
1130 | targetArrow "standard" | ||
1131 | ] | ||
1132 | LabelGraphics | ||
1133 | [ | ||
1134 | text "commSubsystem reference CommunicatingElement" | ||
1135 | fontSize 14 | ||
1136 | fontName "Consolas" | ||
1137 | configuration "AutoFlippingLabel" | ||
1138 | model "six_pos" | ||
1139 | position "thead" | ||
1140 | ] | ||
1141 | ] | ||
1142 | edge | ||
1143 | [ | ||
1144 | source 10 | ||
1145 | target 12 | ||
1146 | graphics | ||
1147 | [ | ||
1148 | fill "#000000" | ||
1149 | width 3 | ||
1150 | targetArrow "standard" | ||
1151 | ] | ||
1152 | LabelGraphics | ||
1153 | [ | ||
1154 | text "commSubsystem reference CommunicatingElement" | ||
1155 | fontSize 14 | ||
1156 | fontName "Consolas" | ||
1157 | configuration "AutoFlippingLabel" | ||
1158 | model "six_pos" | ||
1159 | position "thead" | ||
1160 | ] | ||
1161 | ] | ||
1162 | edge | ||
1163 | [ | ||
1164 | source 15 | ||
1165 | target 18 | ||
1166 | graphics | ||
1167 | [ | ||
1168 | fill "#000000" | ||
1169 | width 3 | ||
1170 | targetArrow "standard" | ||
1171 | ] | ||
1172 | LabelGraphics | ||
1173 | [ | ||
1174 | text "commSubsystem reference CommunicatingElement" | ||
1175 | fontSize 14 | ||
1176 | fontName "Consolas" | ||
1177 | configuration "AutoFlippingLabel" | ||
1178 | model "six_pos" | ||
1179 | position "thead" | ||
1180 | ] | ||
1181 | ] | ||
1182 | edge | ||
1183 | [ | ||
1184 | source 16 | ||
1185 | target 20 | ||
1186 | graphics | ||
1187 | [ | ||
1188 | fill "#000000" | ||
1189 | width 3 | ||
1190 | targetArrow "standard" | ||
1191 | ] | ||
1192 | LabelGraphics | ||
1193 | [ | ||
1194 | text "commSubsystem reference CommunicatingElement" | ||
1195 | fontSize 14 | ||
1196 | fontName "Consolas" | ||
1197 | configuration "AutoFlippingLabel" | ||
1198 | model "six_pos" | ||
1199 | position "thead" | ||
1200 | ] | ||
1201 | ] | ||
1202 | edge | ||
1203 | [ | ||
1204 | source 15 | ||
1205 | target 22 | ||
1206 | graphics | ||
1207 | [ | ||
1208 | fill "#000000" | ||
1209 | width 3 | ||
1210 | targetArrow "standard" | ||
1211 | ] | ||
1212 | LabelGraphics | ||
1213 | [ | ||
1214 | text "commSubsystem reference CommunicatingElement" | ||
1215 | fontSize 14 | ||
1216 | fontName "Consolas" | ||
1217 | configuration "AutoFlippingLabel" | ||
1218 | model "six_pos" | ||
1219 | position "thead" | ||
1220 | ] | ||
1221 | ] | ||
1222 | edge | ||
1223 | [ | ||
1224 | source 16 | ||
1225 | target 23 | ||
1226 | graphics | ||
1227 | [ | ||
1228 | fill "#000000" | ||
1229 | width 3 | ||
1230 | targetArrow "standard" | ||
1231 | ] | ||
1232 | LabelGraphics | ||
1233 | [ | ||
1234 | text "commSubsystem reference CommunicatingElement" | ||
1235 | fontSize 14 | ||
1236 | fontName "Consolas" | ||
1237 | configuration "AutoFlippingLabel" | ||
1238 | model "six_pos" | ||
1239 | position "thead" | ||
1240 | ] | ||
1241 | ] | ||
1242 | edge | ||
1243 | [ | ||
1244 | source 15 | ||
1245 | target 21 | ||
1246 | graphics | ||
1247 | [ | ||
1248 | fill "#000000" | ||
1249 | width 3 | ||
1250 | targetArrow "standard" | ||
1251 | ] | ||
1252 | LabelGraphics | ||
1253 | [ | ||
1254 | text "communicationLink reference CommunicatingElement" | ||
1255 | fontSize 14 | ||
1256 | fontName "Consolas" | ||
1257 | configuration "AutoFlippingLabel" | ||
1258 | model "six_pos" | ||
1259 | position "thead" | ||
1260 | ] | ||
1261 | ] | ||
1262 | edge | ||
1263 | [ | ||
1264 | source 16 | ||
1265 | target 24 | ||
1266 | graphics | ||
1267 | [ | ||
1268 | fill "#000000" | ||
1269 | width 3 | ||
1270 | targetArrow "standard" | ||
1271 | ] | ||
1272 | LabelGraphics | ||
1273 | [ | ||
1274 | text "communicationLink reference CommunicatingElement" | ||
1275 | fontSize 14 | ||
1276 | fontName "Consolas" | ||
1277 | configuration "AutoFlippingLabel" | ||
1278 | model "six_pos" | ||
1279 | position "thead" | ||
1280 | ] | ||
1281 | ] | ||
1282 | edge | ||
1283 | [ | ||
1284 | source 16 | ||
1285 | target 17 | ||
1286 | graphics | ||
1287 | [ | ||
1288 | fill "#000000" | ||
1289 | width 3 | ||
1290 | targetArrow "standard" | ||
1291 | ] | ||
1292 | LabelGraphics | ||
1293 | [ | ||
1294 | text "payload reference Spacecraft" | ||
1295 | fontSize 14 | ||
1296 | fontName "Consolas" | ||
1297 | configuration "AutoFlippingLabel" | ||
1298 | model "six_pos" | ||
1299 | position "thead" | ||
1300 | ] | ||
1301 | ] | ||
1302 | edge | ||
1303 | [ | ||
1304 | source 15 | ||
1305 | target 19 | ||
1306 | graphics | ||
1307 | [ | ||
1308 | fill "#000000" | ||
1309 | width 3 | ||
1310 | targetArrow "standard" | ||
1311 | ] | ||
1312 | LabelGraphics | ||
1313 | [ | ||
1314 | text "payload reference Spacecraft" | ||
1315 | fontSize 14 | ||
1316 | fontName "Consolas" | ||
1317 | configuration "AutoFlippingLabel" | ||
1318 | model "six_pos" | ||
1319 | position "thead" | ||
1320 | ] | ||
1321 | ] | ||
1322 | edge | ||
1323 | [ | ||
1324 | source 21 | ||
1325 | target 18 | ||
1326 | graphics | ||
1327 | [ | ||
1328 | fill "#000000" | ||
1329 | targetArrow "standard" | ||
1330 | ] | ||
1331 | LabelGraphics | ||
1332 | [ | ||
1333 | text "source reference DirectedCommunicationLink" | ||
1334 | fontSize 14 | ||
1335 | fontName "Consolas" | ||
1336 | configuration "AutoFlippingLabel" | ||
1337 | model "six_pos" | ||
1338 | position "thead" | ||
1339 | ] | ||
1340 | ] | ||
1341 | edge | ||
1342 | [ | ||
1343 | source 24 | ||
1344 | target 23 | ||
1345 | graphics | ||
1346 | [ | ||
1347 | fill "#000000" | ||
1348 | targetArrow "standard" | ||
1349 | ] | ||
1350 | LabelGraphics | ||
1351 | [ | ||
1352 | text "source reference DirectedCommunicationLink" | ||
1353 | fontSize 14 | ||
1354 | fontName "Consolas" | ||
1355 | configuration "AutoFlippingLabel" | ||
1356 | model "six_pos" | ||
1357 | position "thead" | ||
1358 | ] | ||
1359 | ] | ||
1360 | edge | ||
1361 | [ | ||
1362 | source 21 | ||
1363 | target 12 | ||
1364 | graphics | ||
1365 | [ | ||
1366 | fill "#000000" | ||
1367 | targetArrow "standard" | ||
1368 | ] | ||
1369 | LabelGraphics | ||
1370 | [ | ||
1371 | text "target reference DirectedCommunicationLink" | ||
1372 | fontSize 14 | ||
1373 | fontName "Consolas" | ||
1374 | configuration "AutoFlippingLabel" | ||
1375 | model "six_pos" | ||
1376 | position "thead" | ||
1377 | ] | ||
1378 | ] | ||
1379 | edge | ||
1380 | [ | ||
1381 | source 24 | ||
1382 | target 11 | ||
1383 | graphics | ||
1384 | [ | ||
1385 | fill "#000000" | ||
1386 | targetArrow "standard" | ||
1387 | ] | ||
1388 | LabelGraphics | ||
1389 | [ | ||
1390 | text "target reference DirectedCommunicationLink" | ||
1391 | fontSize 14 | ||
1392 | fontName "Consolas" | ||
1393 | configuration "AutoFlippingLabel" | ||
1394 | model "six_pos" | ||
1395 | position "thead" | ||
1396 | ] | ||
1397 | ] | ||
1398 | edge | ||
1399 | [ | ||
1400 | source 11 | ||
1401 | target 1 | ||
1402 | graphics | ||
1403 | [ | ||
1404 | fill "#000000" | ||
1405 | targetArrow "standard" | ||
1406 | ] | ||
1407 | LabelGraphics | ||
1408 | [ | ||
1409 | text "band attribute CommSubsystem" | ||
1410 | fontSize 14 | ||
1411 | fontName "Consolas" | ||
1412 | configuration "AutoFlippingLabel" | ||
1413 | model "six_pos" | ||
1414 | position "thead" | ||
1415 | ] | ||
1416 | ] | ||
1417 | edge | ||
1418 | [ | ||
1419 | source 12 | ||
1420 | target 2 | ||
1421 | graphics | ||
1422 | [ | ||
1423 | fill "#000000" | ||
1424 | targetArrow "standard" | ||
1425 | ] | ||
1426 | LabelGraphics | ||
1427 | [ | ||
1428 | text "band attribute CommSubsystem" | ||
1429 | fontSize 14 | ||
1430 | fontName "Consolas" | ||
1431 | configuration "AutoFlippingLabel" | ||
1432 | model "six_pos" | ||
1433 | position "thead" | ||
1434 | ] | ||
1435 | ] | ||
1436 | edge | ||
1437 | [ | ||
1438 | source 18 | ||
1439 | target 2 | ||
1440 | graphics | ||
1441 | [ | ||
1442 | fill "#000000" | ||
1443 | targetArrow "standard" | ||
1444 | ] | ||
1445 | LabelGraphics | ||
1446 | [ | ||
1447 | text "band attribute CommSubsystem" | ||
1448 | fontSize 14 | ||
1449 | fontName "Consolas" | ||
1450 | configuration "AutoFlippingLabel" | ||
1451 | model "six_pos" | ||
1452 | position "thead" | ||
1453 | ] | ||
1454 | ] | ||
1455 | edge | ||
1456 | [ | ||
1457 | source 20 | ||
1458 | target 1 | ||
1459 | graphics | ||
1460 | [ | ||
1461 | fill "#000000" | ||
1462 | targetArrow "standard" | ||
1463 | ] | ||
1464 | LabelGraphics | ||
1465 | [ | ||
1466 | text "band attribute CommSubsystem" | ||
1467 | fontSize 14 | ||
1468 | fontName "Consolas" | ||
1469 | configuration "AutoFlippingLabel" | ||
1470 | model "six_pos" | ||
1471 | position "thead" | ||
1472 | ] | ||
1473 | ] | ||
1474 | edge | ||
1475 | [ | ||
1476 | source 22 | ||
1477 | target 1 | ||
1478 | graphics | ||
1479 | [ | ||
1480 | fill "#000000" | ||
1481 | targetArrow "standard" | ||
1482 | ] | ||
1483 | LabelGraphics | ||
1484 | [ | ||
1485 | text "band attribute CommSubsystem" | ||
1486 | fontSize 14 | ||
1487 | fontName "Consolas" | ||
1488 | configuration "AutoFlippingLabel" | ||
1489 | model "six_pos" | ||
1490 | position "thead" | ||
1491 | ] | ||
1492 | ] | ||
1493 | edge | ||
1494 | [ | ||
1495 | source 23 | ||
1496 | target 1 | ||
1497 | graphics | ||
1498 | [ | ||
1499 | fill "#000000" | ||
1500 | targetArrow "standard" | ||
1501 | ] | ||
1502 | LabelGraphics | ||
1503 | [ | ||
1504 | text "band attribute CommSubsystem" | ||
1505 | fontSize 14 | ||
1506 | fontName "Consolas" | ||
1507 | configuration "AutoFlippingLabel" | ||
1508 | model "six_pos" | ||
1509 | position "thead" | ||
1510 | ] | ||
1511 | ] | ||
1512 | edge | ||
1513 | [ | ||
1514 | source 11 | ||
1515 | target 4 | ||
1516 | graphics | ||
1517 | [ | ||
1518 | fill "#000000" | ||
1519 | targetArrow "standard" | ||
1520 | ] | ||
1521 | LabelGraphics | ||
1522 | [ | ||
1523 | text "gain attribute CommSubsystem" | ||
1524 | fontSize 14 | ||
1525 | fontName "Consolas" | ||
1526 | configuration "AutoFlippingLabel" | ||
1527 | model "six_pos" | ||
1528 | position "thead" | ||
1529 | ] | ||
1530 | ] | ||
1531 | edge | ||
1532 | [ | ||
1533 | source 12 | ||
1534 | target 5 | ||
1535 | graphics | ||
1536 | [ | ||
1537 | fill "#000000" | ||
1538 | targetArrow "standard" | ||
1539 | ] | ||
1540 | LabelGraphics | ||
1541 | [ | ||
1542 | text "gain attribute CommSubsystem" | ||
1543 | fontSize 14 | ||
1544 | fontName "Consolas" | ||
1545 | configuration "AutoFlippingLabel" | ||
1546 | model "six_pos" | ||
1547 | position "thead" | ||
1548 | ] | ||
1549 | ] | ||
1550 | edge | ||
1551 | [ | ||
1552 | source 18 | ||
1553 | target 5 | ||
1554 | graphics | ||
1555 | [ | ||
1556 | fill "#000000" | ||
1557 | targetArrow "standard" | ||
1558 | ] | ||
1559 | LabelGraphics | ||
1560 | [ | ||
1561 | text "gain attribute CommSubsystem" | ||
1562 | fontSize 14 | ||
1563 | fontName "Consolas" | ||
1564 | configuration "AutoFlippingLabel" | ||
1565 | model "six_pos" | ||
1566 | position "thead" | ||
1567 | ] | ||
1568 | ] | ||
1569 | edge | ||
1570 | [ | ||
1571 | source 20 | ||
1572 | target 5 | ||
1573 | graphics | ||
1574 | [ | ||
1575 | fill "#000000" | ||
1576 | targetArrow "standard" | ||
1577 | ] | ||
1578 | LabelGraphics | ||
1579 | [ | ||
1580 | text "gain attribute CommSubsystem" | ||
1581 | fontSize 14 | ||
1582 | fontName "Consolas" | ||
1583 | configuration "AutoFlippingLabel" | ||
1584 | model "six_pos" | ||
1585 | position "thead" | ||
1586 | ] | ||
1587 | ] | ||
1588 | edge | ||
1589 | [ | ||
1590 | source 22 | ||
1591 | target 5 | ||
1592 | graphics | ||
1593 | [ | ||
1594 | fill "#000000" | ||
1595 | targetArrow "standard" | ||
1596 | ] | ||
1597 | LabelGraphics | ||
1598 | [ | ||
1599 | text "gain attribute CommSubsystem" | ||
1600 | fontSize 14 | ||
1601 | fontName "Consolas" | ||
1602 | configuration "AutoFlippingLabel" | ||
1603 | model "six_pos" | ||
1604 | position "thead" | ||
1605 | ] | ||
1606 | ] | ||
1607 | edge | ||
1608 | [ | ||
1609 | source 23 | ||
1610 | target 4 | ||
1611 | graphics | ||
1612 | [ | ||
1613 | fill "#000000" | ||
1614 | targetArrow "standard" | ||
1615 | ] | ||
1616 | LabelGraphics | ||
1617 | [ | ||
1618 | text "gain attribute CommSubsystem" | ||
1619 | fontSize 14 | ||
1620 | fontName "Consolas" | ||
1621 | configuration "AutoFlippingLabel" | ||
1622 | model "six_pos" | ||
1623 | position "thead" | ||
1624 | ] | ||
1625 | ] | ||
1626 | ] | ||
1627 | |||
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..832f8b42 --- /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..44ca2b3e --- /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:CubeSat3U"> | ||
8 | <commSubsystem band="X" gain="HIGH"/> | ||
9 | <commSubsystem band="X" gain="MEDIUM"/> | ||
10 | <communicationLink source="//@spacecraft.0/@commSubsystem.1" target="//@groundStationNetwork/@commSubsystem.0"/> | ||
11 | <payload xsi:type="satellite:InterferometryPayload"/> | ||
12 | </spacecraft> | ||
13 | <spacecraft xsi:type="satellite:CubeSat6U"> | ||
14 | <commSubsystem band="X" gain="HIGH"/> | ||
15 | <commSubsystem band="Ka" gain="HIGH"/> | ||
16 | <communicationLink source="//@spacecraft.1/@commSubsystem.1" target="//@groundStationNetwork/@commSubsystem.1"/> | ||
17 | <payload xsi:type="satellite:InterferometryPayload"/> | ||
18 | </spacecraft> | ||
19 | </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..35c220e0 --- /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;580;4611;34341;4979693485;34306;19566;148;1006;0;5 | ||
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..5d75b948 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml | |||
@@ -0,0 +1,28 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- | ||
2 | --><plugin> | ||
3 | <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
4 | <wellbehaving-derived-feature classifier-name="Spacecraft" feature-name="kind" package-nsUri="http://www.example.org/satellite"/> | ||
5 | </extension> | ||
6 | <extension point="org.eclipse.emf.ecore.generated_package"> | ||
7 | <!-- @generated satellite --> | ||
8 | <package class="satellite.SatellitePackage" genModel="model/satellite.genmodel" uri="http://www.example.org/satellite"/> | ||
9 | </extension> | ||
10 | <extension id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
11 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries"> | ||
12 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/> | ||
13 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/> | ||
14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/> | ||
15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/> | ||
16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/> | ||
17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/> | ||
18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetGain"/> | ||
19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.uhfAntennaGainNotLow"/> | ||
20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.xAntennaGainNotMedium"/> | ||
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.kaAntennaGainLow"/> | ||
22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/> | ||
23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/> | ||
24 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/> | ||
25 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/> | ||
26 | </group> | ||
27 | </extension> | ||
28 | </plugin> | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._trace b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._trace new file mode 100644 index 00000000..8fb61263 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._trace | |||
Binary files differ | |||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._trace b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._trace new file mode 100644 index 00000000..64b692d3 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._trace | |||
Binary files differ | |||
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..cf45bfe0 --- /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,26 @@ | |||
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 | ||
23 | /.SpacecraftOfKind.java._trace | ||
24 | /.NoPotentialLinkToGroundStation.java._trace | ||
25 | /.SmallSat.java._trace | ||
26 | /CommunicationLinkDoesNotStartAtContainingElement.java | ||
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..8d27a262 --- /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 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.annotations.PAnnotation; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality; | ||
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 | import satellite.DirectedCommunicationLink; | ||
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((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", "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..ede57df8 --- /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.queries.internal.IndirectCommunicationLink; | ||
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.PositivePatternCall; | ||
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 | import satellite.CommunicatingElement; | ||
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((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", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
508 | |||
509 | private final List<PParameter> parameters = Arrays.asList(parameter_Element); | ||
510 | |||
511 | private GeneratedPQuery() { | ||
512 | super(PVisibility.PUBLIC); | ||
513 | } | ||
514 | |||
515 | @Override | ||
516 | public String getFullyQualifiedName() { | ||
517 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"; | ||
518 | } | ||
519 | |||
520 | @Override | ||
521 | public List<String> getParameterNames() { | ||
522 | return Arrays.asList("Element"); | ||
523 | } | ||
524 | |||
525 | @Override | ||
526 | public List<PParameter> getParameters() { | ||
527 | return parameters; | ||
528 | } | ||
529 | |||
530 | @Override | ||
531 | public Set<PBody> doGetContainedBodies() { | ||
532 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
533 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
534 | { | ||
535 | PBody body = new PBody(this); | ||
536 | PVariable var_Element = body.getOrCreateVariableByName("Element"); | ||
537 | new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
538 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
539 | new ExportedParameter(body, var_Element, parameter_Element) | ||
540 | )); | ||
541 | // find indirectCommunicationLink(Element, Element) | ||
542 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Element, var_Element), IndirectCommunicationLink.instance().getInternalQueryRepresentation()); | ||
543 | bodies.add(body); | ||
544 | } | ||
545 | { | ||
546 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
547 | annotation.addAttribute("severity", "error"); | ||
548 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
549 | new ParameterReference("Element") | ||
550 | })); | ||
551 | annotation.addAttribute("message", "Communication loop."); | ||
552 | addAnnotation(annotation); | ||
553 | } | ||
554 | return bodies; | ||
555 | } | ||
556 | } | ||
557 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java new file mode 100644 index 00000000..b73cb23f --- /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.queries.SmallSat; | ||
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.basicdeferred.NegativePatternCall; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
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 | import satellite.Spacecraft; | ||
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((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", "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..f2713f45 --- /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.queries.internal.CommSubsystemBand; | ||
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.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 | import satellite.DirectedCommunicationLink; | ||
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((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", "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..33a4b067 --- /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.queries.internal.CommSubsystemGain; | ||
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.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 | import satellite.DirectedCommunicationLink; | ||
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((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", "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..37c35bfe --- /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 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.EDataType; | ||
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.EDataTypeInSlotsKey; | ||
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.basicenumerables.ConstantValue; | ||
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 | import satellite.CommSubsystem; | ||
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((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", "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..45952f33 --- /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.queries.internal.IndirectCommunicationLink; | ||
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.NegativePatternCall; | ||
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 | import satellite.Spacecraft; | ||
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((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", "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/NoPotentialLinkToGroundStation.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java new file mode 100644 index 00000000..3366de46 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java | |||
@@ -0,0 +1,571 @@ | |||
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.IndirectLinkAllowed; | ||
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.NegativePatternCall; | ||
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 | import satellite.Spacecraft; | ||
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 @}Constraint(severity = "error", key = {Spacecraft}, | ||
51 | * message = "Spacecraft has no potential communication path to the ground station.") | ||
52 | * pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) { | ||
53 | * ConstellationMission.groundStationNetwork(Mission, GroundStation); | ||
54 | * ConstellationMission.spacecraft(Mission, Spacecraft); | ||
55 | * neg find indirectLinkAllowed(Spacecraft, GroundStation); | ||
56 | * } | ||
57 | * </pre></code> | ||
58 | * | ||
59 | * @see Matcher | ||
60 | * @see Match | ||
61 | * | ||
62 | */ | ||
63 | @SuppressWarnings("all") | ||
64 | public final class NoPotentialLinkToGroundStation extends BaseGeneratedEMFQuerySpecification<NoPotentialLinkToGroundStation.Matcher> { | ||
65 | /** | ||
66 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation 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 Spacecraft fSpacecraft; | ||
79 | |||
80 | private static List<String> parameterNames = makeImmutableList("Spacecraft"); | ||
81 | |||
82 | private Match(final Spacecraft pSpacecraft) { | ||
83 | this.fSpacecraft = pSpacecraft; | ||
84 | } | ||
85 | |||
86 | @Override | ||
87 | public Object get(final String parameterName) { | ||
88 | if ("Spacecraft".equals(parameterName)) return this.fSpacecraft; | ||
89 | return null; | ||
90 | } | ||
91 | |||
92 | public Spacecraft getSpacecraft() { | ||
93 | return this.fSpacecraft; | ||
94 | } | ||
95 | |||
96 | @Override | ||
97 | public boolean set(final String parameterName, final Object newValue) { | ||
98 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
99 | if ("Spacecraft".equals(parameterName) ) { | ||
100 | this.fSpacecraft = (Spacecraft) newValue; | ||
101 | return true; | ||
102 | } | ||
103 | return false; | ||
104 | } | ||
105 | |||
106 | public void setSpacecraft(final Spacecraft pSpacecraft) { | ||
107 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
108 | this.fSpacecraft = pSpacecraft; | ||
109 | } | ||
110 | |||
111 | @Override | ||
112 | public String patternName() { | ||
113 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"; | ||
114 | } | ||
115 | |||
116 | @Override | ||
117 | public List<String> parameterNames() { | ||
118 | return NoPotentialLinkToGroundStation.Match.parameterNames; | ||
119 | } | ||
120 | |||
121 | @Override | ||
122 | public Object[] toArray() { | ||
123 | return new Object[]{fSpacecraft}; | ||
124 | } | ||
125 | |||
126 | @Override | ||
127 | public NoPotentialLinkToGroundStation.Match toImmutable() { | ||
128 | return isMutable() ? newMatch(fSpacecraft) : this; | ||
129 | } | ||
130 | |||
131 | @Override | ||
132 | public String prettyPrint() { | ||
133 | StringBuilder result = new StringBuilder(); | ||
134 | result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft)); | ||
135 | return result.toString(); | ||
136 | } | ||
137 | |||
138 | @Override | ||
139 | public int hashCode() { | ||
140 | return Objects.hash(fSpacecraft); | ||
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 NoPotentialLinkToGroundStation.Match)) { | ||
151 | NoPotentialLinkToGroundStation.Match other = (NoPotentialLinkToGroundStation.Match) obj; | ||
152 | return Objects.equals(fSpacecraft, other.fSpacecraft); | ||
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 NoPotentialLinkToGroundStation specification() { | ||
165 | return NoPotentialLinkToGroundStation.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 NoPotentialLinkToGroundStation.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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
184 | * @return the new, mutable (partial) match object. | ||
185 | * | ||
186 | */ | ||
187 | public static NoPotentialLinkToGroundStation.Match newMutableMatch(final Spacecraft pSpacecraft) { | ||
188 | return new Mutable(pSpacecraft); | ||
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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
196 | * @return the (partial) match object. | ||
197 | * | ||
198 | */ | ||
199 | public static NoPotentialLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) { | ||
200 | return new Immutable(pSpacecraft); | ||
201 | } | ||
202 | |||
203 | private static final class Mutable extends NoPotentialLinkToGroundStation.Match { | ||
204 | Mutable(final Spacecraft pSpacecraft) { | ||
205 | super(pSpacecraft); | ||
206 | } | ||
207 | |||
208 | @Override | ||
209 | public boolean isMutable() { | ||
210 | return true; | ||
211 | } | ||
212 | } | ||
213 | |||
214 | private static final class Immutable extends NoPotentialLinkToGroundStation.Match { | ||
215 | Immutable(final Spacecraft pSpacecraft) { | ||
216 | super(pSpacecraft); | ||
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.noPotentialLinkToGroundStation 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 = {Spacecraft}, | ||
238 | * message = "Spacecraft has no potential communication path to the ground station.") | ||
239 | * pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) { | ||
240 | * ConstellationMission.groundStationNetwork(Mission, GroundStation); | ||
241 | * ConstellationMission.spacecraft(Mission, Spacecraft); | ||
242 | * neg find indirectLinkAllowed(Spacecraft, GroundStation); | ||
243 | * } | ||
244 | * </pre></code> | ||
245 | * | ||
246 | * @see Match | ||
247 | * @see NoPotentialLinkToGroundStation | ||
248 | * | ||
249 | */ | ||
250 | public static class Matcher extends BaseMatcher<NoPotentialLinkToGroundStation.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 NoPotentialLinkToGroundStation.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 NoPotentialLinkToGroundStation.Matcher create() { | ||
275 | return new Matcher(); | ||
276 | } | ||
277 | |||
278 | private static final int POSITION_SPACECRAFT = 0; | ||
279 | |||
280 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NoPotentialLinkToGroundStation.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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
297 | * @return matches represented as a Match object. | ||
298 | * | ||
299 | */ | ||
300 | public Collection<NoPotentialLinkToGroundStation.Match> getAllMatches(final Spacecraft pSpacecraft) { | ||
301 | return rawStreamAllMatches(new Object[]{pSpacecraft}).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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
311 | * @return a stream of matches represented as a Match object. | ||
312 | * | ||
313 | */ | ||
314 | public Stream<NoPotentialLinkToGroundStation.Match> streamAllMatches(final Spacecraft pSpacecraft) { | ||
315 | return rawStreamAllMatches(new Object[]{pSpacecraft}); | ||
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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
322 | * @return a match represented as a Match object, or null if no match is found. | ||
323 | * | ||
324 | */ | ||
325 | public Optional<NoPotentialLinkToGroundStation.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) { | ||
326 | return rawGetOneArbitraryMatch(new Object[]{pSpacecraft}); | ||
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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
333 | * @return true if the input is a valid (partial) match of the pattern. | ||
334 | * | ||
335 | */ | ||
336 | public boolean hasMatch(final Spacecraft pSpacecraft) { | ||
337 | return rawHasMatch(new Object[]{pSpacecraft}); | ||
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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
343 | * @return the number of pattern matches found. | ||
344 | * | ||
345 | */ | ||
346 | public int countMatches(final Spacecraft pSpacecraft) { | ||
347 | return rawCountMatches(new Object[]{pSpacecraft}); | ||
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 pSpacecraft the fixed value of pattern parameter Spacecraft, 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 Spacecraft pSpacecraft, final Consumer<? super NoPotentialLinkToGroundStation.Match> processor) { | ||
359 | return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, 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 pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
367 | * @return the (partial) match object. | ||
368 | * | ||
369 | */ | ||
370 | public NoPotentialLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) { | ||
371 | return NoPotentialLinkToGroundStation.Match.newMatch(pSpacecraft); | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
376 | * @return the Set of all values or empty set if there are no matches | ||
377 | * | ||
378 | */ | ||
379 | protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) { | ||
380 | return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast); | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
385 | * @return the Set of all values or empty set if there are no matches | ||
386 | * | ||
387 | */ | ||
388 | public Set<Spacecraft> getAllValuesOfSpacecraft() { | ||
389 | return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet()); | ||
390 | } | ||
391 | |||
392 | /** | ||
393 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
394 | * @return the Set of all values or empty set if there are no matches | ||
395 | * | ||
396 | */ | ||
397 | public Stream<Spacecraft> streamAllValuesOfSpacecraft() { | ||
398 | return rawStreamAllValuesOfSpacecraft(emptyArray()); | ||
399 | } | ||
400 | |||
401 | @Override | ||
402 | protected NoPotentialLinkToGroundStation.Match tupleToMatch(final Tuple t) { | ||
403 | try { | ||
404 | return NoPotentialLinkToGroundStation.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT)); | ||
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 NoPotentialLinkToGroundStation.Match arrayToMatch(final Object[] match) { | ||
413 | try { | ||
414 | return NoPotentialLinkToGroundStation.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]); | ||
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 NoPotentialLinkToGroundStation.Match arrayToMatchMutable(final Object[] match) { | ||
423 | try { | ||
424 | return NoPotentialLinkToGroundStation.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]); | ||
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<NoPotentialLinkToGroundStation.Matcher> querySpecification() { | ||
437 | return NoPotentialLinkToGroundStation.instance(); | ||
438 | } | ||
439 | } | ||
440 | |||
441 | private NoPotentialLinkToGroundStation() { | ||
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 NoPotentialLinkToGroundStation instance() { | ||
451 | try{ | ||
452 | return LazyHolder.INSTANCE; | ||
453 | } catch (ExceptionInInitializerError err) { | ||
454 | throw processInitializerError(err); | ||
455 | } | ||
456 | } | ||
457 | |||
458 | @Override | ||
459 | protected NoPotentialLinkToGroundStation.Matcher instantiate(final ViatraQueryEngine engine) { | ||
460 | return NoPotentialLinkToGroundStation.Matcher.on(engine); | ||
461 | } | ||
462 | |||
463 | @Override | ||
464 | public NoPotentialLinkToGroundStation.Matcher instantiate() { | ||
465 | return NoPotentialLinkToGroundStation.Matcher.create(); | ||
466 | } | ||
467 | |||
468 | @Override | ||
469 | public NoPotentialLinkToGroundStation.Match newEmptyMatch() { | ||
470 | return NoPotentialLinkToGroundStation.Match.newEmptyMatch(); | ||
471 | } | ||
472 | |||
473 | @Override | ||
474 | public NoPotentialLinkToGroundStation.Match newMatch(final Object... parameters) { | ||
475 | return NoPotentialLinkToGroundStation.Match.newMatch((satellite.Spacecraft) parameters[0]); | ||
476 | } | ||
477 | |||
478 | /** | ||
479 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation (visibility: PUBLIC, simpleName: NoPotentialLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
480 | * <b>not</b> at the class load time of the outer class, | ||
481 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation (visibility: PUBLIC, simpleName: NoPotentialLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
482 | * | ||
483 | * <p> This workaround is required e.g. to support recursion. | ||
484 | * | ||
485 | */ | ||
486 | private static class LazyHolder { | ||
487 | private static final NoPotentialLinkToGroundStation INSTANCE = new NoPotentialLinkToGroundStation(); | ||
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 NoPotentialLinkToGroundStation.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
506 | |||
507 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
508 | |||
509 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft); | ||
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.noPotentialLinkToGroundStation"; | ||
518 | } | ||
519 | |||
520 | @Override | ||
521 | public List<String> getParameterNames() { | ||
522 | return Arrays.asList("Spacecraft"); | ||
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_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
537 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
538 | PVariable var_GroundStation = body.getOrCreateVariableByName("GroundStation"); | ||
539 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
540 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
541 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft) | ||
542 | )); | ||
543 | // ConstellationMission.groundStationNetwork(Mission, GroundStation) | ||
544 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
545 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
546 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "groundStationNetwork"))); | ||
547 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork"))); | ||
548 | new Equality(body, var__virtual_0_, var_GroundStation); | ||
549 | // ConstellationMission.spacecraft(Mission, Spacecraft) | ||
550 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
551 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
552 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft"))); | ||
553 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
554 | new Equality(body, var__virtual_1_, var_Spacecraft); | ||
555 | // neg find indirectLinkAllowed(Spacecraft, GroundStation) | ||
556 | new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_GroundStation), IndirectLinkAllowed.instance().getInternalQueryRepresentation()); | ||
557 | bodies.add(body); | ||
558 | } | ||
559 | { | ||
560 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
561 | annotation.addAttribute("severity", "error"); | ||
562 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
563 | new ParameterReference("Spacecraft") | ||
564 | })); | ||
565 | annotation.addAttribute("message", "Spacecraft has no potential communication path to the ground station."); | ||
566 | addAnnotation(annotation); | ||
567 | } | ||
568 | return bodies; | ||
569 | } | ||
570 | } | ||
571 | } | ||
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..bdd97100 --- /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,559 @@ | |||
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.AtLeastTwoInterferometryPayloads; | ||
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.basicdeferred.NegativePatternCall; | ||
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 | import satellite.InterferometryMission; | ||
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 | * // At least two spacecraft must have the interferometry payload configured | ||
49 | * | ||
50 | * {@literal @}Constraint(severity = "error", key = {Mission}, | ||
51 | * message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.") | ||
52 | * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) { | ||
53 | * InterferometryMission(Mission); | ||
54 | * neg find atLeastTwoInterferometryPayloads(Mission); | ||
55 | * } | ||
56 | * </pre></code> | ||
57 | * | ||
58 | * @see Matcher | ||
59 | * @see Match | ||
60 | * | ||
61 | */ | ||
62 | @SuppressWarnings("all") | ||
63 | public final class NotEnoughInterferometryPayloads extends BaseGeneratedEMFQuerySpecification<NotEnoughInterferometryPayloads.Matcher> { | ||
64 | /** | ||
65 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads 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 InterferometryMission fMission; | ||
78 | |||
79 | private static List<String> parameterNames = makeImmutableList("Mission"); | ||
80 | |||
81 | private Match(final InterferometryMission pMission) { | ||
82 | this.fMission = pMission; | ||
83 | } | ||
84 | |||
85 | @Override | ||
86 | public Object get(final String parameterName) { | ||
87 | if ("Mission".equals(parameterName)) return this.fMission; | ||
88 | return null; | ||
89 | } | ||
90 | |||
91 | public InterferometryMission getMission() { | ||
92 | return this.fMission; | ||
93 | } | ||
94 | |||
95 | @Override | ||
96 | public boolean set(final String parameterName, final Object newValue) { | ||
97 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
98 | if ("Mission".equals(parameterName) ) { | ||
99 | this.fMission = (InterferometryMission) newValue; | ||
100 | return true; | ||
101 | } | ||
102 | return false; | ||
103 | } | ||
104 | |||
105 | public void setMission(final InterferometryMission pMission) { | ||
106 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
107 | this.fMission = pMission; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public String patternName() { | ||
112 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<String> parameterNames() { | ||
117 | return NotEnoughInterferometryPayloads.Match.parameterNames; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public Object[] toArray() { | ||
122 | return new Object[]{fMission}; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public NotEnoughInterferometryPayloads.Match toImmutable() { | ||
127 | return isMutable() ? newMatch(fMission) : this; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public String prettyPrint() { | ||
132 | StringBuilder result = new StringBuilder(); | ||
133 | result.append("\"Mission\"=" + prettyPrintValue(fMission)); | ||
134 | return result.toString(); | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public int hashCode() { | ||
139 | return Objects.hash(fMission); | ||
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 NotEnoughInterferometryPayloads.Match)) { | ||
150 | NotEnoughInterferometryPayloads.Match other = (NotEnoughInterferometryPayloads.Match) obj; | ||
151 | return Objects.equals(fMission, other.fMission); | ||
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 NotEnoughInterferometryPayloads specification() { | ||
164 | return NotEnoughInterferometryPayloads.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 NotEnoughInterferometryPayloads.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 pMission the fixed value of pattern parameter Mission, or null if not bound. | ||
183 | * @return the new, mutable (partial) match object. | ||
184 | * | ||
185 | */ | ||
186 | public static NotEnoughInterferometryPayloads.Match newMutableMatch(final InterferometryMission pMission) { | ||
187 | return new Mutable(pMission); | ||
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 pMission the fixed value of pattern parameter Mission, or null if not bound. | ||
195 | * @return the (partial) match object. | ||
196 | * | ||
197 | */ | ||
198 | public static NotEnoughInterferometryPayloads.Match newMatch(final InterferometryMission pMission) { | ||
199 | return new Immutable(pMission); | ||
200 | } | ||
201 | |||
202 | private static final class Mutable extends NotEnoughInterferometryPayloads.Match { | ||
203 | Mutable(final InterferometryMission pMission) { | ||
204 | super(pMission); | ||
205 | } | ||
206 | |||
207 | @Override | ||
208 | public boolean isMutable() { | ||
209 | return true; | ||
210 | } | ||
211 | } | ||
212 | |||
213 | private static final class Immutable extends NotEnoughInterferometryPayloads.Match { | ||
214 | Immutable(final InterferometryMission pMission) { | ||
215 | super(pMission); | ||
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.notEnoughInterferometryPayloads 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 | * // At least two spacecraft must have the interferometry payload configured | ||
237 | * | ||
238 | * {@literal @}Constraint(severity = "error", key = {Mission}, | ||
239 | * message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.") | ||
240 | * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) { | ||
241 | * InterferometryMission(Mission); | ||
242 | * neg find atLeastTwoInterferometryPayloads(Mission); | ||
243 | * } | ||
244 | * </pre></code> | ||
245 | * | ||
246 | * @see Match | ||
247 | * @see NotEnoughInterferometryPayloads | ||
248 | * | ||
249 | */ | ||
250 | public static class Matcher extends BaseMatcher<NotEnoughInterferometryPayloads.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 NotEnoughInterferometryPayloads.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 NotEnoughInterferometryPayloads.Matcher create() { | ||
275 | return new Matcher(); | ||
276 | } | ||
277 | |||
278 | private static final int POSITION_MISSION = 0; | ||
279 | |||
280 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NotEnoughInterferometryPayloads.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 pMission the fixed value of pattern parameter Mission, or null if not bound. | ||
297 | * @return matches represented as a Match object. | ||
298 | * | ||
299 | */ | ||
300 | public Collection<NotEnoughInterferometryPayloads.Match> getAllMatches(final InterferometryMission pMission) { | ||
301 | return rawStreamAllMatches(new Object[]{pMission}).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 pMission the fixed value of pattern parameter Mission, or null if not bound. | ||
311 | * @return a stream of matches represented as a Match object. | ||
312 | * | ||
313 | */ | ||
314 | public Stream<NotEnoughInterferometryPayloads.Match> streamAllMatches(final InterferometryMission pMission) { | ||
315 | return rawStreamAllMatches(new Object[]{pMission}); | ||
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 pMission the fixed value of pattern parameter Mission, 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<NotEnoughInterferometryPayloads.Match> getOneArbitraryMatch(final InterferometryMission pMission) { | ||
326 | return rawGetOneArbitraryMatch(new Object[]{pMission}); | ||
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 pMission the fixed value of pattern parameter Mission, 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 InterferometryMission pMission) { | ||
337 | return rawHasMatch(new Object[]{pMission}); | ||
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 pMission the fixed value of pattern parameter Mission, or null if not bound. | ||
343 | * @return the number of pattern matches found. | ||
344 | * | ||
345 | */ | ||
346 | public int countMatches(final InterferometryMission pMission) { | ||
347 | return rawCountMatches(new Object[]{pMission}); | ||
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 pMission the fixed value of pattern parameter Mission, 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 InterferometryMission pMission, final Consumer<? super NotEnoughInterferometryPayloads.Match> processor) { | ||
359 | return rawForOneArbitraryMatch(new Object[]{pMission}, 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 pMission the fixed value of pattern parameter Mission, or null if not bound. | ||
367 | * @return the (partial) match object. | ||
368 | * | ||
369 | */ | ||
370 | public NotEnoughInterferometryPayloads.Match newMatch(final InterferometryMission pMission) { | ||
371 | return NotEnoughInterferometryPayloads.Match.newMatch(pMission); | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Retrieve the set of values that occur in matches for Mission. | ||
376 | * @return the Set of all values or empty set if there are no matches | ||
377 | * | ||
378 | */ | ||
379 | protected Stream<InterferometryMission> rawStreamAllValuesOfMission(final Object[] parameters) { | ||
380 | return rawStreamAllValues(POSITION_MISSION, parameters).map(InterferometryMission.class::cast); | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * Retrieve the set of values that occur in matches for Mission. | ||
385 | * @return the Set of all values or empty set if there are no matches | ||
386 | * | ||
387 | */ | ||
388 | public Set<InterferometryMission> getAllValuesOfMission() { | ||
389 | return rawStreamAllValuesOfMission(emptyArray()).collect(Collectors.toSet()); | ||
390 | } | ||
391 | |||
392 | /** | ||
393 | * Retrieve the set of values that occur in matches for Mission. | ||
394 | * @return the Set of all values or empty set if there are no matches | ||
395 | * | ||
396 | */ | ||
397 | public Stream<InterferometryMission> streamAllValuesOfMission() { | ||
398 | return rawStreamAllValuesOfMission(emptyArray()); | ||
399 | } | ||
400 | |||
401 | @Override | ||
402 | protected NotEnoughInterferometryPayloads.Match tupleToMatch(final Tuple t) { | ||
403 | try { | ||
404 | return NotEnoughInterferometryPayloads.Match.newMatch((InterferometryMission) t.get(POSITION_MISSION)); | ||
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 NotEnoughInterferometryPayloads.Match arrayToMatch(final Object[] match) { | ||
413 | try { | ||
414 | return NotEnoughInterferometryPayloads.Match.newMatch((InterferometryMission) match[POSITION_MISSION]); | ||
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 NotEnoughInterferometryPayloads.Match arrayToMatchMutable(final Object[] match) { | ||
423 | try { | ||
424 | return NotEnoughInterferometryPayloads.Match.newMutableMatch((InterferometryMission) match[POSITION_MISSION]); | ||
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<NotEnoughInterferometryPayloads.Matcher> querySpecification() { | ||
437 | return NotEnoughInterferometryPayloads.instance(); | ||
438 | } | ||
439 | } | ||
440 | |||
441 | private NotEnoughInterferometryPayloads() { | ||
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 NotEnoughInterferometryPayloads instance() { | ||
451 | try{ | ||
452 | return LazyHolder.INSTANCE; | ||
453 | } catch (ExceptionInInitializerError err) { | ||
454 | throw processInitializerError(err); | ||
455 | } | ||
456 | } | ||
457 | |||
458 | @Override | ||
459 | protected NotEnoughInterferometryPayloads.Matcher instantiate(final ViatraQueryEngine engine) { | ||
460 | return NotEnoughInterferometryPayloads.Matcher.on(engine); | ||
461 | } | ||
462 | |||
463 | @Override | ||
464 | public NotEnoughInterferometryPayloads.Matcher instantiate() { | ||
465 | return NotEnoughInterferometryPayloads.Matcher.create(); | ||
466 | } | ||
467 | |||
468 | @Override | ||
469 | public NotEnoughInterferometryPayloads.Match newEmptyMatch() { | ||
470 | return NotEnoughInterferometryPayloads.Match.newEmptyMatch(); | ||
471 | } | ||
472 | |||
473 | @Override | ||
474 | public NotEnoughInterferometryPayloads.Match newMatch(final Object... parameters) { | ||
475 | return NotEnoughInterferometryPayloads.Match.newMatch((satellite.InterferometryMission) parameters[0]); | ||
476 | } | ||
477 | |||
478 | /** | ||
479 | * 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 | ||
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.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()}. | ||
482 | * | ||
483 | * <p> This workaround is required e.g. to support recursion. | ||
484 | * | ||
485 | */ | ||
486 | private static class LazyHolder { | ||
487 | private static final NotEnoughInterferometryPayloads INSTANCE = new NotEnoughInterferometryPayloads(); | ||
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 NotEnoughInterferometryPayloads.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
506 | |||
507 | private final PParameter parameter_Mission = new PParameter("Mission", "satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
508 | |||
509 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission); | ||
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.notEnoughInterferometryPayloads"; | ||
518 | } | ||
519 | |||
520 | @Override | ||
521 | public List<String> getParameterNames() { | ||
522 | return Arrays.asList("Mission"); | ||
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_Mission = body.getOrCreateVariableByName("Mission"); | ||
537 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
538 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
539 | new ExportedParameter(body, var_Mission, parameter_Mission) | ||
540 | )); | ||
541 | // InterferometryMission(Mission) | ||
542 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
543 | // neg find atLeastTwoInterferometryPayloads(Mission) | ||
544 | new NegativePatternCall(body, Tuples.flatTupleOf(var_Mission), AtLeastTwoInterferometryPayloads.instance().getInternalQueryRepresentation()); | ||
545 | bodies.add(body); | ||
546 | } | ||
547 | { | ||
548 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
549 | annotation.addAttribute("severity", "error"); | ||
550 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
551 | new ParameterReference("Mission") | ||
552 | })); | ||
553 | annotation.addAttribute("message", "Interferometry mission needs at least two spacecraft configured with the interferometry payload."); | ||
554 | addAnnotation(annotation); | ||
555 | } | ||
556 | return bodies; | ||
557 | } | ||
558 | } | ||
559 | } | ||
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..c86761ce --- /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.CubeSatWithKaAntenna; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain; | ||
11 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow; | ||
12 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation; | ||
13 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation; | ||
14 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads; | ||
15 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat; | ||
16 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind; | ||
17 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink; | ||
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>noPotentialLinkToGroundStation</li> | ||
35 | * <li>communicationLoop</li> | ||
36 | * <li>incompatibleSourceAndTargetBand</li> | ||
37 | * <li>incompatibleSourceAndTargetGain</li> | ||
38 | * <li>uhfAntennaGainNotLow</li> | ||
39 | * <li>xAntennaGainNotMedium</li> | ||
40 | * <li>kaAntennaGainLow</li> | ||
41 | * <li>threeUCubeSatWithNonUhfCrossLink</li> | ||
42 | * <li>cubeSatWithKaAntenna</li> | ||
43 | * <li>smallSat</li> | ||
44 | * <li>spacecraftOfKind</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(NoPotentialLinkToGroundStation.instance()); | ||
73 | querySpecifications.add(CommunicationLoop.instance()); | ||
74 | querySpecifications.add(IncompatibleSourceAndTargetBand.instance()); | ||
75 | querySpecifications.add(IncompatibleSourceAndTargetGain.instance()); | ||
76 | querySpecifications.add(UhfAntennaGainNotLow.instance()); | ||
77 | querySpecifications.add(XAntennaGainNotMedium.instance()); | ||
78 | querySpecifications.add(KaAntennaGainLow.instance()); | ||
79 | querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance()); | ||
80 | querySpecifications.add(CubeSatWithKaAntenna.instance()); | ||
81 | querySpecifications.add(SmallSat.instance()); | ||
82 | querySpecifications.add(SpacecraftOfKind.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 NoPotentialLinkToGroundStation getNoPotentialLinkToGroundStation() { | ||
110 | return NoPotentialLinkToGroundStation.instance(); | ||
111 | } | ||
112 | |||
113 | public NoPotentialLinkToGroundStation.Matcher getNoPotentialLinkToGroundStation(final ViatraQueryEngine engine) { | ||
114 | return NoPotentialLinkToGroundStation.Matcher.on(engine); | ||
115 | } | ||
116 | |||
117 | public CommunicationLoop getCommunicationLoop() { | ||
118 | return CommunicationLoop.instance(); | ||
119 | } | ||
120 | |||
121 | public CommunicationLoop.Matcher getCommunicationLoop(final ViatraQueryEngine engine) { | ||
122 | return CommunicationLoop.Matcher.on(engine); | ||
123 | } | ||
124 | |||
125 | public IncompatibleSourceAndTargetBand getIncompatibleSourceAndTargetBand() { | ||
126 | return IncompatibleSourceAndTargetBand.instance(); | ||
127 | } | ||
128 | |||
129 | public IncompatibleSourceAndTargetBand.Matcher getIncompatibleSourceAndTargetBand(final ViatraQueryEngine engine) { | ||
130 | return IncompatibleSourceAndTargetBand.Matcher.on(engine); | ||
131 | } | ||
132 | |||
133 | public IncompatibleSourceAndTargetGain getIncompatibleSourceAndTargetGain() { | ||
134 | return IncompatibleSourceAndTargetGain.instance(); | ||
135 | } | ||
136 | |||
137 | public IncompatibleSourceAndTargetGain.Matcher getIncompatibleSourceAndTargetGain(final ViatraQueryEngine engine) { | ||
138 | return IncompatibleSourceAndTargetGain.Matcher.on(engine); | ||
139 | } | ||
140 | |||
141 | public UhfAntennaGainNotLow getUhfAntennaGainNotLow() { | ||
142 | return UhfAntennaGainNotLow.instance(); | ||
143 | } | ||
144 | |||
145 | public UhfAntennaGainNotLow.Matcher getUhfAntennaGainNotLow(final ViatraQueryEngine engine) { | ||
146 | return UhfAntennaGainNotLow.Matcher.on(engine); | ||
147 | } | ||
148 | |||
149 | public XAntennaGainNotMedium getXAntennaGainNotMedium() { | ||
150 | return XAntennaGainNotMedium.instance(); | ||
151 | } | ||
152 | |||
153 | public XAntennaGainNotMedium.Matcher getXAntennaGainNotMedium(final ViatraQueryEngine engine) { | ||
154 | return XAntennaGainNotMedium.Matcher.on(engine); | ||
155 | } | ||
156 | |||
157 | public KaAntennaGainLow getKaAntennaGainLow() { | ||
158 | return KaAntennaGainLow.instance(); | ||
159 | } | ||
160 | |||
161 | public KaAntennaGainLow.Matcher getKaAntennaGainLow(final ViatraQueryEngine engine) { | ||
162 | return KaAntennaGainLow.Matcher.on(engine); | ||
163 | } | ||
164 | |||
165 | public ThreeUCubeSatWithNonUhfCrossLink getThreeUCubeSatWithNonUhfCrossLink() { | ||
166 | return ThreeUCubeSatWithNonUhfCrossLink.instance(); | ||
167 | } | ||
168 | |||
169 | public ThreeUCubeSatWithNonUhfCrossLink.Matcher getThreeUCubeSatWithNonUhfCrossLink(final ViatraQueryEngine engine) { | ||
170 | return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine); | ||
171 | } | ||
172 | |||
173 | public CubeSatWithKaAntenna getCubeSatWithKaAntenna() { | ||
174 | return CubeSatWithKaAntenna.instance(); | ||
175 | } | ||
176 | |||
177 | public CubeSatWithKaAntenna.Matcher getCubeSatWithKaAntenna(final ViatraQueryEngine engine) { | ||
178 | return CubeSatWithKaAntenna.Matcher.on(engine); | ||
179 | } | ||
180 | |||
181 | public SmallSat getSmallSat() { | ||
182 | return SmallSat.instance(); | ||
183 | } | ||
184 | |||
185 | public SmallSat.Matcher getSmallSat(final ViatraQueryEngine engine) { | ||
186 | return SmallSat.Matcher.on(engine); | ||
187 | } | ||
188 | |||
189 | public SpacecraftOfKind getSpacecraftOfKind() { | ||
190 | return SpacecraftOfKind.instance(); | ||
191 | } | ||
192 | |||
193 | public SpacecraftOfKind.Matcher getSpacecraftOfKind(final ViatraQueryEngine engine) { | ||
194 | return SpacecraftOfKind.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/SmallSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java new file mode 100644 index 00000000..4791740e --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java | |||
@@ -0,0 +1,533 @@ | |||
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 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.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
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.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
37 | |||
38 | /** | ||
39 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
40 | * | ||
41 | * <p>Original source: | ||
42 | * <code><pre> | ||
43 | * pattern smallSat(Sat : SmallSat) { | ||
44 | * SmallSat(Sat); | ||
45 | * } | ||
46 | * </pre></code> | ||
47 | * | ||
48 | * @see Matcher | ||
49 | * @see Match | ||
50 | * | ||
51 | */ | ||
52 | @SuppressWarnings("all") | ||
53 | public final class SmallSat extends BaseGeneratedEMFQuerySpecification<SmallSat.Matcher> { | ||
54 | /** | ||
55 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat pattern, | ||
56 | * to be used in conjunction with {@link Matcher}. | ||
57 | * | ||
58 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
59 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
60 | * usable to represent a match of the pattern in the result of a query, | ||
61 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
62 | * | ||
63 | * @see Matcher | ||
64 | * | ||
65 | */ | ||
66 | public static abstract class Match extends BasePatternMatch { | ||
67 | private satellite.SmallSat fSat; | ||
68 | |||
69 | private static List<String> parameterNames = makeImmutableList("Sat"); | ||
70 | |||
71 | private Match(final satellite.SmallSat pSat) { | ||
72 | this.fSat = pSat; | ||
73 | } | ||
74 | |||
75 | @Override | ||
76 | public Object get(final String parameterName) { | ||
77 | if ("Sat".equals(parameterName)) return this.fSat; | ||
78 | return null; | ||
79 | } | ||
80 | |||
81 | public satellite.SmallSat getSat() { | ||
82 | return this.fSat; | ||
83 | } | ||
84 | |||
85 | @Override | ||
86 | public boolean set(final String parameterName, final Object newValue) { | ||
87 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
88 | if ("Sat".equals(parameterName) ) { | ||
89 | this.fSat = (satellite.SmallSat) newValue; | ||
90 | return true; | ||
91 | } | ||
92 | return false; | ||
93 | } | ||
94 | |||
95 | public void setSat(final satellite.SmallSat pSat) { | ||
96 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
97 | this.fSat = pSat; | ||
98 | } | ||
99 | |||
100 | @Override | ||
101 | public String patternName() { | ||
102 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public List<String> parameterNames() { | ||
107 | return SmallSat.Match.parameterNames; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public Object[] toArray() { | ||
112 | return new Object[]{fSat}; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public SmallSat.Match toImmutable() { | ||
117 | return isMutable() ? newMatch(fSat) : this; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public String prettyPrint() { | ||
122 | StringBuilder result = new StringBuilder(); | ||
123 | result.append("\"Sat\"=" + prettyPrintValue(fSat)); | ||
124 | return result.toString(); | ||
125 | } | ||
126 | |||
127 | @Override | ||
128 | public int hashCode() { | ||
129 | return Objects.hash(fSat); | ||
130 | } | ||
131 | |||
132 | @Override | ||
133 | public boolean equals(final Object obj) { | ||
134 | if (this == obj) | ||
135 | return true; | ||
136 | if (obj == null) { | ||
137 | return false; | ||
138 | } | ||
139 | if ((obj instanceof SmallSat.Match)) { | ||
140 | SmallSat.Match other = (SmallSat.Match) obj; | ||
141 | return Objects.equals(fSat, other.fSat); | ||
142 | } else { | ||
143 | // this should be infrequent | ||
144 | if (!(obj instanceof IPatternMatch)) { | ||
145 | return false; | ||
146 | } | ||
147 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
148 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
149 | } | ||
150 | } | ||
151 | |||
152 | @Override | ||
153 | public SmallSat specification() { | ||
154 | return SmallSat.instance(); | ||
155 | } | ||
156 | |||
157 | /** | ||
158 | * Returns an empty, mutable match. | ||
159 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
160 | * | ||
161 | * @return the empty match. | ||
162 | * | ||
163 | */ | ||
164 | public static SmallSat.Match newEmptyMatch() { | ||
165 | return new Mutable(null); | ||
166 | } | ||
167 | |||
168 | /** | ||
169 | * Returns a mutable (partial) match. | ||
170 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
171 | * | ||
172 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
173 | * @return the new, mutable (partial) match object. | ||
174 | * | ||
175 | */ | ||
176 | public static SmallSat.Match newMutableMatch(final satellite.SmallSat pSat) { | ||
177 | return new Mutable(pSat); | ||
178 | } | ||
179 | |||
180 | /** | ||
181 | * Returns a new (partial) match. | ||
182 | * This can be used e.g. to call the matcher with a partial match. | ||
183 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
184 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
185 | * @return the (partial) match object. | ||
186 | * | ||
187 | */ | ||
188 | public static SmallSat.Match newMatch(final satellite.SmallSat pSat) { | ||
189 | return new Immutable(pSat); | ||
190 | } | ||
191 | |||
192 | private static final class Mutable extends SmallSat.Match { | ||
193 | Mutable(final satellite.SmallSat pSat) { | ||
194 | super(pSat); | ||
195 | } | ||
196 | |||
197 | @Override | ||
198 | public boolean isMutable() { | ||
199 | return true; | ||
200 | } | ||
201 | } | ||
202 | |||
203 | private static final class Immutable extends SmallSat.Match { | ||
204 | Immutable(final satellite.SmallSat pSat) { | ||
205 | super(pSat); | ||
206 | } | ||
207 | |||
208 | @Override | ||
209 | public boolean isMutable() { | ||
210 | return false; | ||
211 | } | ||
212 | } | ||
213 | } | ||
214 | |||
215 | /** | ||
216 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat pattern, | ||
217 | * providing pattern-specific query methods. | ||
218 | * | ||
219 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
220 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
221 | * | ||
222 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
223 | * | ||
224 | * <p>Original source: | ||
225 | * <code><pre> | ||
226 | * pattern smallSat(Sat : SmallSat) { | ||
227 | * SmallSat(Sat); | ||
228 | * } | ||
229 | * </pre></code> | ||
230 | * | ||
231 | * @see Match | ||
232 | * @see SmallSat | ||
233 | * | ||
234 | */ | ||
235 | public static class Matcher extends BaseMatcher<SmallSat.Match> { | ||
236 | /** | ||
237 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
238 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
239 | * | ||
240 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
241 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
242 | * | ||
243 | */ | ||
244 | public static SmallSat.Matcher on(final ViatraQueryEngine engine) { | ||
245 | // check if matcher already exists | ||
246 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
247 | if (matcher == null) { | ||
248 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
249 | } | ||
250 | return matcher; | ||
251 | } | ||
252 | |||
253 | /** | ||
254 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
255 | * @return an initialized matcher | ||
256 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
257 | * | ||
258 | */ | ||
259 | public static SmallSat.Matcher create() { | ||
260 | return new Matcher(); | ||
261 | } | ||
262 | |||
263 | private static final int POSITION_SAT = 0; | ||
264 | |||
265 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SmallSat.Matcher.class); | ||
266 | |||
267 | /** | ||
268 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
269 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
270 | * | ||
271 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
272 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
273 | * | ||
274 | */ | ||
275 | private Matcher() { | ||
276 | super(querySpecification()); | ||
277 | } | ||
278 | |||
279 | /** | ||
280 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
281 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
282 | * @return matches represented as a Match object. | ||
283 | * | ||
284 | */ | ||
285 | public Collection<SmallSat.Match> getAllMatches(final satellite.SmallSat pSat) { | ||
286 | return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet()); | ||
287 | } | ||
288 | |||
289 | /** | ||
290 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
291 | * </p> | ||
292 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
293 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
294 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
295 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
296 | * @return a stream of matches represented as a Match object. | ||
297 | * | ||
298 | */ | ||
299 | public Stream<SmallSat.Match> streamAllMatches(final satellite.SmallSat pSat) { | ||
300 | return rawStreamAllMatches(new Object[]{pSat}); | ||
301 | } | ||
302 | |||
303 | /** | ||
304 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
305 | * Neither determinism nor randomness of selection is guaranteed. | ||
306 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
307 | * @return a match represented as a Match object, or null if no match is found. | ||
308 | * | ||
309 | */ | ||
310 | public Optional<SmallSat.Match> getOneArbitraryMatch(final satellite.SmallSat pSat) { | ||
311 | return rawGetOneArbitraryMatch(new Object[]{pSat}); | ||
312 | } | ||
313 | |||
314 | /** | ||
315 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
316 | * under any possible substitution of the unspecified parameters (if any). | ||
317 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
318 | * @return true if the input is a valid (partial) match of the pattern. | ||
319 | * | ||
320 | */ | ||
321 | public boolean hasMatch(final satellite.SmallSat pSat) { | ||
322 | return rawHasMatch(new Object[]{pSat}); | ||
323 | } | ||
324 | |||
325 | /** | ||
326 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
327 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
328 | * @return the number of pattern matches found. | ||
329 | * | ||
330 | */ | ||
331 | public int countMatches(final satellite.SmallSat pSat) { | ||
332 | return rawCountMatches(new Object[]{pSat}); | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
337 | * Neither determinism nor randomness of selection is guaranteed. | ||
338 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
339 | * @param processor the action that will process the selected match. | ||
340 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
341 | * | ||
342 | */ | ||
343 | public boolean forOneArbitraryMatch(final satellite.SmallSat pSat, final Consumer<? super SmallSat.Match> processor) { | ||
344 | return rawForOneArbitraryMatch(new Object[]{pSat}, processor); | ||
345 | } | ||
346 | |||
347 | /** | ||
348 | * Returns a new (partial) match. | ||
349 | * This can be used e.g. to call the matcher with a partial match. | ||
350 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
351 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
352 | * @return the (partial) match object. | ||
353 | * | ||
354 | */ | ||
355 | public SmallSat.Match newMatch(final satellite.SmallSat pSat) { | ||
356 | return SmallSat.Match.newMatch(pSat); | ||
357 | } | ||
358 | |||
359 | /** | ||
360 | * Retrieve the set of values that occur in matches for Sat. | ||
361 | * @return the Set of all values or empty set if there are no matches | ||
362 | * | ||
363 | */ | ||
364 | protected Stream<satellite.SmallSat> rawStreamAllValuesOfSat(final Object[] parameters) { | ||
365 | return rawStreamAllValues(POSITION_SAT, parameters).map(satellite.SmallSat.class::cast); | ||
366 | } | ||
367 | |||
368 | /** | ||
369 | * Retrieve the set of values that occur in matches for Sat. | ||
370 | * @return the Set of all values or empty set if there are no matches | ||
371 | * | ||
372 | */ | ||
373 | public Set<satellite.SmallSat> getAllValuesOfSat() { | ||
374 | return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet()); | ||
375 | } | ||
376 | |||
377 | /** | ||
378 | * Retrieve the set of values that occur in matches for Sat. | ||
379 | * @return the Set of all values or empty set if there are no matches | ||
380 | * | ||
381 | */ | ||
382 | public Stream<satellite.SmallSat> streamAllValuesOfSat() { | ||
383 | return rawStreamAllValuesOfSat(emptyArray()); | ||
384 | } | ||
385 | |||
386 | @Override | ||
387 | protected SmallSat.Match tupleToMatch(final Tuple t) { | ||
388 | try { | ||
389 | return SmallSat.Match.newMatch((satellite.SmallSat) t.get(POSITION_SAT)); | ||
390 | } catch(ClassCastException e) { | ||
391 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
392 | return null; | ||
393 | } | ||
394 | } | ||
395 | |||
396 | @Override | ||
397 | protected SmallSat.Match arrayToMatch(final Object[] match) { | ||
398 | try { | ||
399 | return SmallSat.Match.newMatch((satellite.SmallSat) match[POSITION_SAT]); | ||
400 | } catch(ClassCastException e) { | ||
401 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
402 | return null; | ||
403 | } | ||
404 | } | ||
405 | |||
406 | @Override | ||
407 | protected SmallSat.Match arrayToMatchMutable(final Object[] match) { | ||
408 | try { | ||
409 | return SmallSat.Match.newMutableMatch((satellite.SmallSat) match[POSITION_SAT]); | ||
410 | } catch(ClassCastException e) { | ||
411 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
412 | return null; | ||
413 | } | ||
414 | } | ||
415 | |||
416 | /** | ||
417 | * @return the singleton instance of the query specification of this pattern | ||
418 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
419 | * | ||
420 | */ | ||
421 | public static IQuerySpecification<SmallSat.Matcher> querySpecification() { | ||
422 | return SmallSat.instance(); | ||
423 | } | ||
424 | } | ||
425 | |||
426 | private SmallSat() { | ||
427 | super(GeneratedPQuery.INSTANCE); | ||
428 | } | ||
429 | |||
430 | /** | ||
431 | * @return the singleton instance of the query specification | ||
432 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
433 | * | ||
434 | */ | ||
435 | public static SmallSat instance() { | ||
436 | try{ | ||
437 | return LazyHolder.INSTANCE; | ||
438 | } catch (ExceptionInInitializerError err) { | ||
439 | throw processInitializerError(err); | ||
440 | } | ||
441 | } | ||
442 | |||
443 | @Override | ||
444 | protected SmallSat.Matcher instantiate(final ViatraQueryEngine engine) { | ||
445 | return SmallSat.Matcher.on(engine); | ||
446 | } | ||
447 | |||
448 | @Override | ||
449 | public SmallSat.Matcher instantiate() { | ||
450 | return SmallSat.Matcher.create(); | ||
451 | } | ||
452 | |||
453 | @Override | ||
454 | public SmallSat.Match newEmptyMatch() { | ||
455 | return SmallSat.Match.newEmptyMatch(); | ||
456 | } | ||
457 | |||
458 | @Override | ||
459 | public SmallSat.Match newMatch(final Object... parameters) { | ||
460 | return SmallSat.Match.newMatch((satellite.SmallSat) parameters[0]); | ||
461 | } | ||
462 | |||
463 | /** | ||
464 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
465 | * <b>not</b> at the class load time of the outer class, | ||
466 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
467 | * | ||
468 | * <p> This workaround is required e.g. to support recursion. | ||
469 | * | ||
470 | */ | ||
471 | private static class LazyHolder { | ||
472 | private static final SmallSat INSTANCE = new SmallSat(); | ||
473 | |||
474 | /** | ||
475 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
476 | * This initialization order is required to support indirect recursion. | ||
477 | * | ||
478 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
479 | * | ||
480 | */ | ||
481 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
482 | |||
483 | public static Object ensureInitialized() { | ||
484 | INSTANCE.ensureInitializedInternal(); | ||
485 | return null; | ||
486 | } | ||
487 | } | ||
488 | |||
489 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
490 | private static final SmallSat.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
491 | |||
492 | private final PParameter parameter_Sat = new PParameter("Sat", "satellite.SmallSat", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "SmallSat")), PParameterDirection.INOUT); | ||
493 | |||
494 | private final List<PParameter> parameters = Arrays.asList(parameter_Sat); | ||
495 | |||
496 | private GeneratedPQuery() { | ||
497 | super(PVisibility.PUBLIC); | ||
498 | } | ||
499 | |||
500 | @Override | ||
501 | public String getFullyQualifiedName() { | ||
502 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"; | ||
503 | } | ||
504 | |||
505 | @Override | ||
506 | public List<String> getParameterNames() { | ||
507 | return Arrays.asList("Sat"); | ||
508 | } | ||
509 | |||
510 | @Override | ||
511 | public List<PParameter> getParameters() { | ||
512 | return parameters; | ||
513 | } | ||
514 | |||
515 | @Override | ||
516 | public Set<PBody> doGetContainedBodies() { | ||
517 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
518 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
519 | { | ||
520 | PBody body = new PBody(this); | ||
521 | PVariable var_Sat = body.getOrCreateVariableByName("Sat"); | ||
522 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat"))); | ||
523 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
524 | new ExportedParameter(body, var_Sat, parameter_Sat) | ||
525 | )); | ||
526 | // SmallSat(Sat) | ||
527 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat"))); | ||
528 | bodies.add(body); | ||
529 | } | ||
530 | return bodies; | ||
531 | } | ||
532 | } | ||
533 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java new file mode 100644 index 00000000..ed0bd7dc --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SpacecraftOfKind.java | |||
@@ -0,0 +1,754 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
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.EDataType; | ||
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.EDataTypeInSlotsKey; | ||
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.basicdeferred.Equality; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
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 | import satellite.Spacecraft; | ||
43 | import satellite.SpacecraftKind; | ||
44 | |||
45 | /** | ||
46 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
47 | * | ||
48 | * <p>Original source: | ||
49 | * <code><pre> | ||
50 | * {@literal @}QueryBasedFeature(feature = "kind") | ||
51 | * pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) { | ||
52 | * CubeSat3U(Spacecraft); | ||
53 | * Kind == SpacecraftKind::CubeSat3U; | ||
54 | * } or { | ||
55 | * CubeSat6U(Spacecraft); | ||
56 | * Kind == SpacecraftKind::CubeSat6U; | ||
57 | * } or { | ||
58 | * SmallSat(Spacecraft); | ||
59 | * Kind == SpacecraftKind::SmallSat; | ||
60 | * } | ||
61 | * </pre></code> | ||
62 | * | ||
63 | * @see Matcher | ||
64 | * @see Match | ||
65 | * | ||
66 | */ | ||
67 | @SuppressWarnings("all") | ||
68 | public final class SpacecraftOfKind extends BaseGeneratedEMFQuerySpecification<SpacecraftOfKind.Matcher> { | ||
69 | /** | ||
70 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind pattern, | ||
71 | * to be used in conjunction with {@link Matcher}. | ||
72 | * | ||
73 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
74 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
75 | * usable to represent a match of the pattern in the result of a query, | ||
76 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
77 | * | ||
78 | * @see Matcher | ||
79 | * | ||
80 | */ | ||
81 | public static abstract class Match extends BasePatternMatch { | ||
82 | private Spacecraft fSpacecraft; | ||
83 | |||
84 | private SpacecraftKind fKind; | ||
85 | |||
86 | private static List<String> parameterNames = makeImmutableList("Spacecraft", "Kind"); | ||
87 | |||
88 | private Match(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
89 | this.fSpacecraft = pSpacecraft; | ||
90 | this.fKind = pKind; | ||
91 | } | ||
92 | |||
93 | @Override | ||
94 | public Object get(final String parameterName) { | ||
95 | if ("Spacecraft".equals(parameterName)) return this.fSpacecraft; | ||
96 | if ("Kind".equals(parameterName)) return this.fKind; | ||
97 | return null; | ||
98 | } | ||
99 | |||
100 | public Spacecraft getSpacecraft() { | ||
101 | return this.fSpacecraft; | ||
102 | } | ||
103 | |||
104 | public SpacecraftKind getKind() { | ||
105 | return this.fKind; | ||
106 | } | ||
107 | |||
108 | @Override | ||
109 | public boolean set(final String parameterName, final Object newValue) { | ||
110 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
111 | if ("Spacecraft".equals(parameterName) ) { | ||
112 | this.fSpacecraft = (Spacecraft) newValue; | ||
113 | return true; | ||
114 | } | ||
115 | if ("Kind".equals(parameterName) ) { | ||
116 | this.fKind = (SpacecraftKind) newValue; | ||
117 | return true; | ||
118 | } | ||
119 | return false; | ||
120 | } | ||
121 | |||
122 | public void setSpacecraft(final Spacecraft pSpacecraft) { | ||
123 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
124 | this.fSpacecraft = pSpacecraft; | ||
125 | } | ||
126 | |||
127 | public void setKind(final SpacecraftKind pKind) { | ||
128 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
129 | this.fKind = pKind; | ||
130 | } | ||
131 | |||
132 | @Override | ||
133 | public String patternName() { | ||
134 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"; | ||
135 | } | ||
136 | |||
137 | @Override | ||
138 | public List<String> parameterNames() { | ||
139 | return SpacecraftOfKind.Match.parameterNames; | ||
140 | } | ||
141 | |||
142 | @Override | ||
143 | public Object[] toArray() { | ||
144 | return new Object[]{fSpacecraft, fKind}; | ||
145 | } | ||
146 | |||
147 | @Override | ||
148 | public SpacecraftOfKind.Match toImmutable() { | ||
149 | return isMutable() ? newMatch(fSpacecraft, fKind) : this; | ||
150 | } | ||
151 | |||
152 | @Override | ||
153 | public String prettyPrint() { | ||
154 | StringBuilder result = new StringBuilder(); | ||
155 | result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft) + ", "); | ||
156 | result.append("\"Kind\"=" + prettyPrintValue(fKind)); | ||
157 | return result.toString(); | ||
158 | } | ||
159 | |||
160 | @Override | ||
161 | public int hashCode() { | ||
162 | return Objects.hash(fSpacecraft, fKind); | ||
163 | } | ||
164 | |||
165 | @Override | ||
166 | public boolean equals(final Object obj) { | ||
167 | if (this == obj) | ||
168 | return true; | ||
169 | if (obj == null) { | ||
170 | return false; | ||
171 | } | ||
172 | if ((obj instanceof SpacecraftOfKind.Match)) { | ||
173 | SpacecraftOfKind.Match other = (SpacecraftOfKind.Match) obj; | ||
174 | return Objects.equals(fSpacecraft, other.fSpacecraft) && Objects.equals(fKind, other.fKind); | ||
175 | } else { | ||
176 | // this should be infrequent | ||
177 | if (!(obj instanceof IPatternMatch)) { | ||
178 | return false; | ||
179 | } | ||
180 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
181 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
182 | } | ||
183 | } | ||
184 | |||
185 | @Override | ||
186 | public SpacecraftOfKind specification() { | ||
187 | return SpacecraftOfKind.instance(); | ||
188 | } | ||
189 | |||
190 | /** | ||
191 | * Returns an empty, mutable match. | ||
192 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
193 | * | ||
194 | * @return the empty match. | ||
195 | * | ||
196 | */ | ||
197 | public static SpacecraftOfKind.Match newEmptyMatch() { | ||
198 | return new Mutable(null, null); | ||
199 | } | ||
200 | |||
201 | /** | ||
202 | * Returns a mutable (partial) match. | ||
203 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
204 | * | ||
205 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
206 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
207 | * @return the new, mutable (partial) match object. | ||
208 | * | ||
209 | */ | ||
210 | public static SpacecraftOfKind.Match newMutableMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
211 | return new Mutable(pSpacecraft, pKind); | ||
212 | } | ||
213 | |||
214 | /** | ||
215 | * Returns a new (partial) match. | ||
216 | * This can be used e.g. to call the matcher with a partial match. | ||
217 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
218 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
219 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
220 | * @return the (partial) match object. | ||
221 | * | ||
222 | */ | ||
223 | public static SpacecraftOfKind.Match newMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
224 | return new Immutable(pSpacecraft, pKind); | ||
225 | } | ||
226 | |||
227 | private static final class Mutable extends SpacecraftOfKind.Match { | ||
228 | Mutable(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
229 | super(pSpacecraft, pKind); | ||
230 | } | ||
231 | |||
232 | @Override | ||
233 | public boolean isMutable() { | ||
234 | return true; | ||
235 | } | ||
236 | } | ||
237 | |||
238 | private static final class Immutable extends SpacecraftOfKind.Match { | ||
239 | Immutable(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
240 | super(pSpacecraft, pKind); | ||
241 | } | ||
242 | |||
243 | @Override | ||
244 | public boolean isMutable() { | ||
245 | return false; | ||
246 | } | ||
247 | } | ||
248 | } | ||
249 | |||
250 | /** | ||
251 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind pattern, | ||
252 | * providing pattern-specific query methods. | ||
253 | * | ||
254 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
255 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
256 | * | ||
257 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
258 | * | ||
259 | * <p>Original source: | ||
260 | * <code><pre> | ||
261 | * {@literal @}QueryBasedFeature(feature = "kind") | ||
262 | * pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) { | ||
263 | * CubeSat3U(Spacecraft); | ||
264 | * Kind == SpacecraftKind::CubeSat3U; | ||
265 | * } or { | ||
266 | * CubeSat6U(Spacecraft); | ||
267 | * Kind == SpacecraftKind::CubeSat6U; | ||
268 | * } or { | ||
269 | * SmallSat(Spacecraft); | ||
270 | * Kind == SpacecraftKind::SmallSat; | ||
271 | * } | ||
272 | * </pre></code> | ||
273 | * | ||
274 | * @see Match | ||
275 | * @see SpacecraftOfKind | ||
276 | * | ||
277 | */ | ||
278 | public static class Matcher extends BaseMatcher<SpacecraftOfKind.Match> { | ||
279 | /** | ||
280 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
281 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
282 | * | ||
283 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
284 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
285 | * | ||
286 | */ | ||
287 | public static SpacecraftOfKind.Matcher on(final ViatraQueryEngine engine) { | ||
288 | // check if matcher already exists | ||
289 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
290 | if (matcher == null) { | ||
291 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
292 | } | ||
293 | return matcher; | ||
294 | } | ||
295 | |||
296 | /** | ||
297 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
298 | * @return an initialized matcher | ||
299 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
300 | * | ||
301 | */ | ||
302 | public static SpacecraftOfKind.Matcher create() { | ||
303 | return new Matcher(); | ||
304 | } | ||
305 | |||
306 | private static final int POSITION_SPACECRAFT = 0; | ||
307 | |||
308 | private static final int POSITION_KIND = 1; | ||
309 | |||
310 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SpacecraftOfKind.Matcher.class); | ||
311 | |||
312 | /** | ||
313 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
314 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
315 | * | ||
316 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
317 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
318 | * | ||
319 | */ | ||
320 | private Matcher() { | ||
321 | super(querySpecification()); | ||
322 | } | ||
323 | |||
324 | /** | ||
325 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
326 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
327 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
328 | * @return matches represented as a Match object. | ||
329 | * | ||
330 | */ | ||
331 | public Collection<SpacecraftOfKind.Match> getAllMatches(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
332 | return rawStreamAllMatches(new Object[]{pSpacecraft, pKind}).collect(Collectors.toSet()); | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
337 | * </p> | ||
338 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
339 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
340 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
341 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
342 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
343 | * @return a stream of matches represented as a Match object. | ||
344 | * | ||
345 | */ | ||
346 | public Stream<SpacecraftOfKind.Match> streamAllMatches(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
347 | return rawStreamAllMatches(new Object[]{pSpacecraft, pKind}); | ||
348 | } | ||
349 | |||
350 | /** | ||
351 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
352 | * Neither determinism nor randomness of selection is guaranteed. | ||
353 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
354 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
355 | * @return a match represented as a Match object, or null if no match is found. | ||
356 | * | ||
357 | */ | ||
358 | public Optional<SpacecraftOfKind.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
359 | return rawGetOneArbitraryMatch(new Object[]{pSpacecraft, pKind}); | ||
360 | } | ||
361 | |||
362 | /** | ||
363 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
364 | * under any possible substitution of the unspecified parameters (if any). | ||
365 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
366 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
367 | * @return true if the input is a valid (partial) match of the pattern. | ||
368 | * | ||
369 | */ | ||
370 | public boolean hasMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
371 | return rawHasMatch(new Object[]{pSpacecraft, pKind}); | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
376 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
377 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
378 | * @return the number of pattern matches found. | ||
379 | * | ||
380 | */ | ||
381 | public int countMatches(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
382 | return rawCountMatches(new Object[]{pSpacecraft, pKind}); | ||
383 | } | ||
384 | |||
385 | /** | ||
386 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
387 | * Neither determinism nor randomness of selection is guaranteed. | ||
388 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
389 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
390 | * @param processor the action that will process the selected match. | ||
391 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
392 | * | ||
393 | */ | ||
394 | public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind, final Consumer<? super SpacecraftOfKind.Match> processor) { | ||
395 | return rawForOneArbitraryMatch(new Object[]{pSpacecraft, pKind}, processor); | ||
396 | } | ||
397 | |||
398 | /** | ||
399 | * Returns a new (partial) match. | ||
400 | * This can be used e.g. to call the matcher with a partial match. | ||
401 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
402 | * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound. | ||
403 | * @param pKind the fixed value of pattern parameter Kind, or null if not bound. | ||
404 | * @return the (partial) match object. | ||
405 | * | ||
406 | */ | ||
407 | public SpacecraftOfKind.Match newMatch(final Spacecraft pSpacecraft, final SpacecraftKind pKind) { | ||
408 | return SpacecraftOfKind.Match.newMatch(pSpacecraft, pKind); | ||
409 | } | ||
410 | |||
411 | /** | ||
412 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
413 | * @return the Set of all values or empty set if there are no matches | ||
414 | * | ||
415 | */ | ||
416 | protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) { | ||
417 | return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast); | ||
418 | } | ||
419 | |||
420 | /** | ||
421 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
422 | * @return the Set of all values or empty set if there are no matches | ||
423 | * | ||
424 | */ | ||
425 | public Set<Spacecraft> getAllValuesOfSpacecraft() { | ||
426 | return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet()); | ||
427 | } | ||
428 | |||
429 | /** | ||
430 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
431 | * @return the Set of all values or empty set if there are no matches | ||
432 | * | ||
433 | */ | ||
434 | public Stream<Spacecraft> streamAllValuesOfSpacecraft() { | ||
435 | return rawStreamAllValuesOfSpacecraft(emptyArray()); | ||
436 | } | ||
437 | |||
438 | /** | ||
439 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
440 | * </p> | ||
441 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
442 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
443 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
444 | * | ||
445 | * @return the Stream of all values or empty set if there are no matches | ||
446 | * | ||
447 | */ | ||
448 | public Stream<Spacecraft> streamAllValuesOfSpacecraft(final SpacecraftOfKind.Match partialMatch) { | ||
449 | return rawStreamAllValuesOfSpacecraft(partialMatch.toArray()); | ||
450 | } | ||
451 | |||
452 | /** | ||
453 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
454 | * </p> | ||
455 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
456 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
457 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
458 | * | ||
459 | * @return the Stream of all values or empty set if there are no matches | ||
460 | * | ||
461 | */ | ||
462 | public Stream<Spacecraft> streamAllValuesOfSpacecraft(final SpacecraftKind pKind) { | ||
463 | return rawStreamAllValuesOfSpacecraft(new Object[]{null, pKind}); | ||
464 | } | ||
465 | |||
466 | /** | ||
467 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
468 | * @return the Set of all values or empty set if there are no matches | ||
469 | * | ||
470 | */ | ||
471 | public Set<Spacecraft> getAllValuesOfSpacecraft(final SpacecraftOfKind.Match partialMatch) { | ||
472 | return rawStreamAllValuesOfSpacecraft(partialMatch.toArray()).collect(Collectors.toSet()); | ||
473 | } | ||
474 | |||
475 | /** | ||
476 | * Retrieve the set of values that occur in matches for Spacecraft. | ||
477 | * @return the Set of all values or empty set if there are no matches | ||
478 | * | ||
479 | */ | ||
480 | public Set<Spacecraft> getAllValuesOfSpacecraft(final SpacecraftKind pKind) { | ||
481 | return rawStreamAllValuesOfSpacecraft(new Object[]{null, pKind}).collect(Collectors.toSet()); | ||
482 | } | ||
483 | |||
484 | /** | ||
485 | * Retrieve the set of values that occur in matches for Kind. | ||
486 | * @return the Set of all values or empty set if there are no matches | ||
487 | * | ||
488 | */ | ||
489 | protected Stream<SpacecraftKind> rawStreamAllValuesOfKind(final Object[] parameters) { | ||
490 | return rawStreamAllValues(POSITION_KIND, parameters).map(SpacecraftKind.class::cast); | ||
491 | } | ||
492 | |||
493 | /** | ||
494 | * Retrieve the set of values that occur in matches for Kind. | ||
495 | * @return the Set of all values or empty set if there are no matches | ||
496 | * | ||
497 | */ | ||
498 | public Set<SpacecraftKind> getAllValuesOfKind() { | ||
499 | return rawStreamAllValuesOfKind(emptyArray()).collect(Collectors.toSet()); | ||
500 | } | ||
501 | |||
502 | /** | ||
503 | * Retrieve the set of values that occur in matches for Kind. | ||
504 | * @return the Set of all values or empty set if there are no matches | ||
505 | * | ||
506 | */ | ||
507 | public Stream<SpacecraftKind> streamAllValuesOfKind() { | ||
508 | return rawStreamAllValuesOfKind(emptyArray()); | ||
509 | } | ||
510 | |||
511 | /** | ||
512 | * Retrieve the set of values that occur in matches for Kind. | ||
513 | * </p> | ||
514 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
515 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
516 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
517 | * | ||
518 | * @return the Stream of all values or empty set if there are no matches | ||
519 | * | ||
520 | */ | ||
521 | public Stream<SpacecraftKind> streamAllValuesOfKind(final SpacecraftOfKind.Match partialMatch) { | ||
522 | return rawStreamAllValuesOfKind(partialMatch.toArray()); | ||
523 | } | ||
524 | |||
525 | /** | ||
526 | * Retrieve the set of values that occur in matches for Kind. | ||
527 | * </p> | ||
528 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
529 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
530 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
531 | * | ||
532 | * @return the Stream of all values or empty set if there are no matches | ||
533 | * | ||
534 | */ | ||
535 | public Stream<SpacecraftKind> streamAllValuesOfKind(final Spacecraft pSpacecraft) { | ||
536 | return rawStreamAllValuesOfKind(new Object[]{pSpacecraft, null}); | ||
537 | } | ||
538 | |||
539 | /** | ||
540 | * Retrieve the set of values that occur in matches for Kind. | ||
541 | * @return the Set of all values or empty set if there are no matches | ||
542 | * | ||
543 | */ | ||
544 | public Set<SpacecraftKind> getAllValuesOfKind(final SpacecraftOfKind.Match partialMatch) { | ||
545 | return rawStreamAllValuesOfKind(partialMatch.toArray()).collect(Collectors.toSet()); | ||
546 | } | ||
547 | |||
548 | /** | ||
549 | * Retrieve the set of values that occur in matches for Kind. | ||
550 | * @return the Set of all values or empty set if there are no matches | ||
551 | * | ||
552 | */ | ||
553 | public Set<SpacecraftKind> getAllValuesOfKind(final Spacecraft pSpacecraft) { | ||
554 | return rawStreamAllValuesOfKind(new Object[]{pSpacecraft, null}).collect(Collectors.toSet()); | ||
555 | } | ||
556 | |||
557 | @Override | ||
558 | protected SpacecraftOfKind.Match tupleToMatch(final Tuple t) { | ||
559 | try { | ||
560 | return SpacecraftOfKind.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT), (SpacecraftKind) t.get(POSITION_KIND)); | ||
561 | } catch(ClassCastException e) { | ||
562 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
563 | return null; | ||
564 | } | ||
565 | } | ||
566 | |||
567 | @Override | ||
568 | protected SpacecraftOfKind.Match arrayToMatch(final Object[] match) { | ||
569 | try { | ||
570 | return SpacecraftOfKind.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT], (SpacecraftKind) match[POSITION_KIND]); | ||
571 | } catch(ClassCastException e) { | ||
572 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
573 | return null; | ||
574 | } | ||
575 | } | ||
576 | |||
577 | @Override | ||
578 | protected SpacecraftOfKind.Match arrayToMatchMutable(final Object[] match) { | ||
579 | try { | ||
580 | return SpacecraftOfKind.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT], (SpacecraftKind) match[POSITION_KIND]); | ||
581 | } catch(ClassCastException e) { | ||
582 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
583 | return null; | ||
584 | } | ||
585 | } | ||
586 | |||
587 | /** | ||
588 | * @return the singleton instance of the query specification of this pattern | ||
589 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
590 | * | ||
591 | */ | ||
592 | public static IQuerySpecification<SpacecraftOfKind.Matcher> querySpecification() { | ||
593 | return SpacecraftOfKind.instance(); | ||
594 | } | ||
595 | } | ||
596 | |||
597 | private SpacecraftOfKind() { | ||
598 | super(GeneratedPQuery.INSTANCE); | ||
599 | } | ||
600 | |||
601 | /** | ||
602 | * @return the singleton instance of the query specification | ||
603 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
604 | * | ||
605 | */ | ||
606 | public static SpacecraftOfKind instance() { | ||
607 | try{ | ||
608 | return LazyHolder.INSTANCE; | ||
609 | } catch (ExceptionInInitializerError err) { | ||
610 | throw processInitializerError(err); | ||
611 | } | ||
612 | } | ||
613 | |||
614 | @Override | ||
615 | protected SpacecraftOfKind.Matcher instantiate(final ViatraQueryEngine engine) { | ||
616 | return SpacecraftOfKind.Matcher.on(engine); | ||
617 | } | ||
618 | |||
619 | @Override | ||
620 | public SpacecraftOfKind.Matcher instantiate() { | ||
621 | return SpacecraftOfKind.Matcher.create(); | ||
622 | } | ||
623 | |||
624 | @Override | ||
625 | public SpacecraftOfKind.Match newEmptyMatch() { | ||
626 | return SpacecraftOfKind.Match.newEmptyMatch(); | ||
627 | } | ||
628 | |||
629 | @Override | ||
630 | public SpacecraftOfKind.Match newMatch(final Object... parameters) { | ||
631 | return SpacecraftOfKind.Match.newMatch((satellite.Spacecraft) parameters[0], (satellite.SpacecraftKind) parameters[1]); | ||
632 | } | ||
633 | |||
634 | /** | ||
635 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
636 | * <b>not</b> at the class load time of the outer class, | ||
637 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind (visibility: PUBLIC, simpleName: SpacecraftOfKind, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
638 | * | ||
639 | * <p> This workaround is required e.g. to support recursion. | ||
640 | * | ||
641 | */ | ||
642 | private static class LazyHolder { | ||
643 | private static final SpacecraftOfKind INSTANCE = new SpacecraftOfKind(); | ||
644 | |||
645 | /** | ||
646 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
647 | * This initialization order is required to support indirect recursion. | ||
648 | * | ||
649 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
650 | * | ||
651 | */ | ||
652 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
653 | |||
654 | public static Object ensureInitialized() { | ||
655 | INSTANCE.ensureInitializedInternal(); | ||
656 | return null; | ||
657 | } | ||
658 | } | ||
659 | |||
660 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
661 | private static final SpacecraftOfKind.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
662 | |||
663 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
664 | |||
665 | private final PParameter parameter_Kind = new PParameter("Kind", "satellite.SpacecraftKind", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "SpacecraftKind")), PParameterDirection.INOUT); | ||
666 | |||
667 | private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft, parameter_Kind); | ||
668 | |||
669 | private GeneratedPQuery() { | ||
670 | super(PVisibility.PUBLIC); | ||
671 | } | ||
672 | |||
673 | @Override | ||
674 | public String getFullyQualifiedName() { | ||
675 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"; | ||
676 | } | ||
677 | |||
678 | @Override | ||
679 | public List<String> getParameterNames() { | ||
680 | return Arrays.asList("Spacecraft","Kind"); | ||
681 | } | ||
682 | |||
683 | @Override | ||
684 | public List<PParameter> getParameters() { | ||
685 | return parameters; | ||
686 | } | ||
687 | |||
688 | @Override | ||
689 | public Set<PBody> doGetContainedBodies() { | ||
690 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
691 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
692 | { | ||
693 | PBody body = new PBody(this); | ||
694 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
695 | PVariable var_Kind = body.getOrCreateVariableByName("Kind"); | ||
696 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
697 | new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
698 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
699 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
700 | new ExportedParameter(body, var_Kind, parameter_Kind) | ||
701 | )); | ||
702 | // CubeSat3U(Spacecraft) | ||
703 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U"))); | ||
704 | // Kind == SpacecraftKind::CubeSat3U | ||
705 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
706 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat3U").getInstance()); | ||
707 | new Equality(body, var_Kind, var__virtual_0_); | ||
708 | bodies.add(body); | ||
709 | } | ||
710 | { | ||
711 | PBody body = new PBody(this); | ||
712 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
713 | PVariable var_Kind = body.getOrCreateVariableByName("Kind"); | ||
714 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
715 | new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
716 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
717 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
718 | new ExportedParameter(body, var_Kind, parameter_Kind) | ||
719 | )); | ||
720 | // CubeSat6U(Spacecraft) | ||
721 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat6U"))); | ||
722 | // Kind == SpacecraftKind::CubeSat6U | ||
723 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
724 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "CubeSat6U").getInstance()); | ||
725 | new Equality(body, var_Kind, var__virtual_0_); | ||
726 | bodies.add(body); | ||
727 | } | ||
728 | { | ||
729 | PBody body = new PBody(this); | ||
730 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
731 | PVariable var_Kind = body.getOrCreateVariableByName("Kind"); | ||
732 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
733 | new TypeConstraint(body, Tuples.flatTupleOf(var_Kind), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "SpacecraftKind"))); | ||
734 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
735 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft), | ||
736 | new ExportedParameter(body, var_Kind, parameter_Kind) | ||
737 | )); | ||
738 | // SmallSat(Spacecraft) | ||
739 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat"))); | ||
740 | // Kind == SpacecraftKind::SmallSat | ||
741 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
742 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "SpacecraftKind", "SmallSat").getInstance()); | ||
743 | new Equality(body, var_Kind, var__virtual_0_); | ||
744 | bodies.add(body); | ||
745 | } | ||
746 | { | ||
747 | PAnnotation annotation = new PAnnotation("QueryBasedFeature"); | ||
748 | annotation.addAttribute("feature", "kind"); | ||
749 | addAnnotation(annotation); | ||
750 | } | ||
751 | return bodies; | ||
752 | } | ||
753 | } | ||
754 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java new file mode 100644 index 00000000..51b224b1 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java | |||
@@ -0,0 +1,600 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork; | ||
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 | import satellite.CubeSat3U; | ||
45 | |||
46 | /** | ||
47 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
48 | * | ||
49 | * <p>Original source: | ||
50 | * <code><pre> | ||
51 | * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter, | ||
52 | * // but cross-link using UHF | ||
53 | * | ||
54 | * {@literal @}Constraint(severity = "error", key = {Sat}, | ||
55 | * message = "3U CubeSats can only cross-link using UHF.") | ||
56 | * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) { | ||
57 | * CommunicatingElement.commSubsystem(Sat, SourceComm); | ||
58 | * neg find commSubsystemBandUhf(SourceComm); | ||
59 | * DirectedCommunicationLink.source(Link, SourceComm); | ||
60 | * DirectedCommunicationLink.target(Link, TargetComm); | ||
61 | * CommunicatingElement.commSubsystem(Target, TargetComm); | ||
62 | * neg find groundStationNetwork(Target); | ||
63 | * } | ||
64 | * </pre></code> | ||
65 | * | ||
66 | * @see Matcher | ||
67 | * @see Match | ||
68 | * | ||
69 | */ | ||
70 | @SuppressWarnings("all") | ||
71 | public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> { | ||
72 | /** | ||
73 | * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern, | ||
74 | * to be used in conjunction with {@link Matcher}. | ||
75 | * | ||
76 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
77 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
78 | * usable to represent a match of the pattern in the result of a query, | ||
79 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
80 | * | ||
81 | * @see Matcher | ||
82 | * | ||
83 | */ | ||
84 | public static abstract class Match extends BasePatternMatch { | ||
85 | private CubeSat3U fSat; | ||
86 | |||
87 | private static List<String> parameterNames = makeImmutableList("Sat"); | ||
88 | |||
89 | private Match(final CubeSat3U pSat) { | ||
90 | this.fSat = pSat; | ||
91 | } | ||
92 | |||
93 | @Override | ||
94 | public Object get(final String parameterName) { | ||
95 | if ("Sat".equals(parameterName)) return this.fSat; | ||
96 | return null; | ||
97 | } | ||
98 | |||
99 | public CubeSat3U getSat() { | ||
100 | return this.fSat; | ||
101 | } | ||
102 | |||
103 | @Override | ||
104 | public boolean set(final String parameterName, final Object newValue) { | ||
105 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
106 | if ("Sat".equals(parameterName) ) { | ||
107 | this.fSat = (CubeSat3U) newValue; | ||
108 | return true; | ||
109 | } | ||
110 | return false; | ||
111 | } | ||
112 | |||
113 | public void setSat(final CubeSat3U pSat) { | ||
114 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
115 | this.fSat = pSat; | ||
116 | } | ||
117 | |||
118 | @Override | ||
119 | public String patternName() { | ||
120 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"; | ||
121 | } | ||
122 | |||
123 | @Override | ||
124 | public List<String> parameterNames() { | ||
125 | return ThreeUCubeSatWithNonUhfCrossLink.Match.parameterNames; | ||
126 | } | ||
127 | |||
128 | @Override | ||
129 | public Object[] toArray() { | ||
130 | return new Object[]{fSat}; | ||
131 | } | ||
132 | |||
133 | @Override | ||
134 | public ThreeUCubeSatWithNonUhfCrossLink.Match toImmutable() { | ||
135 | return isMutable() ? newMatch(fSat) : this; | ||
136 | } | ||
137 | |||
138 | @Override | ||
139 | public String prettyPrint() { | ||
140 | StringBuilder result = new StringBuilder(); | ||
141 | result.append("\"Sat\"=" + prettyPrintValue(fSat)); | ||
142 | return result.toString(); | ||
143 | } | ||
144 | |||
145 | @Override | ||
146 | public int hashCode() { | ||
147 | return Objects.hash(fSat); | ||
148 | } | ||
149 | |||
150 | @Override | ||
151 | public boolean equals(final Object obj) { | ||
152 | if (this == obj) | ||
153 | return true; | ||
154 | if (obj == null) { | ||
155 | return false; | ||
156 | } | ||
157 | if ((obj instanceof ThreeUCubeSatWithNonUhfCrossLink.Match)) { | ||
158 | ThreeUCubeSatWithNonUhfCrossLink.Match other = (ThreeUCubeSatWithNonUhfCrossLink.Match) obj; | ||
159 | return Objects.equals(fSat, other.fSat); | ||
160 | } else { | ||
161 | // this should be infrequent | ||
162 | if (!(obj instanceof IPatternMatch)) { | ||
163 | return false; | ||
164 | } | ||
165 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
166 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
167 | } | ||
168 | } | ||
169 | |||
170 | @Override | ||
171 | public ThreeUCubeSatWithNonUhfCrossLink specification() { | ||
172 | return ThreeUCubeSatWithNonUhfCrossLink.instance(); | ||
173 | } | ||
174 | |||
175 | /** | ||
176 | * Returns an empty, mutable match. | ||
177 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
178 | * | ||
179 | * @return the empty match. | ||
180 | * | ||
181 | */ | ||
182 | public static ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() { | ||
183 | return new Mutable(null); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * Returns a mutable (partial) match. | ||
188 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
189 | * | ||
190 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
191 | * @return the new, mutable (partial) match object. | ||
192 | * | ||
193 | */ | ||
194 | public static ThreeUCubeSatWithNonUhfCrossLink.Match newMutableMatch(final CubeSat3U pSat) { | ||
195 | return new Mutable(pSat); | ||
196 | } | ||
197 | |||
198 | /** | ||
199 | * Returns a new (partial) match. | ||
200 | * This can be used e.g. to call the matcher with a partial match. | ||
201 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
202 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
203 | * @return the (partial) match object. | ||
204 | * | ||
205 | */ | ||
206 | public static ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) { | ||
207 | return new Immutable(pSat); | ||
208 | } | ||
209 | |||
210 | private static final class Mutable extends ThreeUCubeSatWithNonUhfCrossLink.Match { | ||
211 | Mutable(final CubeSat3U pSat) { | ||
212 | super(pSat); | ||
213 | } | ||
214 | |||
215 | @Override | ||
216 | public boolean isMutable() { | ||
217 | return true; | ||
218 | } | ||
219 | } | ||
220 | |||
221 | private static final class Immutable extends ThreeUCubeSatWithNonUhfCrossLink.Match { | ||
222 | Immutable(final CubeSat3U pSat) { | ||
223 | super(pSat); | ||
224 | } | ||
225 | |||
226 | @Override | ||
227 | public boolean isMutable() { | ||
228 | return false; | ||
229 | } | ||
230 | } | ||
231 | } | ||
232 | |||
233 | /** | ||
234 | * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern, | ||
235 | * providing pattern-specific query methods. | ||
236 | * | ||
237 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
238 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
239 | * | ||
240 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
241 | * | ||
242 | * <p>Original source: | ||
243 | * <code><pre> | ||
244 | * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter, | ||
245 | * // but cross-link using UHF | ||
246 | * | ||
247 | * {@literal @}Constraint(severity = "error", key = {Sat}, | ||
248 | * message = "3U CubeSats can only cross-link using UHF.") | ||
249 | * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) { | ||
250 | * CommunicatingElement.commSubsystem(Sat, SourceComm); | ||
251 | * neg find commSubsystemBandUhf(SourceComm); | ||
252 | * DirectedCommunicationLink.source(Link, SourceComm); | ||
253 | * DirectedCommunicationLink.target(Link, TargetComm); | ||
254 | * CommunicatingElement.commSubsystem(Target, TargetComm); | ||
255 | * neg find groundStationNetwork(Target); | ||
256 | * } | ||
257 | * </pre></code> | ||
258 | * | ||
259 | * @see Match | ||
260 | * @see ThreeUCubeSatWithNonUhfCrossLink | ||
261 | * | ||
262 | */ | ||
263 | public static class Matcher extends BaseMatcher<ThreeUCubeSatWithNonUhfCrossLink.Match> { | ||
264 | /** | ||
265 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
266 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
267 | * | ||
268 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
269 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
270 | * | ||
271 | */ | ||
272 | public static ThreeUCubeSatWithNonUhfCrossLink.Matcher on(final ViatraQueryEngine engine) { | ||
273 | // check if matcher already exists | ||
274 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
275 | if (matcher == null) { | ||
276 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
277 | } | ||
278 | return matcher; | ||
279 | } | ||
280 | |||
281 | /** | ||
282 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
283 | * @return an initialized matcher | ||
284 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
285 | * | ||
286 | */ | ||
287 | public static ThreeUCubeSatWithNonUhfCrossLink.Matcher create() { | ||
288 | return new Matcher(); | ||
289 | } | ||
290 | |||
291 | private static final int POSITION_SAT = 0; | ||
292 | |||
293 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(ThreeUCubeSatWithNonUhfCrossLink.Matcher.class); | ||
294 | |||
295 | /** | ||
296 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
297 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
298 | * | ||
299 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
300 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
301 | * | ||
302 | */ | ||
303 | private Matcher() { | ||
304 | super(querySpecification()); | ||
305 | } | ||
306 | |||
307 | /** | ||
308 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
309 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
310 | * @return matches represented as a Match object. | ||
311 | * | ||
312 | */ | ||
313 | public Collection<ThreeUCubeSatWithNonUhfCrossLink.Match> getAllMatches(final CubeSat3U pSat) { | ||
314 | return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet()); | ||
315 | } | ||
316 | |||
317 | /** | ||
318 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
319 | * </p> | ||
320 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
321 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
322 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
323 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
324 | * @return a stream of matches represented as a Match object. | ||
325 | * | ||
326 | */ | ||
327 | public Stream<ThreeUCubeSatWithNonUhfCrossLink.Match> streamAllMatches(final CubeSat3U pSat) { | ||
328 | return rawStreamAllMatches(new Object[]{pSat}); | ||
329 | } | ||
330 | |||
331 | /** | ||
332 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
333 | * Neither determinism nor randomness of selection is guaranteed. | ||
334 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
335 | * @return a match represented as a Match object, or null if no match is found. | ||
336 | * | ||
337 | */ | ||
338 | public Optional<ThreeUCubeSatWithNonUhfCrossLink.Match> getOneArbitraryMatch(final CubeSat3U pSat) { | ||
339 | return rawGetOneArbitraryMatch(new Object[]{pSat}); | ||
340 | } | ||
341 | |||
342 | /** | ||
343 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
344 | * under any possible substitution of the unspecified parameters (if any). | ||
345 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
346 | * @return true if the input is a valid (partial) match of the pattern. | ||
347 | * | ||
348 | */ | ||
349 | public boolean hasMatch(final CubeSat3U pSat) { | ||
350 | return rawHasMatch(new Object[]{pSat}); | ||
351 | } | ||
352 | |||
353 | /** | ||
354 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
355 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
356 | * @return the number of pattern matches found. | ||
357 | * | ||
358 | */ | ||
359 | public int countMatches(final CubeSat3U pSat) { | ||
360 | return rawCountMatches(new Object[]{pSat}); | ||
361 | } | ||
362 | |||
363 | /** | ||
364 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
365 | * Neither determinism nor randomness of selection is guaranteed. | ||
366 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
367 | * @param processor the action that will process the selected match. | ||
368 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
369 | * | ||
370 | */ | ||
371 | public boolean forOneArbitraryMatch(final CubeSat3U pSat, final Consumer<? super ThreeUCubeSatWithNonUhfCrossLink.Match> processor) { | ||
372 | return rawForOneArbitraryMatch(new Object[]{pSat}, processor); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * Returns a new (partial) match. | ||
377 | * This can be used e.g. to call the matcher with a partial match. | ||
378 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
379 | * @param pSat the fixed value of pattern parameter Sat, or null if not bound. | ||
380 | * @return the (partial) match object. | ||
381 | * | ||
382 | */ | ||
383 | public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) { | ||
384 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch(pSat); | ||
385 | } | ||
386 | |||
387 | /** | ||
388 | * Retrieve the set of values that occur in matches for Sat. | ||
389 | * @return the Set of all values or empty set if there are no matches | ||
390 | * | ||
391 | */ | ||
392 | protected Stream<CubeSat3U> rawStreamAllValuesOfSat(final Object[] parameters) { | ||
393 | return rawStreamAllValues(POSITION_SAT, parameters).map(CubeSat3U.class::cast); | ||
394 | } | ||
395 | |||
396 | /** | ||
397 | * Retrieve the set of values that occur in matches for Sat. | ||
398 | * @return the Set of all values or empty set if there are no matches | ||
399 | * | ||
400 | */ | ||
401 | public Set<CubeSat3U> getAllValuesOfSat() { | ||
402 | return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet()); | ||
403 | } | ||
404 | |||
405 | /** | ||
406 | * Retrieve the set of values that occur in matches for Sat. | ||
407 | * @return the Set of all values or empty set if there are no matches | ||
408 | * | ||
409 | */ | ||
410 | public Stream<CubeSat3U> streamAllValuesOfSat() { | ||
411 | return rawStreamAllValuesOfSat(emptyArray()); | ||
412 | } | ||
413 | |||
414 | @Override | ||
415 | protected ThreeUCubeSatWithNonUhfCrossLink.Match tupleToMatch(final Tuple t) { | ||
416 | try { | ||
417 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) t.get(POSITION_SAT)); | ||
418 | } catch(ClassCastException e) { | ||
419 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
420 | return null; | ||
421 | } | ||
422 | } | ||
423 | |||
424 | @Override | ||
425 | protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatch(final Object[] match) { | ||
426 | try { | ||
427 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) match[POSITION_SAT]); | ||
428 | } catch(ClassCastException e) { | ||
429 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
430 | return null; | ||
431 | } | ||
432 | } | ||
433 | |||
434 | @Override | ||
435 | protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatchMutable(final Object[] match) { | ||
436 | try { | ||
437 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMutableMatch((CubeSat3U) match[POSITION_SAT]); | ||
438 | } catch(ClassCastException e) { | ||
439 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
440 | return null; | ||
441 | } | ||
442 | } | ||
443 | |||
444 | /** | ||
445 | * @return the singleton instance of the query specification of this pattern | ||
446 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
447 | * | ||
448 | */ | ||
449 | public static IQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> querySpecification() { | ||
450 | return ThreeUCubeSatWithNonUhfCrossLink.instance(); | ||
451 | } | ||
452 | } | ||
453 | |||
454 | private ThreeUCubeSatWithNonUhfCrossLink() { | ||
455 | super(GeneratedPQuery.INSTANCE); | ||
456 | } | ||
457 | |||
458 | /** | ||
459 | * @return the singleton instance of the query specification | ||
460 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
461 | * | ||
462 | */ | ||
463 | public static ThreeUCubeSatWithNonUhfCrossLink instance() { | ||
464 | try{ | ||
465 | return LazyHolder.INSTANCE; | ||
466 | } catch (ExceptionInInitializerError err) { | ||
467 | throw processInitializerError(err); | ||
468 | } | ||
469 | } | ||
470 | |||
471 | @Override | ||
472 | protected ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate(final ViatraQueryEngine engine) { | ||
473 | return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine); | ||
474 | } | ||
475 | |||
476 | @Override | ||
477 | public ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate() { | ||
478 | return ThreeUCubeSatWithNonUhfCrossLink.Matcher.create(); | ||
479 | } | ||
480 | |||
481 | @Override | ||
482 | public ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() { | ||
483 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newEmptyMatch(); | ||
484 | } | ||
485 | |||
486 | @Override | ||
487 | public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Object... parameters) { | ||
488 | return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((satellite.CubeSat3U) parameters[0]); | ||
489 | } | ||
490 | |||
491 | /** | ||
492 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink (visibility: PUBLIC, simpleName: ThreeUCubeSatWithNonUhfCrossLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
493 | * <b>not</b> at the class load time of the outer class, | ||
494 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink (visibility: PUBLIC, simpleName: ThreeUCubeSatWithNonUhfCrossLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
495 | * | ||
496 | * <p> This workaround is required e.g. to support recursion. | ||
497 | * | ||
498 | */ | ||
499 | private static class LazyHolder { | ||
500 | private static final ThreeUCubeSatWithNonUhfCrossLink INSTANCE = new ThreeUCubeSatWithNonUhfCrossLink(); | ||
501 | |||
502 | /** | ||
503 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
504 | * This initialization order is required to support indirect recursion. | ||
505 | * | ||
506 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
507 | * | ||
508 | */ | ||
509 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
510 | |||
511 | public static Object ensureInitialized() { | ||
512 | INSTANCE.ensureInitializedInternal(); | ||
513 | return null; | ||
514 | } | ||
515 | } | ||
516 | |||
517 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
518 | private static final ThreeUCubeSatWithNonUhfCrossLink.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
519 | |||
520 | private final PParameter parameter_Sat = new PParameter("Sat", "satellite.CubeSat3U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat3U")), PParameterDirection.INOUT); | ||
521 | |||
522 | private final List<PParameter> parameters = Arrays.asList(parameter_Sat); | ||
523 | |||
524 | private GeneratedPQuery() { | ||
525 | super(PVisibility.PUBLIC); | ||
526 | } | ||
527 | |||
528 | @Override | ||
529 | public String getFullyQualifiedName() { | ||
530 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"; | ||
531 | } | ||
532 | |||
533 | @Override | ||
534 | public List<String> getParameterNames() { | ||
535 | return Arrays.asList("Sat"); | ||
536 | } | ||
537 | |||
538 | @Override | ||
539 | public List<PParameter> getParameters() { | ||
540 | return parameters; | ||
541 | } | ||
542 | |||
543 | @Override | ||
544 | public Set<PBody> doGetContainedBodies() { | ||
545 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
546 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
547 | { | ||
548 | PBody body = new PBody(this); | ||
549 | PVariable var_Sat = body.getOrCreateVariableByName("Sat"); | ||
550 | PVariable var_SourceComm = body.getOrCreateVariableByName("SourceComm"); | ||
551 | PVariable var_Link = body.getOrCreateVariableByName("Link"); | ||
552 | PVariable var_TargetComm = body.getOrCreateVariableByName("TargetComm"); | ||
553 | PVariable var_Target = body.getOrCreateVariableByName("Target"); | ||
554 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U"))); | ||
555 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
556 | new ExportedParameter(body, var_Sat, parameter_Sat) | ||
557 | )); | ||
558 | // CommunicatingElement.commSubsystem(Sat, SourceComm) | ||
559 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
560 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
561 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
562 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
563 | new Equality(body, var__virtual_0_, var_SourceComm); | ||
564 | // neg find commSubsystemBandUhf(SourceComm) | ||
565 | new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceComm), CommSubsystemBandUhf.instance().getInternalQueryRepresentation()); | ||
566 | // DirectedCommunicationLink.source(Link, SourceComm) | ||
567 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
568 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
569 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "source"))); | ||
570 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
571 | new Equality(body, var__virtual_1_, var_SourceComm); | ||
572 | // DirectedCommunicationLink.target(Link, TargetComm) | ||
573 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "DirectedCommunicationLink"))); | ||
574 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
575 | new TypeConstraint(body, Tuples.flatTupleOf(var_Link, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "DirectedCommunicationLink", "target"))); | ||
576 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
577 | new Equality(body, var__virtual_2_, var_TargetComm); | ||
578 | // CommunicatingElement.commSubsystem(Target, TargetComm) | ||
579 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
580 | PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}"); | ||
581 | new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
582 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
583 | new Equality(body, var__virtual_3_, var_TargetComm); | ||
584 | // neg find groundStationNetwork(Target) | ||
585 | new NegativePatternCall(body, Tuples.flatTupleOf(var_Target), GroundStationNetwork.instance().getInternalQueryRepresentation()); | ||
586 | bodies.add(body); | ||
587 | } | ||
588 | { | ||
589 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
590 | annotation.addAttribute("severity", "error"); | ||
591 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
592 | new ParameterReference("Sat") | ||
593 | })); | ||
594 | annotation.addAttribute("message", "3U CubeSats can only cross-link using UHF."); | ||
595 | addAnnotation(annotation); | ||
596 | } | ||
597 | return bodies; | ||
598 | } | ||
599 | } | ||
600 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/UhfAntennaGainNotLow.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/UhfAntennaGainNotLow.java new file mode 100644 index 00000000..99e472ea --- /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.queries.internal.CommSubsystemGainLow; | ||
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.basicdeferred.NegativePatternCall; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
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 | import satellite.CommSubsystem; | ||
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((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", "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..b50962c5 --- /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.queries.internal.CommSubsystemGainMedium; | ||
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.basicdeferred.NegativePatternCall; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
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 | import satellite.CommSubsystem; | ||
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((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", "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..4c8bcc9e --- /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,38 @@ | |||
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 | ||
34 | /.CrossLinkAllowed.java._trace | ||
35 | /.MatchingAntenna.java._trace | ||
36 | /.CubeSat3U.java._trace | ||
37 | /.LinkAllowed.java._trace | ||
38 | /.IndirectLinkAllowed.java._trace | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/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..58e7e183 --- /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", "satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT); | ||
92 | |||
93 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission); | ||
94 | |||
95 | private GeneratedPQuery() { | ||
96 | super(PVisibility.PRIVATE); | ||
97 | } | ||
98 | |||
99 | @Override | ||
100 | public String getFullyQualifiedName() { | ||
101 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads"; | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public List<String> getParameterNames() { | ||
106 | return Arrays.asList("Mission"); | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public List<PParameter> getParameters() { | ||
111 | return parameters; | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public Set<PBody> doGetContainedBodies() { | ||
116 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
117 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
118 | { | ||
119 | PBody body = new PBody(this); | ||
120 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
121 | PVariable var_Spacecraft1 = body.getOrCreateVariableByName("Spacecraft1"); | ||
122 | PVariable var_Spacecraft2 = body.getOrCreateVariableByName("Spacecraft2"); | ||
123 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission"))); | ||
124 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
125 | new ExportedParameter(body, var_Mission, parameter_Mission) | ||
126 | )); | ||
127 | // find spacecraftWithInterferometryPayload(Mission, Spacecraft1) | ||
128 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Mission, var_Spacecraft1), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation()); | ||
129 | // find spacecraftWithInterferometryPayload(Mission, Spacecraft2) | ||
130 | new PositivePatternCall(body, Tuples.flatTupleOf(var_Mission, var_Spacecraft2), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation()); | ||
131 | // Spacecraft1 != Spacecraft2 | ||
132 | new Inequality(body, var_Spacecraft1, var_Spacecraft2); | ||
133 | bodies.add(body); | ||
134 | } | ||
135 | return bodies; | ||
136 | } | ||
137 | } | ||
138 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBand.java new file mode 100644 index 00000000..609e0b93 --- /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", "satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT); | ||
91 | |||
92 | private final PParameter parameter_Band = new PParameter("Band", "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..bc25ea59 --- /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", "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..69793a96 --- /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", "satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT); | ||
91 | |||
92 | private final PParameter parameter_Gain = new PParameter("Gain", "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..fd24f163 --- /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", "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..82b77bbc --- /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", "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/CubeSat3U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java new file mode 100644 index 00000000..acc60475 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.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 cubeSat3U(Sat : CubeSat3U) { | ||
30 | * CubeSat3U(Sat); | ||
31 | * } | ||
32 | * </pre></code> | ||
33 | * | ||
34 | * @see GenericPatternMatcher | ||
35 | * @see GenericPatternMatch | ||
36 | * | ||
37 | */ | ||
38 | @SuppressWarnings("all") | ||
39 | public final class CubeSat3U extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
40 | private CubeSat3U() { | ||
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 CubeSat3U 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.CubeSat3U (visibility: PUBLIC, simpleName: CubeSat3U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
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.CubeSat3U (visibility: PUBLIC, simpleName: CubeSat3U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
61 | * | ||
62 | * <p> This workaround is required e.g. to support recursion. | ||
63 | * | ||
64 | */ | ||
65 | private static class LazyHolder { | ||
66 | private static final CubeSat3U INSTANCE = new CubeSat3U(); | ||
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 CubeSat3U.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
85 | |||
86 | private final PParameter parameter_Sat = new PParameter("Sat", "satellite.CubeSat3U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat3U")), PParameterDirection.INOUT); | ||
87 | |||
88 | private final List<PParameter> parameters = Arrays.asList(parameter_Sat); | ||
89 | |||
90 | private GeneratedPQuery() { | ||
91 | super(PVisibility.PRIVATE); | ||
92 | } | ||
93 | |||
94 | @Override | ||
95 | public String getFullyQualifiedName() { | ||
96 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat3U"; | ||
97 | } | ||
98 | |||
99 | @Override | ||
100 | public List<String> getParameterNames() { | ||
101 | return Arrays.asList("Sat"); | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public List<PParameter> getParameters() { | ||
106 | return parameters; | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public Set<PBody> doGetContainedBodies() { | ||
111 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
112 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
113 | { | ||
114 | PBody body = new PBody(this); | ||
115 | PVariable var_Sat = body.getOrCreateVariableByName("Sat"); | ||
116 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U"))); | ||
117 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
118 | new ExportedParameter(body, var_Sat, parameter_Sat) | ||
119 | )); | ||
120 | // CubeSat3U(Sat) | ||
121 | new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U"))); | ||
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/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..a2123354 --- /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", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
92 | |||
93 | private final PParameter parameter_Target = new PParameter("Target", "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..606cdfed --- /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", "satellite.GroundStationNetwork", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "GroundStationNetwork")), PParameterDirection.INOUT); | ||
87 | |||
88 | private final List<PParameter> parameters = Arrays.asList(parameter_Network); | ||
89 | |||
90 | private GeneratedPQuery() { | ||
91 | super(PVisibility.PRIVATE); | ||
92 | } | ||
93 | |||
94 | @Override | ||
95 | public String getFullyQualifiedName() { | ||
96 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork"; | ||
97 | } | ||
98 | |||
99 | @Override | ||
100 | public List<String> getParameterNames() { | ||
101 | return Arrays.asList("Network"); | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public List<PParameter> getParameters() { | ||
106 | return parameters; | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public Set<PBody> doGetContainedBodies() { | ||
111 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
112 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
113 | { | ||
114 | PBody body = new PBody(this); | ||
115 | PVariable var_Network = body.getOrCreateVariableByName("Network"); | ||
116 | new TypeConstraint(body, Tuples.flatTupleOf(var_Network), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork"))); | ||
117 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
118 | new ExportedParameter(body, var_Network, parameter_Network) | ||
119 | )); | ||
120 | // GroundStationNetwork(Network) | ||
121 | new TypeConstraint(body, Tuples.flatTupleOf(var_Network), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork"))); | ||
122 | bodies.add(body); | ||
123 | } | ||
124 | return bodies; | ||
125 | } | ||
126 | } | ||
127 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java new file mode 100644 index 00000000..dee8a83c --- /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", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
89 | |||
90 | private final PParameter parameter_Target = new PParameter("Target", "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/IndirectLinkAllowed.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java new file mode 100644 index 00000000..31381a09 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.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.LinkAllowed; | ||
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 indirectLinkAllowed(From : Spacecraft, To : CommunicatingElement) { | ||
32 | * find linkAllowed+(From, To); | ||
33 | * } | ||
34 | * </pre></code> | ||
35 | * | ||
36 | * @see GenericPatternMatcher | ||
37 | * @see GenericPatternMatch | ||
38 | * | ||
39 | */ | ||
40 | @SuppressWarnings("all") | ||
41 | public final class IndirectLinkAllowed extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
42 | private IndirectLinkAllowed() { | ||
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 IndirectLinkAllowed 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.IndirectLinkAllowed (visibility: PUBLIC, simpleName: IndirectLinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
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.IndirectLinkAllowed (visibility: PUBLIC, simpleName: IndirectLinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
63 | * | ||
64 | * <p> This workaround is required e.g. to support recursion. | ||
65 | * | ||
66 | */ | ||
67 | private static class LazyHolder { | ||
68 | private static final IndirectLinkAllowed INSTANCE = new IndirectLinkAllowed(); | ||
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 IndirectLinkAllowed.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
87 | |||
88 | private final PParameter parameter_From = new PParameter("From", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
89 | |||
90 | private final PParameter parameter_To = new PParameter("To", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
91 | |||
92 | private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To); | ||
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.indirectLinkAllowed"; | ||
101 | } | ||
102 | |||
103 | @Override | ||
104 | public List<String> getParameterNames() { | ||
105 | return Arrays.asList("From","To"); | ||
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_From = body.getOrCreateVariableByName("From"); | ||
120 | PVariable var_To = body.getOrCreateVariableByName("To"); | ||
121 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
122 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
123 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
124 | new ExportedParameter(body, var_From, parameter_From), | ||
125 | new ExportedParameter(body, var_To, parameter_To) | ||
126 | )); | ||
127 | // find linkAllowed+(From, To) | ||
128 | new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_From, var_To), LinkAllowed.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/LinkAllowed.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java new file mode 100644 index 00000000..7118d657 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java | |||
@@ -0,0 +1,185 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql | ||
3 | */ | ||
4 | package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal; | ||
5 | |||
6 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna; | ||
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.psystem.PBody; | ||
18 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
19 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
20 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.ConstantValue; | ||
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 linkAllowed(From : Spacecraft, To : CommunicatingElement) { | ||
35 | * find matchingAntenna(From, To, _); | ||
36 | * neg find cubeSat3U(From); | ||
37 | * } or { | ||
38 | * find matchingAntenna(From, To, TransceiverBand::UHF); | ||
39 | * CubeSat3U(From); | ||
40 | * } or { | ||
41 | * find matchingAntenna(From, To, _); | ||
42 | * CubeSat3U(From); | ||
43 | * GroundStationNetwork(To); | ||
44 | * } | ||
45 | * </pre></code> | ||
46 | * | ||
47 | * @see GenericPatternMatcher | ||
48 | * @see GenericPatternMatch | ||
49 | * | ||
50 | */ | ||
51 | @SuppressWarnings("all") | ||
52 | public final class LinkAllowed extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
53 | private LinkAllowed() { | ||
54 | super(GeneratedPQuery.INSTANCE); | ||
55 | } | ||
56 | |||
57 | /** | ||
58 | * @return the singleton instance of the query specification | ||
59 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
60 | * | ||
61 | */ | ||
62 | public static LinkAllowed instance() { | ||
63 | try{ | ||
64 | return LazyHolder.INSTANCE; | ||
65 | } catch (ExceptionInInitializerError err) { | ||
66 | throw processInitializerError(err); | ||
67 | } | ||
68 | } | ||
69 | |||
70 | /** | ||
71 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed (visibility: PUBLIC, simpleName: LinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
72 | * <b>not</b> at the class load time of the outer class, | ||
73 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed (visibility: PUBLIC, simpleName: LinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
74 | * | ||
75 | * <p> This workaround is required e.g. to support recursion. | ||
76 | * | ||
77 | */ | ||
78 | private static class LazyHolder { | ||
79 | private static final LinkAllowed INSTANCE = new LinkAllowed(); | ||
80 | |||
81 | /** | ||
82 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
83 | * This initialization order is required to support indirect recursion. | ||
84 | * | ||
85 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
86 | * | ||
87 | */ | ||
88 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
89 | |||
90 | public static Object ensureInitialized() { | ||
91 | INSTANCE.ensureInitializedInternal(); | ||
92 | return null; | ||
93 | } | ||
94 | } | ||
95 | |||
96 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
97 | private static final LinkAllowed.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
98 | |||
99 | private final PParameter parameter_From = new PParameter("From", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
100 | |||
101 | private final PParameter parameter_To = new PParameter("To", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
102 | |||
103 | private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To); | ||
104 | |||
105 | private GeneratedPQuery() { | ||
106 | super(PVisibility.PRIVATE); | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public String getFullyQualifiedName() { | ||
111 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.linkAllowed"; | ||
112 | } | ||
113 | |||
114 | @Override | ||
115 | public List<String> getParameterNames() { | ||
116 | return Arrays.asList("From","To"); | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public List<PParameter> getParameters() { | ||
121 | return parameters; | ||
122 | } | ||
123 | |||
124 | @Override | ||
125 | public Set<PBody> doGetContainedBodies() { | ||
126 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
127 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
128 | { | ||
129 | PBody body = new PBody(this); | ||
130 | PVariable var_From = body.getOrCreateVariableByName("From"); | ||
131 | PVariable var_To = body.getOrCreateVariableByName("To"); | ||
132 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
133 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
134 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
135 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
136 | new ExportedParameter(body, var_From, parameter_From), | ||
137 | new ExportedParameter(body, var_To, parameter_To) | ||
138 | )); | ||
139 | // find matchingAntenna(From, To, _) | ||
140 | new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To, var___0_), MatchingAntenna.instance().getInternalQueryRepresentation()); | ||
141 | // neg find cubeSat3U(From) | ||
142 | new NegativePatternCall(body, Tuples.flatTupleOf(var_From), CubeSat3U.instance().getInternalQueryRepresentation()); | ||
143 | bodies.add(body); | ||
144 | } | ||
145 | { | ||
146 | PBody body = new PBody(this); | ||
147 | PVariable var_From = body.getOrCreateVariableByName("From"); | ||
148 | PVariable var_To = body.getOrCreateVariableByName("To"); | ||
149 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
150 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
151 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
152 | new ExportedParameter(body, var_From, parameter_From), | ||
153 | new ExportedParameter(body, var_To, parameter_To) | ||
154 | )); | ||
155 | // find matchingAntenna(From, To, TransceiverBand::UHF) | ||
156 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
157 | new ConstantValue(body, var__virtual_0_, getEnumLiteral("http://www.example.org/satellite", "TransceiverBand", "UHF").getInstance()); | ||
158 | new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To, var__virtual_0_), MatchingAntenna.instance().getInternalQueryRepresentation()); | ||
159 | // CubeSat3U(From) | ||
160 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U"))); | ||
161 | bodies.add(body); | ||
162 | } | ||
163 | { | ||
164 | PBody body = new PBody(this); | ||
165 | PVariable var_From = body.getOrCreateVariableByName("From"); | ||
166 | PVariable var_To = body.getOrCreateVariableByName("To"); | ||
167 | PVariable var___0_ = body.getOrCreateVariableByName("_<0>"); | ||
168 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
169 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
170 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
171 | new ExportedParameter(body, var_From, parameter_From), | ||
172 | new ExportedParameter(body, var_To, parameter_To) | ||
173 | )); | ||
174 | // find matchingAntenna(From, To, _) | ||
175 | new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To, var___0_), MatchingAntenna.instance().getInternalQueryRepresentation()); | ||
176 | // CubeSat3U(From) | ||
177 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U"))); | ||
178 | // GroundStationNetwork(To) | ||
179 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork"))); | ||
180 | bodies.add(body); | ||
181 | } | ||
182 | return bodies; | ||
183 | } | ||
184 | } | ||
185 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java new file mode 100644 index 00000000..3a52ad1d --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java | |||
@@ -0,0 +1,179 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql | ||
3 | */ | ||
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 matchingAntenna(From : Spacecraft, To : CommunicatingElement, Band : TransceiverBand) { | ||
34 | * CommunicatingElement.commSubsystem.band(From, Band); | ||
35 | * CommunicatingElement.commSubsystem.band(To, Band); | ||
36 | * CommunicatingElement.commSubsystem.gain(From, Gain); | ||
37 | * CommunicatingElement.commSubsystem.gain(To, Gain); | ||
38 | * } | ||
39 | * </pre></code> | ||
40 | * | ||
41 | * @see GenericPatternMatcher | ||
42 | * @see GenericPatternMatch | ||
43 | * | ||
44 | */ | ||
45 | @SuppressWarnings("all") | ||
46 | public final class MatchingAntenna extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher { | ||
47 | private MatchingAntenna() { | ||
48 | super(GeneratedPQuery.INSTANCE); | ||
49 | } | ||
50 | |||
51 | /** | ||
52 | * @return the singleton instance of the query specification | ||
53 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
54 | * | ||
55 | */ | ||
56 | public static MatchingAntenna instance() { | ||
57 | try{ | ||
58 | return LazyHolder.INSTANCE; | ||
59 | } catch (ExceptionInInitializerError err) { | ||
60 | throw processInitializerError(err); | ||
61 | } | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna (visibility: PUBLIC, simpleName: MatchingAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
66 | * <b>not</b> at the class load time of the outer class, | ||
67 | * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna (visibility: PUBLIC, simpleName: MatchingAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
68 | * | ||
69 | * <p> This workaround is required e.g. to support recursion. | ||
70 | * | ||
71 | */ | ||
72 | private static class LazyHolder { | ||
73 | private static final MatchingAntenna INSTANCE = new MatchingAntenna(); | ||
74 | |||
75 | /** | ||
76 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
77 | * This initialization order is required to support indirect recursion. | ||
78 | * | ||
79 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
80 | * | ||
81 | */ | ||
82 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
83 | |||
84 | public static Object ensureInitialized() { | ||
85 | INSTANCE.ensureInitializedInternal(); | ||
86 | return null; | ||
87 | } | ||
88 | } | ||
89 | |||
90 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
91 | private static final MatchingAntenna.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
92 | |||
93 | private final PParameter parameter_From = new PParameter("From", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
94 | |||
95 | private final PParameter parameter_To = new PParameter("To", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT); | ||
96 | |||
97 | private final PParameter parameter_Band = new PParameter("Band", "satellite.TransceiverBand", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.example.org/satellite", "TransceiverBand")), PParameterDirection.INOUT); | ||
98 | |||
99 | private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To, parameter_Band); | ||
100 | |||
101 | private GeneratedPQuery() { | ||
102 | super(PVisibility.PRIVATE); | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public String getFullyQualifiedName() { | ||
107 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingAntenna"; | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<String> getParameterNames() { | ||
112 | return Arrays.asList("From","To","Band"); | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public List<PParameter> getParameters() { | ||
117 | return parameters; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public Set<PBody> doGetContainedBodies() { | ||
122 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
123 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
124 | { | ||
125 | PBody body = new PBody(this); | ||
126 | PVariable var_From = body.getOrCreateVariableByName("From"); | ||
127 | PVariable var_To = body.getOrCreateVariableByName("To"); | ||
128 | PVariable var_Band = body.getOrCreateVariableByName("Band"); | ||
129 | PVariable var_Gain = body.getOrCreateVariableByName("Gain"); | ||
130 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
131 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
132 | new TypeConstraint(body, Tuples.flatTupleOf(var_Band), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand"))); | ||
133 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
134 | new ExportedParameter(body, var_From, parameter_From), | ||
135 | new ExportedParameter(body, var_To, parameter_To), | ||
136 | new ExportedParameter(body, var_Band, parameter_Band) | ||
137 | )); | ||
138 | // CommunicatingElement.commSubsystem.band(From, Band) | ||
139 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
140 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
141 | new TypeConstraint(body, Tuples.flatTupleOf(var_From, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
142 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
143 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
144 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band"))); | ||
145 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand"))); | ||
146 | new Equality(body, var__virtual_1_, var_Band); | ||
147 | // CommunicatingElement.commSubsystem.band(To, Band) | ||
148 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
149 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
150 | new TypeConstraint(body, Tuples.flatTupleOf(var_To, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
151 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
152 | PVariable var__virtual_3_ = body.getOrCreateVariableByName(".virtual{3}"); | ||
153 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_, var__virtual_3_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "band"))); | ||
154 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_3_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "TransceiverBand"))); | ||
155 | new Equality(body, var__virtual_3_, var_Band); | ||
156 | // CommunicatingElement.commSubsystem.gain(From, Gain) | ||
157 | new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
158 | PVariable var__virtual_4_ = body.getOrCreateVariableByName(".virtual{4}"); | ||
159 | new TypeConstraint(body, Tuples.flatTupleOf(var_From, var__virtual_4_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
160 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
161 | PVariable var__virtual_5_ = body.getOrCreateVariableByName(".virtual{5}"); | ||
162 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_4_, var__virtual_5_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain"))); | ||
163 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_5_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain"))); | ||
164 | new Equality(body, var__virtual_5_, var_Gain); | ||
165 | // CommunicatingElement.commSubsystem.gain(To, Gain) | ||
166 | new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement"))); | ||
167 | PVariable var__virtual_6_ = body.getOrCreateVariableByName(".virtual{6}"); | ||
168 | new TypeConstraint(body, Tuples.flatTupleOf(var_To, var__virtual_6_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem"))); | ||
169 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_6_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem"))); | ||
170 | PVariable var__virtual_7_ = body.getOrCreateVariableByName(".virtual{7}"); | ||
171 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_6_, var__virtual_7_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "gain"))); | ||
172 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_7_), new EDataTypeInSlotsKey((EDataType)getClassifierLiteral("http://www.example.org/satellite", "AntennaGain"))); | ||
173 | new Equality(body, var__virtual_7_, var_Gain); | ||
174 | bodies.add(body); | ||
175 | } | ||
176 | return bodies; | ||
177 | } | ||
178 | } | ||
179 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/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..36fa4557 --- /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,123 @@ | |||
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.CubeSatWithKaAntenna; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetGain; | ||
11 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.KaAntennaGainLow; | ||
12 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation; | ||
13 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation; | ||
14 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads; | ||
15 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat; | ||
16 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SpacecraftOfKind; | ||
17 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink; | ||
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.AtLeastTwoInterferometryPayloads; | ||
21 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBand; | ||
22 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf; | ||
23 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGain; | ||
24 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainLow; | ||
25 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemGainMedium; | ||
26 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U; | ||
27 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink; | ||
28 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork; | ||
29 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink; | ||
30 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed; | ||
31 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed; | ||
32 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna; | ||
33 | import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload; | ||
34 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; | ||
35 | |||
36 | /** | ||
37 | * A pattern group formed of all patterns defined in SatelliteQueries.vql. | ||
38 | * | ||
39 | * <p>A private group that includes private patterns as well. Only intended use case is for pattern testing. | ||
40 | * | ||
41 | * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul> | ||
42 | * <li>communicationLinkDoesNotStartAtContainingElement</li> | ||
43 | * <li>notEnoughInterferometryPayloads</li> | ||
44 | * <li>atLeastTwoInterferometryPayloads</li> | ||
45 | * <li>spacecraftWithInterferometryPayload</li> | ||
46 | * <li>noLinkToGroundStation</li> | ||
47 | * <li>noPotentialLinkToGroundStation</li> | ||
48 | * <li>indirectLinkAllowed</li> | ||
49 | * <li>linkAllowed</li> | ||
50 | * <li>matchingAntenna</li> | ||
51 | * <li>cubeSat3U</li> | ||
52 | * <li>communicationLoop</li> | ||
53 | * <li>indirectCommunicationLink</li> | ||
54 | * <li>directCommunicationLink</li> | ||
55 | * <li>incompatibleSourceAndTargetBand</li> | ||
56 | * <li>commSubsystemBand</li> | ||
57 | * <li>incompatibleSourceAndTargetGain</li> | ||
58 | * <li>commSubsystemGain</li> | ||
59 | * <li>uhfAntennaGainNotLow</li> | ||
60 | * <li>commSubsystemGainLow</li> | ||
61 | * <li>xAntennaGainNotMedium</li> | ||
62 | * <li>commSubsystemGainMedium</li> | ||
63 | * <li>kaAntennaGainLow</li> | ||
64 | * <li>threeUCubeSatWithNonUhfCrossLink</li> | ||
65 | * <li>commSubsystemBandUhf</li> | ||
66 | * <li>groundStationNetwork</li> | ||
67 | * <li>cubeSatWithKaAntenna</li> | ||
68 | * <li>smallSat</li> | ||
69 | * <li>spacecraftOfKind</li> | ||
70 | * </ul> | ||
71 | * | ||
72 | * @see IQueryGroup | ||
73 | * | ||
74 | */ | ||
75 | @SuppressWarnings("all") | ||
76 | public final class SatelliteQueriesAll extends BaseGeneratedPatternGroup { | ||
77 | /** | ||
78 | * Access the pattern group. | ||
79 | * | ||
80 | * @return the singleton instance of the group | ||
81 | * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications | ||
82 | * | ||
83 | */ | ||
84 | public static SatelliteQueriesAll instance() { | ||
85 | if (INSTANCE == null) { | ||
86 | INSTANCE = new SatelliteQueriesAll(); | ||
87 | } | ||
88 | return INSTANCE; | ||
89 | } | ||
90 | |||
91 | private static SatelliteQueriesAll INSTANCE; | ||
92 | |||
93 | private SatelliteQueriesAll() { | ||
94 | querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance()); | ||
95 | querySpecifications.add(NotEnoughInterferometryPayloads.instance()); | ||
96 | querySpecifications.add(AtLeastTwoInterferometryPayloads.instance()); | ||
97 | querySpecifications.add(SpacecraftWithInterferometryPayload.instance()); | ||
98 | querySpecifications.add(NoLinkToGroundStation.instance()); | ||
99 | querySpecifications.add(NoPotentialLinkToGroundStation.instance()); | ||
100 | querySpecifications.add(IndirectLinkAllowed.instance()); | ||
101 | querySpecifications.add(LinkAllowed.instance()); | ||
102 | querySpecifications.add(MatchingAntenna.instance()); | ||
103 | querySpecifications.add(CubeSat3U.instance()); | ||
104 | querySpecifications.add(CommunicationLoop.instance()); | ||
105 | querySpecifications.add(IndirectCommunicationLink.instance()); | ||
106 | querySpecifications.add(DirectCommunicationLink.instance()); | ||
107 | querySpecifications.add(IncompatibleSourceAndTargetBand.instance()); | ||
108 | querySpecifications.add(CommSubsystemBand.instance()); | ||
109 | querySpecifications.add(IncompatibleSourceAndTargetGain.instance()); | ||
110 | querySpecifications.add(CommSubsystemGain.instance()); | ||
111 | querySpecifications.add(UhfAntennaGainNotLow.instance()); | ||
112 | querySpecifications.add(CommSubsystemGainLow.instance()); | ||
113 | querySpecifications.add(XAntennaGainNotMedium.instance()); | ||
114 | querySpecifications.add(CommSubsystemGainMedium.instance()); | ||
115 | querySpecifications.add(KaAntennaGainLow.instance()); | ||
116 | querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance()); | ||
117 | querySpecifications.add(CommSubsystemBandUhf.instance()); | ||
118 | querySpecifications.add(GroundStationNetwork.instance()); | ||
119 | querySpecifications.add(CubeSatWithKaAntenna.instance()); | ||
120 | querySpecifications.add(SmallSat.instance()); | ||
121 | querySpecifications.add(SpacecraftOfKind.instance()); | ||
122 | } | ||
123 | } | ||
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..9566c4c5 --- /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", "satellite.ConstellationMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "ConstellationMission")), PParameterDirection.INOUT); | ||
91 | |||
92 | private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT); | ||
93 | |||
94 | private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft); | ||
95 | |||
96 | private GeneratedPQuery() { | ||
97 | super(PVisibility.PRIVATE); | ||
98 | } | ||
99 | |||
100 | @Override | ||
101 | public String getFullyQualifiedName() { | ||
102 | return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload"; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public List<String> getParameterNames() { | ||
107 | return Arrays.asList("Mission","Spacecraft"); | ||
108 | } | ||
109 | |||
110 | @Override | ||
111 | public List<PParameter> getParameters() { | ||
112 | return parameters; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public Set<PBody> doGetContainedBodies() { | ||
117 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
118 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
119 | { | ||
120 | PBody body = new PBody(this); | ||
121 | PVariable var_Mission = body.getOrCreateVariableByName("Mission"); | ||
122 | PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft"); | ||
123 | PVariable var_Payload = body.getOrCreateVariableByName("Payload"); | ||
124 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
125 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
126 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
127 | new ExportedParameter(body, var_Mission, parameter_Mission), | ||
128 | new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft) | ||
129 | )); | ||
130 | // ConstellationMission.spacecraft(Mission, Spacecraft) | ||
131 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission"))); | ||
132 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
133 | new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft"))); | ||
134 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
135 | new Equality(body, var__virtual_0_, var_Spacecraft); | ||
136 | // Spacecraft.payload(Spacecraft, Payload) | ||
137 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft"))); | ||
138 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
139 | new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "payload"))); | ||
140 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Payload"))); | ||
141 | new Equality(body, var__virtual_1_, var_Payload); | ||
142 | // InterferometryPayload(Payload) | ||
143 | new TypeConstraint(body, Tuples.flatTupleOf(var_Payload), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryPayload"))); | ||
144 | bodies.add(body); | ||
145 | } | ||
146 | return bodies; | ||
147 | } | ||
148 | } | ||
149 | } | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql new file mode 100644 index 00000000..0207cfe3 --- /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,344 @@ | |||
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 | @Constraint(severity = "error", key = {Spacecraft}, | ||
46 | message = "Spacecraft has no potential communication path to the ground station.") | ||
47 | pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) { | ||
48 | ConstellationMission.groundStationNetwork(Mission, GroundStation); | ||
49 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
50 | neg find indirectLinkAllowed(Spacecraft, GroundStation); | ||
51 | } | ||
52 | |||
53 | private pattern indirectLinkAllowed(From : Spacecraft, To : CommunicatingElement) { | ||
54 | find linkAllowed+(From, To); | ||
55 | } | ||
56 | |||
57 | private pattern linkAllowed(From : Spacecraft, To : CommunicatingElement) { | ||
58 | find matchingAntenna(From, To, _); | ||
59 | neg find cubeSat3U(From); | ||
60 | } or { | ||
61 | find matchingAntenna(From, To, TransceiverBand::UHF); | ||
62 | CubeSat3U(From); | ||
63 | } or { | ||
64 | find matchingAntenna(From, To, _); | ||
65 | CubeSat3U(From); | ||
66 | GroundStationNetwork(To); | ||
67 | } | ||
68 | |||
69 | private pattern matchingAntenna(From : Spacecraft, To : CommunicatingElement, Band : TransceiverBand) { | ||
70 | CommunicatingElement.commSubsystem.band(From, Band); | ||
71 | CommunicatingElement.commSubsystem.band(To, Band); | ||
72 | CommunicatingElement.commSubsystem.gain(From, Gain); | ||
73 | CommunicatingElement.commSubsystem.gain(To, Gain); | ||
74 | } | ||
75 | |||
76 | private pattern cubeSat3U(Sat : CubeSat3U) { | ||
77 | CubeSat3U(Sat); | ||
78 | } | ||
79 | |||
80 | // No communication loops may exist | ||
81 | // No spacecraft may directly communicate with itself | ||
82 | |||
83 | @Constraint(severity = "error", key = {Element}, | ||
84 | message = "Communication loop.") | ||
85 | pattern communicationLoop(Element : CommunicatingElement) { | ||
86 | find indirectCommunicationLink(Element, Element); | ||
87 | } | ||
88 | |||
89 | private pattern indirectCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) { | ||
90 | find directCommunicationLink+(Source, Target); | ||
91 | } | ||
92 | |||
93 | private pattern directCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) { | ||
94 | DirectedCommunicationLink.source(Link, SourceSubsystem); | ||
95 | DirectedCommunicationLink.target(Link, TargetSubsystem); | ||
96 | CommunicatingElement.commSubsystem(Source, SourceSubsystem); | ||
97 | CommunicatingElement.commSubsystem(Target, TargetSubsystem); | ||
98 | } | ||
99 | |||
100 | // Source and target communication systems must be compatible. | ||
101 | |||
102 | @Constraint(severity = "error", key = {Link}, | ||
103 | message = "Two ends of a communication link must use the same band.") | ||
104 | pattern incompatibleSourceAndTargetBand(Link : DirectedCommunicationLink) { | ||
105 | DirectedCommunicationLink.source(Link, SourceSubsystem); | ||
106 | DirectedCommunicationLink.target(Link, TargetSubsystem); | ||
107 | CommSubsystem.band(SourceSubsystem, Band); | ||
108 | neg find commSubsystemBand(TargetSubsystem, Band); | ||
109 | } | ||
110 | |||
111 | private pattern commSubsystemBand(Comm : CommSubsystem, Band : TransceiverBand) { | ||
112 | CommSubsystem.band(Comm, Band); | ||
113 | } | ||
114 | |||
115 | @Constraint(severity = "error", key = {Link}, | ||
116 | message = "Two ends of a communication link must use the same antenna gain.") | ||
117 | pattern incompatibleSourceAndTargetGain(Link : DirectedCommunicationLink) { | ||
118 | DirectedCommunicationLink.source(Link, SourceSubsystem); | ||
119 | DirectedCommunicationLink.target(Link, TargetSubsystem); | ||
120 | CommSubsystem.gain(SourceSubsystem, Gain); | ||
121 | neg find commSubsystemGain(TargetSubsystem, Gain); | ||
122 | } | ||
123 | |||
124 | private pattern commSubsystemGain(Comm : CommSubsystem, Gain : AntennaGain) { | ||
125 | CommSubsystem.gain(Comm, Gain); | ||
126 | } | ||
127 | |||
128 | // UHF-band transmitters may only be combined with a low gain antenna | ||
129 | |||
130 | @Constraint(severity = "error", key = {Comm}, | ||
131 | message = "UHF transceiver must be combined with a low gain antenna.") | ||
132 | pattern uhfAntennaGainNotLow(Comm : CommSubsystem) { | ||
133 | CommSubsystem.band(Comm, TransceiverBand::UHF); | ||
134 | // VIATRA will fail to infer a type constraint for the virtual variable introduced | ||
135 | // when an enum literal appears in a negative pattern call, so we use a helper pattern | ||
136 | // instead of neg find commSubsystemGain(Comm, AntennaGain::LOW); | ||
137 | neg find commSubsystemGainLow(Comm); | ||
138 | } | ||
139 | |||
140 | private pattern commSubsystemGainLow(Comm : CommSubsystem) { | ||
141 | CommSubsystem.gain(Comm, AntennaGain::LOW); | ||
142 | } | ||
143 | |||
144 | // X-band transmitters may only be combined with a medium gain antenna | ||
145 | |||
146 | @Constraint(severity = "error", key = {Comm}, | ||
147 | message = "X-band transceiver must be combined with a medium gain antenna.") | ||
148 | pattern xAntennaGainNotMedium(Comm : CommSubsystem) { | ||
149 | CommSubsystem.band(Comm, TransceiverBand::X); | ||
150 | neg find commSubsystemGainMedium(Comm); | ||
151 | } | ||
152 | |||
153 | private pattern commSubsystemGainMedium(Comm : CommSubsystem) { | ||
154 | CommSubsystem.gain(Comm, AntennaGain::MEDIUM); | ||
155 | } | ||
156 | |||
157 | // Ka-band transmitters may only be combined with a medium or high gain antenna | ||
158 | |||
159 | @Constraint(severity = "error", key = {Comm}, | ||
160 | message = "Ka-band transceiver must be combined with a medium or high gain antenna.") | ||
161 | pattern kaAntennaGainLow(Comm : CommSubsystem) { | ||
162 | CommSubsystem.band(Comm, TransceiverBand::Ka); | ||
163 | CommSubsystem.gain(Comm, AntennaGain::LOW); | ||
164 | } | ||
165 | |||
166 | // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter, | ||
167 | // but cross-link using UHF | ||
168 | |||
169 | @Constraint(severity = "error", key = {Sat}, | ||
170 | message = "3U CubeSats can only cross-link using UHF.") | ||
171 | pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) { | ||
172 | CommunicatingElement.commSubsystem(Sat, SourceComm); | ||
173 | neg find commSubsystemBandUhf(SourceComm); | ||
174 | DirectedCommunicationLink.source(Link, SourceComm); | ||
175 | DirectedCommunicationLink.target(Link, TargetComm); | ||
176 | CommunicatingElement.commSubsystem(Target, TargetComm); | ||
177 | neg find groundStationNetwork(Target); | ||
178 | } | ||
179 | |||
180 | private pattern commSubsystemBandUhf(Comm : CommSubsystem) { | ||
181 | CommSubsystem.band(Comm, TransceiverBand::UHF); | ||
182 | } | ||
183 | |||
184 | private pattern groundStationNetwork(Network : GroundStationNetwork) { | ||
185 | GroundStationNetwork(Network); | ||
186 | } | ||
187 | |||
188 | // Only a Small Satellite can be configured with a Ka-band communication system | ||
189 | |||
190 | @Constraint(severity = "error", key = {Spacecraft}, | ||
191 | message = "Only a Small Satellite can be configured with a Ka-band communication system.") | ||
192 | pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) { | ||
193 | CommunicatingElement.commSubsystem.band(Spacecraft, TransceiverBand::Ka); | ||
194 | neg find smallSat(Spacecraft); | ||
195 | } | ||
196 | |||
197 | pattern smallSat(Sat : SmallSat) { | ||
198 | SmallSat(Sat); | ||
199 | } | ||
200 | |||
201 | @QueryBasedFeature(feature = "kind") | ||
202 | pattern spacecraftOfKind(Spacecraft : Spacecraft, Kind : SpacecraftKind) { | ||
203 | CubeSat3U(Spacecraft); | ||
204 | Kind == SpacecraftKind::CubeSat3U; | ||
205 | } or { | ||
206 | CubeSat6U(Spacecraft); | ||
207 | Kind == SpacecraftKind::CubeSat6U; | ||
208 | } or { | ||
209 | SmallSat(Spacecraft); | ||
210 | Kind == SpacecraftKind::SmallSat; | ||
211 | } | ||
212 | |||
213 | /* | ||
214 | // | ||
215 | // Metrics | ||
216 | // | ||
217 | |||
218 | // Coverage | ||
219 | |||
220 | pattern coverageMetric(Coverage : java Double) { | ||
221 | Coverage == sum find missionCoverage(_, #_); | ||
222 | } | ||
223 | |||
224 | private pattern missionCoverage(Mission : InterferometryMission, Coverage : java Double) { | ||
225 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
226 | ObserverCount == count find spacecraftWithInterferometryPayload(Mission, _); | ||
227 | Coverage == eval(Math.pow(1 - 2.0 / ObserverCount, 1 + 9 * (1.0 / ObservationTime)) + 0.05 * ObservationTime / 3); | ||
228 | } | ||
229 | |||
230 | // Time | ||
231 | |||
232 | pattern timeMetric(Time : java Double) { | ||
233 | Time == sum find missionTime(_, #_); | ||
234 | } | ||
235 | |||
236 | private pattern missionTime(Mission : InterferometryMission, Time : java Double) { | ||
237 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
238 | TrasmitTime == sum find transmitTime(Mission, _, #_); | ||
239 | Time == eval(TrasmitTime + 60.0 * ObservationTime); | ||
240 | } | ||
241 | |||
242 | private pattern transmitTime(Mission : InterferometryMission, Spacecraft : Spacecraft, TransmitTime : java Double) { | ||
243 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
244 | find scienceData(Spacecraft, ScienceData); | ||
245 | IncomingData == sum find incomingData(Spacecraft, _, #_); | ||
246 | find transmitRate(Spacecraft, TransmitRate); | ||
247 | TransmitTime == eval((ScienceData + IncomingData) / (7.5 * TransmitRate)); | ||
248 | } | ||
249 | |||
250 | private pattern incomingData(Spacecraft : Spacecraft, Source : Spacecraft, Data : java Double) { | ||
251 | find indirectCommunicationLink(Source, Spacecraft); | ||
252 | find scienceData(Source, Data); | ||
253 | } | ||
254 | |||
255 | private pattern scienceData(Spacecraft : Spacecraft, Data : java Double) { | ||
256 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
257 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
258 | Data == eval(12.0 * ObservationTime); | ||
259 | } | ||
260 | |||
261 | private pattern transmitRate(Spacecraft : Spacecraft, TransmitRate : java Double) { | ||
262 | find spacecraftUplink(Spacecraft, TransceiverBand::UHF, Target); | ||
263 | Spacecraft(Target); | ||
264 | TransmitRate == 5.0; | ||
265 | } or { | ||
266 | find spacecraftUplink(Spacecraft, TransceiverBand::X, Target); | ||
267 | Spacecraft(Target); | ||
268 | TransmitRate == 1.6; | ||
269 | } or { | ||
270 | find spacecraftUplink(Spacecraft, TransceiverBand::X, Target); | ||
271 | GroundStationNetwork(Target); | ||
272 | TransmitRate == 0.7; | ||
273 | } or { | ||
274 | find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target); | ||
275 | Spacecraft(Target); | ||
276 | TransmitRate == 220.0; | ||
277 | } or { | ||
278 | find spacecraftUplink(Spacecraft, TransceiverBand::Ka, Target); | ||
279 | GroundStationNetwork(Target); | ||
280 | TransmitRate == 80.0; | ||
281 | } | ||
282 | |||
283 | private pattern spacecraftUplink(Spacecraft : Spacecraft, Band : TransceiverBand, Target : CommunicatingElement) { | ||
284 | CommunicatingElement.communicationLink(Spacecraft, Link); | ||
285 | DirectedCommunicationLink.source.band(Link, Band); | ||
286 | DirectedCommunicationLink.target(Link, TargetSubsystem); | ||
287 | CommunicatingElement.commSubsystem(Target, TargetSubsystem); | ||
288 | } | ||
289 | |||
290 | // Cost | ||
291 | |||
292 | pattern costMetric(Cost : java Double) { | ||
293 | Cost == sum find missionCost(_, #_); | ||
294 | } | ||
295 | |||
296 | private pattern missionCost(Mission : InterferometryMission, Cost : java Double) { | ||
297 | InterferometryMission.observationTime(Mission, ObservationTime); | ||
298 | SpacecraftCost == sum find spacecraftCost(Mission, _, #_); | ||
299 | Cost == eval(SpacecraftCost + 100000.0 * ObservationTime); | ||
300 | } | ||
301 | |||
302 | private pattern spacecraftCost(Mission : InterferometryMission, Spacecraft : Spacecraft, Cost : java Double) { | ||
303 | ConstellationMission.spacecraft(Mission, Spacecraft); | ||
304 | find spacecraftOfKind(Spacecraft, Kind); | ||
305 | KindCount == count find spacecraftOfKind(_, Kind); | ||
306 | find basePrice(Spacecraft, BasePrice); | ||
307 | find interferometryPayloadCost(Spacecraft, InterferometryPayloadCost); | ||
308 | find additionalCommSubsystemCost(Spacecraft, AdditionalCommSubsystemCost); | ||
309 | Cost == eval(BasePrice * Math.pow(KindCount, -0.25) + InterferometryPayloadCost + AdditionalCommSubsystemCost); | ||
310 | } | ||
311 | |||
312 | private pattern basePrice(Spacecraft : Spacecraft, BasePrice : java Double) { | ||
313 | CubeSat3U(Spacecraft): | ||
314 | BasePrice == 250000.0; | ||
315 | } or { | ||
316 | CubeSat6U(Spacecraft): | ||
317 | BasePrice == 750000.0; | ||
318 | } or { | ||
319 | SmallSat(Spacecraft): | ||
320 | BasePrice == 3000000.0; | ||
321 | } | ||
322 | |||
323 | private pattern interferometryPayloadCost(Spacecraft : Spacecraft, Cost : java Double) { | ||
324 | find spacecraftWithInterferometryPayload(_, Spacecraft); | ||
325 | Cost == 50000.0; | ||
326 | } or { | ||
327 | neg find spacecraftWithInterferometryPayload(_, Spacecraft); | ||
328 | Cost == 0.0; | ||
329 | } | ||
330 | |||
331 | private pattern additionalCommSubsystemCost(Spacecraft : Spacecraft, Cost : java Double) { | ||
332 | find spacecraftWithTwoCommSubsystems(Spacecraft); | ||
333 | Cost == 100000.0; | ||
334 | } or { | ||
335 | neg find spacecraftWithTwoCommSubsystems(Spacecraft); | ||
336 | Cost == 0.0; | ||
337 | } | ||
338 | |||
339 | private pattern spacecraftWithTwoCommSubsystems(Spacecraft : Spacecraft) { | ||
340 | Spacecraft.commSubsystem(Spacecraft, Subsystem1); | ||
341 | Spacecraft.commSubsystem(Spacecraft, Subsystem2); | ||
342 | Subsystem1 != Subsystem2; | ||
343 | } | ||
344 | */ \ No newline at end of file | ||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/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/.SatelliteGeneratorMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.SatelliteGeneratorMain.xtendbin new file mode 100644 index 00000000..2f1887a8 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.SatelliteGeneratorMain.xtendbin | |||
Binary files differ | |||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore new file mode 100644 index 00000000..928d3658 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore | |||
@@ -0,0 +1 @@ | |||
/.SatelliteGeneratorMain.java._trace | |||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java new file mode 100644 index 00000000..f6890163 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.java | |||
@@ -0,0 +1,15 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.satellite.runner; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; | ||
4 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
5 | |||
6 | @SuppressWarnings("all") | ||
7 | public final class SatelliteGeneratorMain { | ||
8 | private SatelliteGeneratorMain() { | ||
9 | throw new IllegalStateException("This is a static utility class and should not be instantiated directly."); | ||
10 | } | ||
11 | |||
12 | public static void main(final String[] args) { | ||
13 | InputOutput.<String>println(StandaloneScriptExecutor.executeScript("configs/generation.vsconfig")); | ||
14 | } | ||
15 | } | ||
diff --git a/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> |