aboutsummaryrefslogtreecommitdiffstats
path: root/Domains
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-10-07 00:35:42 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-10-07 00:35:42 -0400
commit5d1165ceef23e20c4bbe46fe6f88e95f317234b5 (patch)
tree9ed155a9e8d74b0f1ce7173aacd50e0e01c96f22 /Domains
parentVAMPIRE: fix model generation (diff)
downloadVIATRA-Generator-5d1165ceef23e20c4bbe46fe6f88e95f317234b5.tar.gz
VIATRA-Generator-5d1165ceef23e20c4bbe46fe6f88e95f317234b5.tar.zst
VIATRA-Generator-5d1165ceef23e20c4bbe46fe6f88e95f317234b5.zip
VAMPIRE: Implement Vampire measurement code
Diffstat (limited to 'Domains')
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore4
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml6
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF5
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/Entry.java35
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/EntryType.java239
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/YakindummPackage.java63
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/EntryImpl.java123
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummFactoryImpl.java51
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummPackageImpl.java45
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore9
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.genmodel10
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml7
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql122
13 files changed, 635 insertions, 84 deletions
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
index d8331ba8..3fab9a1d 100644
--- a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
@@ -9,7 +9,7 @@
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">
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>
@@ -25,7 +25,7 @@
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 volatile="true" transient="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>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
index d6f22c95..07fd662c 100644
--- a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
@@ -3,12 +3,6 @@
3 <!-- @generated FamMetamodel --> 3 <!-- @generated FamMetamodel -->
4 <package class="functionalarchitecture.FunctionalarchitecturePackage" genModel="model/FamMetamodel.genmodel" uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> 4 <package class="functionalarchitecture.FunctionalarchitecturePackage" genModel="model/FamMetamodel.genmodel" uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
5 </extension> 5 </extension>
6 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
7 <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
8 </extension>
9 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
10 <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
11 </extension>
12 <extension id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> 6 <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"> 7 <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"/> 8 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/>
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 f2fd2ff3..f8973169 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
@@ -15,6 +15,7 @@ Require-Bundle: org.eclipse.viatra.query.runtime,
15 org.eclipse.core.runtime, 15 org.eclipse.core.runtime,
16 org.eclipse.emf.ecore;visibility:=reexport, 16 org.eclipse.emf.ecore;visibility:=reexport,
17 com.google.guava;bundle-version="15.0.0" 17 com.google.guava;bundle-version="15.0.0"
18Bundle-RequiredExecutionEnvironment: JavaSE-1.8
19Bundle-ActivationPolicy: lazy
20Import-Package: org.apache.log4j 18Import-Package: org.apache.log4j
19Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph
20Bundle-ActivationPolicy: lazy
21Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/Entry.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/Entry.java
index de8cdb07..994ffd96 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/Entry.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/Entry.java
@@ -8,10 +8,45 @@ package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm;
8 * A representation of the model object '<em><b>Entry</b></em>'. 8 * A representation of the model object '<em><b>Entry</b></em>'.
9 * <!-- end-user-doc --> 9 * <!-- end-user-doc -->
10 * 10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry#getType <em>Type</em>}</li>
16 * </ul>
11 * 17 *
12 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage#getEntry() 18 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage#getEntry()
13 * @model 19 * @model
14 * @generated 20 * @generated
15 */ 21 */
16public interface Entry extends Pseudostate { 22public interface Entry extends Pseudostate {
23
24 /**
25 * Returns the value of the '<em><b>Type</b></em>' attribute.
26 * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType}.
27 * <!-- begin-user-doc -->
28 * <p>
29 * If the meaning of the '<em>Type</em>' attribute 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>Type</em>' attribute.
34 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType
35 * @see #setType(EntryType)
36 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage#getEntry_Type()
37 * @model
38 * @generated
39 */
40 EntryType getType();
41
42 /**
43 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry#getType <em>Type</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Type</em>' attribute.
47 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType
48 * @see #getType()
49 * @generated
50 */
51 void setType(EntryType value);
17} // Entry 52} // Entry
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/EntryType.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/EntryType.java
new file mode 100644
index 00000000..4f5d1a31
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/EntryType.java
@@ -0,0 +1,239 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Entry Type</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage#getEntryType()
17 * @model
18 * @generated
19 */
20public enum EntryType implements Enumerator {
21 /**
22 * The '<em><b>Normal</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #NORMAL_VALUE
26 * @generated
27 * @ordered
28 */
29 NORMAL(0, "Normal", "Normal"),
30
31 /**
32 * The '<em><b>History</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #HISTORY_VALUE
36 * @generated
37 * @ordered
38 */
39 HISTORY(0, "History", "History"),
40
41 /**
42 * The '<em><b>Deep History</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #DEEP_HISTORY_VALUE
46 * @generated
47 * @ordered
48 */
49 DEEP_HISTORY(0, "DeepHistory", "DeepHistory");
50
51 /**
52 * The '<em><b>Normal</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of '<em><b>Normal</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 #NORMAL
60 * @model name="Normal"
61 * @generated
62 * @ordered
63 */
64 public static final int NORMAL_VALUE = 0;
65
66 /**
67 * The '<em><b>History</b></em>' literal value.
68 * <!-- begin-user-doc -->
69 * <p>
70 * If the meaning of '<em><b>History</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 #HISTORY
75 * @model name="History"
76 * @generated
77 * @ordered
78 */
79 public static final int HISTORY_VALUE = 0;
80
81 /**
82 * The '<em><b>Deep History</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <p>
85 * If the meaning of '<em><b>Deep History</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 #DEEP_HISTORY
90 * @model name="DeepHistory"
91 * @generated
92 * @ordered
93 */
94 public static final int DEEP_HISTORY_VALUE = 0;
95
96 /**
97 * An array of all the '<em><b>Entry Type</b></em>' enumerators.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 private static final EntryType[] VALUES_ARRAY =
103 new EntryType[] {
104 NORMAL,
105 HISTORY,
106 DEEP_HISTORY,
107 };
108
109 /**
110 * A public read-only list of all the '<em><b>Entry Type</b></em>' enumerators.
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 public static final List<EntryType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
116
117 /**
118 * Returns the '<em><b>Entry Type</b></em>' literal with the specified literal value.
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @param literal the literal.
122 * @return the matching enumerator or <code>null</code>.
123 * @generated
124 */
125 public static EntryType get(String literal) {
126 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
127 EntryType result = VALUES_ARRAY[i];
128 if (result.toString().equals(literal)) {
129 return result;
130 }
131 }
132 return null;
133 }
134
135 /**
136 * Returns the '<em><b>Entry Type</b></em>' literal with the specified name.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @param name the name.
140 * @return the matching enumerator or <code>null</code>.
141 * @generated
142 */
143 public static EntryType getByName(String name) {
144 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
145 EntryType result = VALUES_ARRAY[i];
146 if (result.getName().equals(name)) {
147 return result;
148 }
149 }
150 return null;
151 }
152
153 /**
154 * Returns the '<em><b>Entry Type</b></em>' literal with the specified integer value.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @param value the integer value.
158 * @return the matching enumerator or <code>null</code>.
159 * @generated
160 */
161 public static EntryType get(int value) {
162 switch (value) {
163 case NORMAL_VALUE: return NORMAL;
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 EntryType(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 public int getValue() {
207 return value;
208 }
209
210 /**
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @generated
214 */
215 public String getName() {
216 return name;
217 }
218
219 /**
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 */
224 public String getLiteral() {
225 return literal;
226 }
227
228 /**
229 * Returns the literal value of the enumerator, which is its string representation.
230 * <!-- begin-user-doc -->
231 * <!-- end-user-doc -->
232 * @generated
233 */
234 @Override
235 public String toString() {
236 return literal;
237 }
238
239} //EntryType
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/YakindummPackage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/YakindummPackage.java
index 18a4b105..a9269e05 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/YakindummPackage.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/YakindummPackage.java
@@ -2,7 +2,9 @@
2 */ 2 */
3package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm; 3package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm;
4 4
5import org.eclipse.emf.ecore.EAttribute;
5import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
6import org.eclipse.emf.ecore.EPackage; 8import org.eclipse.emf.ecore.EPackage;
7import org.eclipse.emf.ecore.EReference; 9import org.eclipse.emf.ecore.EReference;
8 10
@@ -333,13 +335,22 @@ public interface YakindummPackage extends EPackage {
333 int ENTRY__OUTGOING_TRANSITIONS = PSEUDOSTATE__OUTGOING_TRANSITIONS; 335 int ENTRY__OUTGOING_TRANSITIONS = PSEUDOSTATE__OUTGOING_TRANSITIONS;
334 336
335 /** 337 /**
338 * The feature id for the '<em><b>Type</b></em>' attribute.
339 * <!-- begin-user-doc -->
340 * <!-- end-user-doc -->
341 * @generated
342 * @ordered
343 */
344 int ENTRY__TYPE = PSEUDOSTATE_FEATURE_COUNT + 0;
345
346 /**
336 * The number of structural features of the '<em>Entry</em>' class. 347 * The number of structural features of the '<em>Entry</em>' class.
337 * <!-- begin-user-doc --> 348 * <!-- begin-user-doc -->
338 * <!-- end-user-doc --> 349 * <!-- end-user-doc -->
339 * @generated 350 * @generated
340 * @ordered 351 * @ordered
341 */ 352 */
342 int ENTRY_FEATURE_COUNT = PSEUDOSTATE_FEATURE_COUNT + 0; 353 int ENTRY_FEATURE_COUNT = PSEUDOSTATE_FEATURE_COUNT + 1;
343 354
344 /** 355 /**
345 * The number of operations of the '<em>Entry</em>' class. 356 * The number of operations of the '<em>Entry</em>' class.
@@ -639,6 +650,17 @@ public interface YakindummPackage extends EPackage {
639 650
640 651
641 /** 652 /**
653 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType <em>Entry Type</em>}' enum.
654 * <!-- begin-user-doc -->
655 * <!-- end-user-doc -->
656 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType
657 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl#getEntryType()
658 * @generated
659 */
660 int ENTRY_TYPE = 13;
661
662
663 /**
642 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Pseudostate <em>Pseudostate</em>}'. 664 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Pseudostate <em>Pseudostate</em>}'.
643 * <!-- begin-user-doc --> 665 * <!-- begin-user-doc -->
644 * <!-- end-user-doc --> 666 * <!-- end-user-doc -->
@@ -754,6 +776,17 @@ public interface YakindummPackage extends EPackage {
754 EClass getEntry(); 776 EClass getEntry();
755 777
756 /** 778 /**
779 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry#getType <em>Type</em>}'.
780 * <!-- begin-user-doc -->
781 * <!-- end-user-doc -->
782 * @return the meta object for the attribute '<em>Type</em>'.
783 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry#getType()
784 * @see #getEntry()
785 * @generated
786 */
787 EAttribute getEntry_Type();
788
789 /**
757 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Synchronization <em>Synchronization</em>}'. 790 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Synchronization <em>Synchronization</em>}'.
758 * <!-- begin-user-doc --> 791 * <!-- begin-user-doc -->
759 * <!-- end-user-doc --> 792 * <!-- end-user-doc -->
@@ -835,6 +868,16 @@ public interface YakindummPackage extends EPackage {
835 EClass getFinalState(); 868 EClass getFinalState();
836 869
837 /** 870 /**
871 * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType <em>Entry Type</em>}'.
872 * <!-- begin-user-doc -->
873 * <!-- end-user-doc -->
874 * @return the meta object for enum '<em>Entry Type</em>'.
875 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType
876 * @generated
877 */
878 EEnum getEntryType();
879
880 /**
838 * Returns the factory that creates the instances of the model. 881 * Returns the factory that creates the instances of the model.
839 * <!-- begin-user-doc --> 882 * <!-- begin-user-doc -->
840 * <!-- end-user-doc --> 883 * <!-- end-user-doc -->
@@ -958,6 +1001,14 @@ public interface YakindummPackage extends EPackage {
958 EClass ENTRY = eINSTANCE.getEntry(); 1001 EClass ENTRY = eINSTANCE.getEntry();
959 1002
960 /** 1003 /**
1004 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
1005 * <!-- begin-user-doc -->
1006 * <!-- end-user-doc -->
1007 * @generated
1008 */
1009 EAttribute ENTRY__TYPE = eINSTANCE.getEntry_Type();
1010
1011 /**
961 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.SynchronizationImpl <em>Synchronization</em>}' class. 1012 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.SynchronizationImpl <em>Synchronization</em>}' class.
962 * <!-- begin-user-doc --> 1013 * <!-- begin-user-doc -->
963 * <!-- end-user-doc --> 1014 * <!-- end-user-doc -->
@@ -1035,6 +1086,16 @@ public interface YakindummPackage extends EPackage {
1035 */ 1086 */
1036 EClass FINAL_STATE = eINSTANCE.getFinalState(); 1087 EClass FINAL_STATE = eINSTANCE.getFinalState();
1037 1088
1089 /**
1090 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType <em>Entry Type</em>}' enum.
1091 * <!-- begin-user-doc -->
1092 * <!-- end-user-doc -->
1093 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType
1094 * @see hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl#getEntryType()
1095 * @generated
1096 */
1097 EEnum ENTRY_TYPE = eINSTANCE.getEntryType();
1098
1038 } 1099 }
1039 1100
1040} //YakindummPackage 1101} //YakindummPackage
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/EntryImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/EntryImpl.java
index 35003e0d..27041630 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/EntryImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/EntryImpl.java
@@ -3,19 +3,47 @@
3package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl; 3package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl;
4 4
5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry; 5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry;
6import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType;
6import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage; 7import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage;
7 8
9import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.ecore.EClass; 10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
9 12
10/** 13/**
11 * <!-- begin-user-doc --> 14 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Entry</b></em>'. 15 * An implementation of the model object '<em><b>Entry</b></em>'.
13 * <!-- end-user-doc --> 16 * <!-- end-user-doc -->
17 * <p>
18 * The following features are implemented:
19 * </p>
20 * <ul>
21 * <li>{@link hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.EntryImpl#getType <em>Type</em>}</li>
22 * </ul>
14 * 23 *
15 * @generated 24 * @generated
16 */ 25 */
17public class EntryImpl extends PseudostateImpl implements Entry { 26public class EntryImpl extends PseudostateImpl implements Entry {
18 /** 27 /**
28 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @see #getType()
32 * @generated
33 * @ordered
34 */
35 protected static final EntryType TYPE_EDEFAULT = EntryType.NORMAL;
36 /**
37 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getType()
41 * @generated
42 * @ordered
43 */
44 protected EntryType type = TYPE_EDEFAULT;
45
46 /**
19 * <!-- begin-user-doc --> 47 * <!-- begin-user-doc -->
20 * <!-- end-user-doc --> 48 * <!-- end-user-doc -->
21 * @generated 49 * @generated
@@ -34,4 +62,99 @@ public class EntryImpl extends PseudostateImpl implements Entry {
34 return YakindummPackage.Literals.ENTRY; 62 return YakindummPackage.Literals.ENTRY;
35 } 63 }
36 64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 public EntryType getType() {
71 return type;
72 }
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 public void setType(EntryType newType) {
80 EntryType oldType = type;
81 type = newType == null ? TYPE_EDEFAULT : newType;
82 if (eNotificationRequired())
83 eNotify(new ENotificationImpl(this, Notification.SET, YakindummPackage.ENTRY__TYPE, oldType, type));
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 public Object eGet(int featureID, boolean resolve, boolean coreType) {
93 switch (featureID) {
94 case YakindummPackage.ENTRY__TYPE:
95 return getType();
96 }
97 return super.eGet(featureID, resolve, coreType);
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 @Override
106 public void eSet(int featureID, Object newValue) {
107 switch (featureID) {
108 case YakindummPackage.ENTRY__TYPE:
109 setType((EntryType)newValue);
110 return;
111 }
112 super.eSet(featureID, newValue);
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @Override
121 public void eUnset(int featureID) {
122 switch (featureID) {
123 case YakindummPackage.ENTRY__TYPE:
124 setType(TYPE_EDEFAULT);
125 return;
126 }
127 super.eUnset(featureID);
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public boolean eIsSet(int featureID) {
137 switch (featureID) {
138 case YakindummPackage.ENTRY__TYPE:
139 return type != TYPE_EDEFAULT;
140 }
141 return super.eIsSet(featureID);
142 }
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 @Override
150 public String toString() {
151 if (eIsProxy()) return super.toString();
152
153 StringBuilder result = new StringBuilder(super.toString());
154 result.append(" (Type: ");
155 result.append(type);
156 result.append(')');
157 return result.toString();
158 }
159
37} //EntryImpl 160} //EntryImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummFactoryImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummFactoryImpl.java
index 9c4fc4f1..d4fc2d01 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummFactoryImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummFactoryImpl.java
@@ -5,6 +5,7 @@ package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl;
5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.*; 5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.*;
6 6
7import org.eclipse.emf.ecore.EClass; 7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EDataType;
8import org.eclipse.emf.ecore.EObject; 9import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage; 10import org.eclipse.emf.ecore.EPackage;
10 11
@@ -75,6 +76,36 @@ public class YakindummFactoryImpl extends EFactoryImpl implements YakindummFacto
75 * <!-- end-user-doc --> 76 * <!-- end-user-doc -->
76 * @generated 77 * @generated
77 */ 78 */
79 @Override
80 public Object createFromString(EDataType eDataType, String initialValue) {
81 switch (eDataType.getClassifierID()) {
82 case YakindummPackage.ENTRY_TYPE:
83 return createEntryTypeFromString(eDataType, initialValue);
84 default:
85 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
86 }
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public String convertToString(EDataType eDataType, Object instanceValue) {
96 switch (eDataType.getClassifierID()) {
97 case YakindummPackage.ENTRY_TYPE:
98 return convertEntryTypeToString(eDataType, instanceValue);
99 default:
100 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
101 }
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
78 public Region createRegion() { 109 public Region createRegion() {
79 RegionImpl region = new RegionImpl(); 110 RegionImpl region = new RegionImpl();
80 return region; 111 return region;
@@ -165,6 +196,26 @@ public class YakindummFactoryImpl extends EFactoryImpl implements YakindummFacto
165 * <!-- end-user-doc --> 196 * <!-- end-user-doc -->
166 * @generated 197 * @generated
167 */ 198 */
199 public EntryType createEntryTypeFromString(EDataType eDataType, String initialValue) {
200 EntryType result = EntryType.get(initialValue);
201 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
202 return result;
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 public String convertEntryTypeToString(EDataType eDataType, Object instanceValue) {
211 return instanceValue == null ? null : instanceValue.toString();
212 }
213
214 /**
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
168 public YakindummPackage getYakindummPackage() { 219 public YakindummPackage getYakindummPackage() {
169 return (YakindummPackage)getEPackage(); 220 return (YakindummPackage)getEPackage();
170 } 221 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummPackageImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummPackageImpl.java
index 77092c17..e6da53ec 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummPackageImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/yakindu/sgraph/yakindumm/impl/YakindummPackageImpl.java
@@ -5,6 +5,7 @@ package hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl;
5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Choice; 5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Choice;
6import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.CompositeElement; 6import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.CompositeElement;
7import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry; 7import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Entry;
8import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.EntryType;
8import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Exit; 9import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Exit;
9import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.FinalState; 10import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.FinalState;
10import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Pseudostate; 11import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Pseudostate;
@@ -18,7 +19,9 @@ import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Vertex;
18import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummFactory; 19import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummFactory;
19import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage; 20import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage;
20 21
22import org.eclipse.emf.ecore.EAttribute;
21import org.eclipse.emf.ecore.EClass; 23import org.eclipse.emf.ecore.EClass;
24import org.eclipse.emf.ecore.EEnum;
22import org.eclipse.emf.ecore.EPackage; 25import org.eclipse.emf.ecore.EPackage;
23import org.eclipse.emf.ecore.EReference; 26import org.eclipse.emf.ecore.EReference;
24 27
@@ -123,6 +126,13 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
123 private EClass finalStateEClass = null; 126 private EClass finalStateEClass = null;
124 127
125 /** 128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 private EEnum entryTypeEEnum = null;
134
135 /**
126 * Creates an instance of the model <b>Package</b>, registered with 136 * Creates an instance of the model <b>Package</b>, registered with
127 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package 137 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
128 * package URI value. 138 * package URI value.
@@ -150,7 +160,7 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
150 160
151 /** 161 /**
152 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. 162 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
153 * 163 *
154 * <p>This method is used to initialize {@link YakindummPackage#eINSTANCE} when that field is accessed. 164 * <p>This method is used to initialize {@link YakindummPackage#eINSTANCE} when that field is accessed.
155 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. 165 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
156 * <!-- begin-user-doc --> 166 * <!-- begin-user-doc -->
@@ -164,7 +174,8 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
164 if (isInited) return (YakindummPackage)EPackage.Registry.INSTANCE.getEPackage(YakindummPackage.eNS_URI); 174 if (isInited) return (YakindummPackage)EPackage.Registry.INSTANCE.getEPackage(YakindummPackage.eNS_URI);
165 175
166 // Obtain or create and register package 176 // Obtain or create and register package
167 YakindummPackageImpl theYakindummPackage = (YakindummPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof YakindummPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new YakindummPackageImpl()); 177 Object registeredYakindummPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
178 YakindummPackageImpl theYakindummPackage = registeredYakindummPackage instanceof YakindummPackageImpl ? (YakindummPackageImpl)registeredYakindummPackage : new YakindummPackageImpl();
168 179
169 isInited = true; 180 isInited = true;
170 181
@@ -177,7 +188,6 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
177 // Mark meta-data to indicate it can't be changed 188 // Mark meta-data to indicate it can't be changed
178 theYakindummPackage.freeze(); 189 theYakindummPackage.freeze();
179 190
180
181 // Update the registry and return the package 191 // Update the registry and return the package
182 EPackage.Registry.INSTANCE.put(YakindummPackage.eNS_URI, theYakindummPackage); 192 EPackage.Registry.INSTANCE.put(YakindummPackage.eNS_URI, theYakindummPackage);
183 return theYakindummPackage; 193 return theYakindummPackage;
@@ -287,6 +297,15 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
287 * <!-- end-user-doc --> 297 * <!-- end-user-doc -->
288 * @generated 298 * @generated
289 */ 299 */
300 public EAttribute getEntry_Type() {
301 return (EAttribute)entryEClass.getEStructuralFeatures().get(0);
302 }
303
304 /**
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @generated
308 */
290 public EClass getSynchronization() { 309 public EClass getSynchronization() {
291 return synchronizationEClass; 310 return synchronizationEClass;
292 } 311 }
@@ -359,6 +378,15 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
359 * <!-- end-user-doc --> 378 * <!-- end-user-doc -->
360 * @generated 379 * @generated
361 */ 380 */
381 public EEnum getEntryType() {
382 return entryTypeEEnum;
383 }
384
385 /**
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @generated
389 */
362 public YakindummFactory getYakindummFactory() { 390 public YakindummFactory getYakindummFactory() {
363 return (YakindummFactory)getEFactoryInstance(); 391 return (YakindummFactory)getEFactoryInstance();
364 } 392 }
@@ -398,6 +426,7 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
398 statechartEClass = createEClass(STATECHART); 426 statechartEClass = createEClass(STATECHART);
399 427
400 entryEClass = createEClass(ENTRY); 428 entryEClass = createEClass(ENTRY);
429 createEAttribute(entryEClass, ENTRY__TYPE);
401 430
402 synchronizationEClass = createEClass(SYNCHRONIZATION); 431 synchronizationEClass = createEClass(SYNCHRONIZATION);
403 432
@@ -413,6 +442,9 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
413 exitEClass = createEClass(EXIT); 442 exitEClass = createEClass(EXIT);
414 443
415 finalStateEClass = createEClass(FINAL_STATE); 444 finalStateEClass = createEClass(FINAL_STATE);
445
446 // Create enums
447 entryTypeEEnum = createEEnum(ENTRY_TYPE);
416 } 448 }
417 449
418 /** 450 /**
@@ -471,6 +503,7 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
471 initEClass(statechartEClass, Statechart.class, "Statechart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 503 initEClass(statechartEClass, Statechart.class, "Statechart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
472 504
473 initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 505 initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
506 initEAttribute(getEntry_Type(), this.getEntryType(), "Type", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
474 507
475 initEClass(synchronizationEClass, Synchronization.class, "Synchronization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 508 initEClass(synchronizationEClass, Synchronization.class, "Synchronization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
476 509
@@ -487,6 +520,12 @@ public class YakindummPackageImpl extends EPackageImpl implements YakindummPacka
487 520
488 initEClass(finalStateEClass, FinalState.class, "FinalState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 521 initEClass(finalStateEClass, FinalState.class, "FinalState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
489 522
523 // Initialize enums and add enum literals
524 initEEnum(entryTypeEEnum, EntryType.class, "EntryType");
525 addEEnumLiteral(entryTypeEEnum, EntryType.NORMAL);
526 addEEnumLiteral(entryTypeEEnum, EntryType.HISTORY);
527 addEEnumLiteral(entryTypeEEnum, EntryType.DEEP_HISTORY);
528
490 // Create resource 529 // Create resource
491 createResource(eNS_URI); 530 createResource(eNS_URI);
492 } 531 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore
index 0d6b4ac6..51b0ca5b 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore
@@ -19,7 +19,9 @@
19 eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions"/> 19 eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions"/>
20 </eClassifiers> 20 </eClassifiers>
21 <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="#//CompositeElement"/> 21 <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="#//CompositeElement"/>
22 <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate"/> 22 <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate">
23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="Type" eType="#//EntryType"/>
24 </eClassifiers>
23 <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/> 25 <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/>
24 <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//RegularState #//CompositeElement"/> 26 <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//RegularState #//CompositeElement"/>
25 <eClassifiers xsi:type="ecore:EClass" name="RegularState" abstract="true" eSuperTypes="#//Vertex"/> 27 <eClassifiers xsi:type="ecore:EClass" name="RegularState" abstract="true" eSuperTypes="#//Vertex"/>
@@ -30,4 +32,9 @@
30 <eClassifiers xsi:type="ecore:EClass" name="Choice" eSuperTypes="#//Pseudostate"/> 32 <eClassifiers xsi:type="ecore:EClass" name="Choice" eSuperTypes="#//Pseudostate"/>
31 <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/> 33 <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/>
32 <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//RegularState"/> 34 <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//RegularState"/>
35 <eClassifiers xsi:type="ecore:EEnum" name="EntryType">
36 <eLiterals name="Normal"/>
37 <eLiterals name="History"/>
38 <eLiterals name="DeepHistory"/>
39 </eClassifiers>
33</ecore:EPackage> 40</ecore:EPackage>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.genmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.genmodel
index 4e34cf1d..4419a75a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.genmodel
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.genmodel
@@ -7,6 +7,11 @@
7 <foreignModel>yakindu_simplified.ecore</foreignModel> 7 <foreignModel>yakindu_simplified.ecore</foreignModel>
8 <genPackages prefix="Yakindumm" basePackage="hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph" 8 <genPackages prefix="Yakindumm" basePackage="hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph"
9 disposableProviderFactory="true" ecorePackage="yakindu_simplified.ecore#/"> 9 disposableProviderFactory="true" ecorePackage="yakindu_simplified.ecore#/">
10 <genEnums typeSafeEnumCompatible="false" ecoreEnum="yakindu_simplified.ecore#//EntryType">
11 <genEnumLiterals ecoreEnumLiteral="yakindu_simplified.ecore#//EntryType/Normal"/>
12 <genEnumLiterals ecoreEnumLiteral="yakindu_simplified.ecore#//EntryType/History"/>
13 <genEnumLiterals ecoreEnumLiteral="yakindu_simplified.ecore#//EntryType/DeepHistory"/>
14 </genEnums>
10 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//Pseudostate"/> 15 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//Pseudostate"/>
11 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//Vertex"> 16 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//Vertex">
12 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Vertex/incomingTransitions"/> 17 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Vertex/incomingTransitions"/>
@@ -20,7 +25,9 @@
20 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Transition/source"/> 25 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Transition/source"/>
21 </genClasses> 26 </genClasses>
22 <genClasses ecoreClass="yakindu_simplified.ecore#//Statechart"/> 27 <genClasses ecoreClass="yakindu_simplified.ecore#//Statechart"/>
23 <genClasses ecoreClass="yakindu_simplified.ecore#//Entry"/> 28 <genClasses ecoreClass="yakindu_simplified.ecore#//Entry">
29 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute yakindu_simplified.ecore#//Entry/Type"/>
30 </genClasses>
24 <genClasses ecoreClass="yakindu_simplified.ecore#//Synchronization"/> 31 <genClasses ecoreClass="yakindu_simplified.ecore#//Synchronization"/>
25 <genClasses ecoreClass="yakindu_simplified.ecore#//State"/> 32 <genClasses ecoreClass="yakindu_simplified.ecore#//State"/>
26 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//RegularState"/> 33 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//RegularState"/>
@@ -29,5 +36,6 @@
29 </genClasses> 36 </genClasses>
30 <genClasses ecoreClass="yakindu_simplified.ecore#//Choice"/> 37 <genClasses ecoreClass="yakindu_simplified.ecore#//Choice"/>
31 <genClasses ecoreClass="yakindu_simplified.ecore#//Exit"/> 38 <genClasses ecoreClass="yakindu_simplified.ecore#//Exit"/>
39 <genClasses ecoreClass="yakindu_simplified.ecore#//FinalState"/>
32 </genPackages> 40 </genPackages>
33</genmodel:GenModel> 41</genmodel:GenModel>
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..02c67af1 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
@@ -18,13 +18,6 @@
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"/>
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"/>
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"/>
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"/>
28 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.child"/> 21 <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"/> 22 <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"/> 23 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleRegions"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
index f4bfa3c1..09fb45c8 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
@@ -88,67 +88,67 @@ pattern choiceHasNoIncoming(c: Choice) {
88 neg find transition(_, _, c); 88 neg find transition(_, _, c);
89} 89}
90 90
91///////// 91///////////
92// Synchronization 92//// Synchronization
93///////// 93///////////
94 94//
95@Constraint(severity="error", message="error", key = {s}) 95//@Constraint(severity="error", message="error", key = {s})
96pattern synchHasNoOutgoing(s : Synchronization) { 96//pattern synchHasNoOutgoing(s : Synchronization) {
97 neg find transition(_, s, _); 97// neg find transition(_, s, _);
98} 98//}
99 99//
100@Constraint(severity="error", message="error", key = {s}) 100//@Constraint(severity="error", message="error", key = {s})
101pattern synchHasNoIncoming(s : Synchronization) { 101//pattern synchHasNoIncoming(s : Synchronization) {
102 neg find transition(_, _, s); 102// neg find transition(_, _, s);
103} 103//}
104 104//
105@Constraint(severity="error", message="error", key = {s}) 105//@Constraint(severity="error", message="error", key = {s})
106pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) { 106//pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) {
107 find transition(t1, v1, s); 107// find transition(t1, v1, s);
108 find transition(t2, v2, s); 108// find transition(t2, v2, s);
109 t1!=t2; 109// t1!=t2;
110 Region.vertices(r, v1); 110// Region.vertices(r, v1);
111 Region.vertices(r, v2); 111// Region.vertices(r, v2);
112} or { 112//} or {
113 find transition(t1, s, v1); 113// find transition(t1, s, v1);
114 find transition(t2, s, v2); 114// find transition(t2, s, v2);
115 t1!=t2; 115// t1!=t2;
116 Region.vertices(r, v1); 116// Region.vertices(r, v1);
117 Region.vertices(r, v2); 117// Region.vertices(r, v2);
118} 118//}
119 119//
120@Constraint(severity="error", message="error", key = {s}) 120//@Constraint(severity="error", message="error", key = {s})
121pattern notSynchronizingStates(s : Synchronization) { 121//pattern notSynchronizingStates(s : Synchronization) {
122 neg find hasMultipleOutgoingTrainsition(s); 122// neg find hasMultipleOutgoingTrainsition(s);
123 neg find hasMultipleIncomingTrainsition(s); 123// neg find hasMultipleIncomingTrainsition(s);
124} 124//}
125 125//
126pattern hasMultipleOutgoingTrainsition(v : Synchronization) { 126//pattern hasMultipleOutgoingTrainsition(v : Synchronization) {
127 find transition(_, v, trg1); 127// find transition(_, v, trg1);
128 find transition(_, v, trg2); 128// find transition(_, v, trg2);
129 trg1 != trg2; 129// trg1 != trg2;
130} 130//}
131 131//
132pattern hasMultipleIncomingTrainsition(v : Synchronization) { 132//pattern hasMultipleIncomingTrainsition(v : Synchronization) {
133 find transition(_, src1, v); 133// find transition(_, src1, v);
134 find transition(_, src2, v); 134// find transition(_, src2, v);
135 src1 != src2; 135// src1 != src2;
136} 136//}
137 137//
138@Constraint(severity="error", message="error", key = {s}) 138//@Constraint(severity="error", message="error", key = {s})
139pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) { 139//pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) {
140 find transition(_, v1, s); 140// find transition(_, v1, s);
141 find transition(_, v2, s); 141// find transition(_, v2, s);
142 CompositeElement.regions.vertices(r1, v1); 142// CompositeElement.regions.vertices(r1, v1);
143 CompositeElement.regions.vertices(r2, v2); 143// CompositeElement.regions.vertices(r2, v2);
144 r1 != r2; 144// r1 != r2;
145} or { 145//} or {
146 find transition(_, s, v1); 146// find transition(_, s, v1);
147 find transition(_, s, v2); 147// find transition(_, s, v2);
148 CompositeElement.regions.vertices(r1, v1); 148// CompositeElement.regions.vertices(r1, v1);
149 CompositeElement.regions.vertices(r2, v2); 149// CompositeElement.regions.vertices(r2, v2);
150 r1 != r2; 150// r1 != r2;
151} 151//}
152 152
153/////////////////////////////// 153///////////////////////////////
154// Extra 154// Extra