aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen
diff options
context:
space:
mode:
Diffstat (limited to 'Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen')
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Factory.java78
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3ModelRoot.java87
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Package.java716
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Segment.java86
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/SimpleSegment.java17
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Train.java94
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Turnout.java68
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3FactoryImpl.java139
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3ModelRootImpl.java296
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3PackageImpl.java385
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SegmentImpl.java319
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SimpleSegmentImpl.java37
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TrainImpl.java332
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TurnoutImpl.java216
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3AdapterFactory.java192
-rw-r--r--Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3Switch.java196
16 files changed, 3258 insertions, 0 deletions
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Factory.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Factory.java
new file mode 100644
index 00000000..10ce47a1
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Factory.java
@@ -0,0 +1,78 @@
1/**
2 */
3package modes3;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see modes3.Modes3Package
13 * @generated
14 */
15public interface Modes3Factory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 Modes3Factory eINSTANCE = modes3.impl.Modes3FactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Segment</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Segment</em>'.
29 * @generated
30 */
31 Segment createSegment();
32
33 /**
34 * Returns a new object of class '<em>Model Root</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Model Root</em>'.
38 * @generated
39 */
40 Modes3ModelRoot createModes3ModelRoot();
41
42 /**
43 * Returns a new object of class '<em>Turnout</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Turnout</em>'.
47 * @generated
48 */
49 Turnout createTurnout();
50
51 /**
52 * Returns a new object of class '<em>Train</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Train</em>'.
56 * @generated
57 */
58 Train createTrain();
59
60 /**
61 * Returns a new object of class '<em>Simple Segment</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Simple Segment</em>'.
65 * @generated
66 */
67 SimpleSegment createSimpleSegment();
68
69 /**
70 * Returns the package supported by this factory.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return the package supported by this factory.
74 * @generated
75 */
76 Modes3Package getModes3Package();
77
78} //Modes3Factory
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3ModelRoot.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3ModelRoot.java
new file mode 100644
index 00000000..d46ee305
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3ModelRoot.java
@@ -0,0 +1,87 @@
1/**
2 */
3package modes3;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Model Root</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link modes3.Modes3ModelRoot#getId <em>Id</em>}</li>
19 * <li>{@link modes3.Modes3ModelRoot#getTrains <em>Trains</em>}</li>
20 * <li>{@link modes3.Modes3ModelRoot#getSegments <em>Segments</em>}</li>
21 * <li>{@link modes3.Modes3ModelRoot#getTurnouts <em>Turnouts</em>}</li>
22 * </ul>
23 *
24 * @see modes3.Modes3Package#getModes3ModelRoot()
25 * @model
26 * @generated
27 */
28public interface Modes3ModelRoot extends EObject {
29 /**
30 * Returns the value of the '<em><b>Id</b></em>' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Id</em>' attribute.
34 * @see #setId(int)
35 * @see modes3.Modes3Package#getModes3ModelRoot_Id()
36 * @model
37 * @generated
38 */
39 int getId();
40
41 /**
42 * Sets the value of the '{@link modes3.Modes3ModelRoot#getId <em>Id</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Id</em>' attribute.
46 * @see #getId()
47 * @generated
48 */
49 void setId(int value);
50
51 /**
52 * Returns the value of the '<em><b>Trains</b></em>' containment reference list.
53 * The list contents are of type {@link modes3.Train}.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Trains</em>' containment reference list.
57 * @see modes3.Modes3Package#getModes3ModelRoot_Trains()
58 * @model containment="true"
59 * @generated
60 */
61 EList<Train> getTrains();
62
63 /**
64 * Returns the value of the '<em><b>Segments</b></em>' containment reference list.
65 * The list contents are of type {@link modes3.SimpleSegment}.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @return the value of the '<em>Segments</em>' containment reference list.
69 * @see modes3.Modes3Package#getModes3ModelRoot_Segments()
70 * @model containment="true"
71 * @generated
72 */
73 EList<SimpleSegment> getSegments();
74
75 /**
76 * Returns the value of the '<em><b>Turnouts</b></em>' containment reference list.
77 * The list contents are of type {@link modes3.Turnout}.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @return the value of the '<em>Turnouts</em>' containment reference list.
81 * @see modes3.Modes3Package#getModes3ModelRoot_Turnouts()
82 * @model containment="true"
83 * @generated
84 */
85 EList<Turnout> getTurnouts();
86
87} // Modes3ModelRoot
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Package.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Package.java
new file mode 100644
index 00000000..a19c1955
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Modes3Package.java
@@ -0,0 +1,716 @@
1/**
2 */
3package modes3;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference;
9
10/**
11 * <!-- begin-user-doc -->
12 * The <b>Package</b> for the model.
13 * It contains accessors for the meta objects to represent
14 * <ul>
15 * <li>each class,</li>
16 * <li>each feature of each class,</li>
17 * <li>each operation of each class,</li>
18 * <li>each enum,</li>
19 * <li>and each data type</li>
20 * </ul>
21 * <!-- end-user-doc -->
22 * @see modes3.Modes3Factory
23 * @model kind="package"
24 * @generated
25 */
26public interface Modes3Package extends EPackage {
27 /**
28 * The package name.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @generated
32 */
33 String eNAME = "modes3";
34
35 /**
36 * The package namespace URI.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 String eNS_URI = "http://www.ece.mcgill.ca/wcet/modes3";
42
43 /**
44 * The package namespace name.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 String eNS_PREFIX = "modes3";
50
51 /**
52 * The singleton instance of the package.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 Modes3Package eINSTANCE = modes3.impl.Modes3PackageImpl.init();
58
59 /**
60 * The meta object id for the '{@link modes3.impl.SegmentImpl <em>Segment</em>}' class.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see modes3.impl.SegmentImpl
64 * @see modes3.impl.Modes3PackageImpl#getSegment()
65 * @generated
66 */
67 int SEGMENT = 0;
68
69 /**
70 * The feature id for the '<em><b>Connected To</b></em>' reference list.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 * @ordered
75 */
76 int SEGMENT__CONNECTED_TO = 0;
77
78 /**
79 * The feature id for the '<em><b>Occupied By</b></em>' reference.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 * @ordered
84 */
85 int SEGMENT__OCCUPIED_BY = 1;
86
87 /**
88 * The feature id for the '<em><b>Id</b></em>' attribute.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 * @ordered
93 */
94 int SEGMENT__ID = 2;
95
96 /**
97 * The number of structural features of the '<em>Segment</em>' class.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 * @ordered
102 */
103 int SEGMENT_FEATURE_COUNT = 3;
104
105 /**
106 * The number of operations of the '<em>Segment</em>' class.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 * @ordered
111 */
112 int SEGMENT_OPERATION_COUNT = 0;
113
114 /**
115 * The meta object id for the '{@link modes3.impl.Modes3ModelRootImpl <em>Model Root</em>}' class.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see modes3.impl.Modes3ModelRootImpl
119 * @see modes3.impl.Modes3PackageImpl#getModes3ModelRoot()
120 * @generated
121 */
122 int MODES3_MODEL_ROOT = 1;
123
124 /**
125 * The feature id for the '<em><b>Id</b></em>' attribute.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 * @ordered
130 */
131 int MODES3_MODEL_ROOT__ID = 0;
132
133 /**
134 * The feature id for the '<em><b>Trains</b></em>' containment reference list.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 * @ordered
139 */
140 int MODES3_MODEL_ROOT__TRAINS = 1;
141
142 /**
143 * The feature id for the '<em><b>Segments</b></em>' containment reference list.
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 * @ordered
148 */
149 int MODES3_MODEL_ROOT__SEGMENTS = 2;
150
151 /**
152 * The feature id for the '<em><b>Turnouts</b></em>' containment reference list.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 * @ordered
157 */
158 int MODES3_MODEL_ROOT__TURNOUTS = 3;
159
160 /**
161 * The number of structural features of the '<em>Model Root</em>' class.
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 * @ordered
166 */
167 int MODES3_MODEL_ROOT_FEATURE_COUNT = 4;
168
169 /**
170 * The number of operations of the '<em>Model Root</em>' class.
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 * @ordered
175 */
176 int MODES3_MODEL_ROOT_OPERATION_COUNT = 0;
177
178 /**
179 * The meta object id for the '{@link modes3.impl.TurnoutImpl <em>Turnout</em>}' class.
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @see modes3.impl.TurnoutImpl
183 * @see modes3.impl.Modes3PackageImpl#getTurnout()
184 * @generated
185 */
186 int TURNOUT = 2;
187
188 /**
189 * The feature id for the '<em><b>Connected To</b></em>' reference list.
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 * @ordered
194 */
195 int TURNOUT__CONNECTED_TO = SEGMENT__CONNECTED_TO;
196
197 /**
198 * The feature id for the '<em><b>Occupied By</b></em>' reference.
199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc -->
201 * @generated
202 * @ordered
203 */
204 int TURNOUT__OCCUPIED_BY = SEGMENT__OCCUPIED_BY;
205
206 /**
207 * The feature id for the '<em><b>Id</b></em>' attribute.
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 * @ordered
212 */
213 int TURNOUT__ID = SEGMENT__ID;
214
215 /**
216 * The feature id for the '<em><b>Straight</b></em>' reference.
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 * @ordered
221 */
222 int TURNOUT__STRAIGHT = SEGMENT_FEATURE_COUNT + 0;
223
224 /**
225 * The feature id for the '<em><b>Divergent</b></em>' reference.
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 * @ordered
230 */
231 int TURNOUT__DIVERGENT = SEGMENT_FEATURE_COUNT + 1;
232
233 /**
234 * The number of structural features of the '<em>Turnout</em>' class.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 * @ordered
239 */
240 int TURNOUT_FEATURE_COUNT = SEGMENT_FEATURE_COUNT + 2;
241
242 /**
243 * The number of operations of the '<em>Turnout</em>' class.
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 * @ordered
248 */
249 int TURNOUT_OPERATION_COUNT = SEGMENT_OPERATION_COUNT + 0;
250
251 /**
252 * The meta object id for the '{@link modes3.impl.TrainImpl <em>Train</em>}' class.
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @see modes3.impl.TrainImpl
256 * @see modes3.impl.Modes3PackageImpl#getTrain()
257 * @generated
258 */
259 int TRAIN = 3;
260
261 /**
262 * The feature id for the '<em><b>Location</b></em>' reference.
263 * <!-- begin-user-doc -->
264 * <!-- end-user-doc -->
265 * @generated
266 * @ordered
267 */
268 int TRAIN__LOCATION = 0;
269
270 /**
271 * The feature id for the '<em><b>Id</b></em>' attribute.
272 * <!-- begin-user-doc -->
273 * <!-- end-user-doc -->
274 * @generated
275 * @ordered
276 */
277 int TRAIN__ID = 1;
278
279 /**
280 * The feature id for the '<em><b>Speed</b></em>' attribute.
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 * @ordered
285 */
286 int TRAIN__SPEED = 2;
287
288 /**
289 * The number of structural features of the '<em>Train</em>' class.
290 * <!-- begin-user-doc -->
291 * <!-- end-user-doc -->
292 * @generated
293 * @ordered
294 */
295 int TRAIN_FEATURE_COUNT = 3;
296
297 /**
298 * The number of operations of the '<em>Train</em>' class.
299 * <!-- begin-user-doc -->
300 * <!-- end-user-doc -->
301 * @generated
302 * @ordered
303 */
304 int TRAIN_OPERATION_COUNT = 0;
305
306
307 /**
308 * The meta object id for the '{@link modes3.impl.SimpleSegmentImpl <em>Simple Segment</em>}' class.
309 * <!-- begin-user-doc -->
310 * <!-- end-user-doc -->
311 * @see modes3.impl.SimpleSegmentImpl
312 * @see modes3.impl.Modes3PackageImpl#getSimpleSegment()
313 * @generated
314 */
315 int SIMPLE_SEGMENT = 4;
316
317 /**
318 * The feature id for the '<em><b>Connected To</b></em>' reference list.
319 * <!-- begin-user-doc -->
320 * <!-- end-user-doc -->
321 * @generated
322 * @ordered
323 */
324 int SIMPLE_SEGMENT__CONNECTED_TO = SEGMENT__CONNECTED_TO;
325
326 /**
327 * The feature id for the '<em><b>Occupied By</b></em>' reference.
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @generated
331 * @ordered
332 */
333 int SIMPLE_SEGMENT__OCCUPIED_BY = SEGMENT__OCCUPIED_BY;
334
335 /**
336 * The feature id for the '<em><b>Id</b></em>' attribute.
337 * <!-- begin-user-doc -->
338 * <!-- end-user-doc -->
339 * @generated
340 * @ordered
341 */
342 int SIMPLE_SEGMENT__ID = SEGMENT__ID;
343
344 /**
345 * The number of structural features of the '<em>Simple Segment</em>' class.
346 * <!-- begin-user-doc -->
347 * <!-- end-user-doc -->
348 * @generated
349 * @ordered
350 */
351 int SIMPLE_SEGMENT_FEATURE_COUNT = SEGMENT_FEATURE_COUNT + 0;
352
353 /**
354 * The number of operations of the '<em>Simple Segment</em>' class.
355 * <!-- begin-user-doc -->
356 * <!-- end-user-doc -->
357 * @generated
358 * @ordered
359 */
360 int SIMPLE_SEGMENT_OPERATION_COUNT = SEGMENT_OPERATION_COUNT + 0;
361
362
363 /**
364 * Returns the meta object for class '{@link modes3.Segment <em>Segment</em>}'.
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @return the meta object for class '<em>Segment</em>'.
368 * @see modes3.Segment
369 * @generated
370 */
371 EClass getSegment();
372
373 /**
374 * Returns the meta object for the reference list '{@link modes3.Segment#getConnectedTo <em>Connected To</em>}'.
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @return the meta object for the reference list '<em>Connected To</em>'.
378 * @see modes3.Segment#getConnectedTo()
379 * @see #getSegment()
380 * @generated
381 */
382 EReference getSegment_ConnectedTo();
383
384 /**
385 * Returns the meta object for the reference '{@link modes3.Segment#getOccupiedBy <em>Occupied By</em>}'.
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @return the meta object for the reference '<em>Occupied By</em>'.
389 * @see modes3.Segment#getOccupiedBy()
390 * @see #getSegment()
391 * @generated
392 */
393 EReference getSegment_OccupiedBy();
394
395 /**
396 * Returns the meta object for the attribute '{@link modes3.Segment#getId <em>Id</em>}'.
397 * <!-- begin-user-doc -->
398 * <!-- end-user-doc -->
399 * @return the meta object for the attribute '<em>Id</em>'.
400 * @see modes3.Segment#getId()
401 * @see #getSegment()
402 * @generated
403 */
404 EAttribute getSegment_Id();
405
406 /**
407 * Returns the meta object for class '{@link modes3.Modes3ModelRoot <em>Model Root</em>}'.
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @return the meta object for class '<em>Model Root</em>'.
411 * @see modes3.Modes3ModelRoot
412 * @generated
413 */
414 EClass getModes3ModelRoot();
415
416 /**
417 * Returns the meta object for the attribute '{@link modes3.Modes3ModelRoot#getId <em>Id</em>}'.
418 * <!-- begin-user-doc -->
419 * <!-- end-user-doc -->
420 * @return the meta object for the attribute '<em>Id</em>'.
421 * @see modes3.Modes3ModelRoot#getId()
422 * @see #getModes3ModelRoot()
423 * @generated
424 */
425 EAttribute getModes3ModelRoot_Id();
426
427 /**
428 * Returns the meta object for the containment reference list '{@link modes3.Modes3ModelRoot#getTrains <em>Trains</em>}'.
429 * <!-- begin-user-doc -->
430 * <!-- end-user-doc -->
431 * @return the meta object for the containment reference list '<em>Trains</em>'.
432 * @see modes3.Modes3ModelRoot#getTrains()
433 * @see #getModes3ModelRoot()
434 * @generated
435 */
436 EReference getModes3ModelRoot_Trains();
437
438 /**
439 * Returns the meta object for the containment reference list '{@link modes3.Modes3ModelRoot#getSegments <em>Segments</em>}'.
440 * <!-- begin-user-doc -->
441 * <!-- end-user-doc -->
442 * @return the meta object for the containment reference list '<em>Segments</em>'.
443 * @see modes3.Modes3ModelRoot#getSegments()
444 * @see #getModes3ModelRoot()
445 * @generated
446 */
447 EReference getModes3ModelRoot_Segments();
448
449 /**
450 * Returns the meta object for the containment reference list '{@link modes3.Modes3ModelRoot#getTurnouts <em>Turnouts</em>}'.
451 * <!-- begin-user-doc -->
452 * <!-- end-user-doc -->
453 * @return the meta object for the containment reference list '<em>Turnouts</em>'.
454 * @see modes3.Modes3ModelRoot#getTurnouts()
455 * @see #getModes3ModelRoot()
456 * @generated
457 */
458 EReference getModes3ModelRoot_Turnouts();
459
460 /**
461 * Returns the meta object for class '{@link modes3.Turnout <em>Turnout</em>}'.
462 * <!-- begin-user-doc -->
463 * <!-- end-user-doc -->
464 * @return the meta object for class '<em>Turnout</em>'.
465 * @see modes3.Turnout
466 * @generated
467 */
468 EClass getTurnout();
469
470 /**
471 * Returns the meta object for the reference '{@link modes3.Turnout#getStraight <em>Straight</em>}'.
472 * <!-- begin-user-doc -->
473 * <!-- end-user-doc -->
474 * @return the meta object for the reference '<em>Straight</em>'.
475 * @see modes3.Turnout#getStraight()
476 * @see #getTurnout()
477 * @generated
478 */
479 EReference getTurnout_Straight();
480
481 /**
482 * Returns the meta object for the reference '{@link modes3.Turnout#getDivergent <em>Divergent</em>}'.
483 * <!-- begin-user-doc -->
484 * <!-- end-user-doc -->
485 * @return the meta object for the reference '<em>Divergent</em>'.
486 * @see modes3.Turnout#getDivergent()
487 * @see #getTurnout()
488 * @generated
489 */
490 EReference getTurnout_Divergent();
491
492 /**
493 * Returns the meta object for class '{@link modes3.Train <em>Train</em>}'.
494 * <!-- begin-user-doc -->
495 * <!-- end-user-doc -->
496 * @return the meta object for class '<em>Train</em>'.
497 * @see modes3.Train
498 * @generated
499 */
500 EClass getTrain();
501
502 /**
503 * Returns the meta object for the reference '{@link modes3.Train#getLocation <em>Location</em>}'.
504 * <!-- begin-user-doc -->
505 * <!-- end-user-doc -->
506 * @return the meta object for the reference '<em>Location</em>'.
507 * @see modes3.Train#getLocation()
508 * @see #getTrain()
509 * @generated
510 */
511 EReference getTrain_Location();
512
513 /**
514 * Returns the meta object for the attribute '{@link modes3.Train#getId <em>Id</em>}'.
515 * <!-- begin-user-doc -->
516 * <!-- end-user-doc -->
517 * @return the meta object for the attribute '<em>Id</em>'.
518 * @see modes3.Train#getId()
519 * @see #getTrain()
520 * @generated
521 */
522 EAttribute getTrain_Id();
523
524 /**
525 * Returns the meta object for the attribute '{@link modes3.Train#getSpeed <em>Speed</em>}'.
526 * <!-- begin-user-doc -->
527 * <!-- end-user-doc -->
528 * @return the meta object for the attribute '<em>Speed</em>'.
529 * @see modes3.Train#getSpeed()
530 * @see #getTrain()
531 * @generated
532 */
533 EAttribute getTrain_Speed();
534
535 /**
536 * Returns the meta object for class '{@link modes3.SimpleSegment <em>Simple Segment</em>}'.
537 * <!-- begin-user-doc -->
538 * <!-- end-user-doc -->
539 * @return the meta object for class '<em>Simple Segment</em>'.
540 * @see modes3.SimpleSegment
541 * @generated
542 */
543 EClass getSimpleSegment();
544
545 /**
546 * Returns the factory that creates the instances of the model.
547 * <!-- begin-user-doc -->
548 * <!-- end-user-doc -->
549 * @return the factory that creates the instances of the model.
550 * @generated
551 */
552 Modes3Factory getModes3Factory();
553
554 /**
555 * <!-- begin-user-doc -->
556 * Defines literals for the meta objects that represent
557 * <ul>
558 * <li>each class,</li>
559 * <li>each feature of each class,</li>
560 * <li>each operation of each class,</li>
561 * <li>each enum,</li>
562 * <li>and each data type</li>
563 * </ul>
564 * <!-- end-user-doc -->
565 * @generated
566 */
567 interface Literals {
568 /**
569 * The meta object literal for the '{@link modes3.impl.SegmentImpl <em>Segment</em>}' class.
570 * <!-- begin-user-doc -->
571 * <!-- end-user-doc -->
572 * @see modes3.impl.SegmentImpl
573 * @see modes3.impl.Modes3PackageImpl#getSegment()
574 * @generated
575 */
576 EClass SEGMENT = eINSTANCE.getSegment();
577
578 /**
579 * The meta object literal for the '<em><b>Connected To</b></em>' reference list feature.
580 * <!-- begin-user-doc -->
581 * <!-- end-user-doc -->
582 * @generated
583 */
584 EReference SEGMENT__CONNECTED_TO = eINSTANCE.getSegment_ConnectedTo();
585
586 /**
587 * The meta object literal for the '<em><b>Occupied By</b></em>' reference feature.
588 * <!-- begin-user-doc -->
589 * <!-- end-user-doc -->
590 * @generated
591 */
592 EReference SEGMENT__OCCUPIED_BY = eINSTANCE.getSegment_OccupiedBy();
593
594 /**
595 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 */
600 EAttribute SEGMENT__ID = eINSTANCE.getSegment_Id();
601
602 /**
603 * The meta object literal for the '{@link modes3.impl.Modes3ModelRootImpl <em>Model Root</em>}' class.
604 * <!-- begin-user-doc -->
605 * <!-- end-user-doc -->
606 * @see modes3.impl.Modes3ModelRootImpl
607 * @see modes3.impl.Modes3PackageImpl#getModes3ModelRoot()
608 * @generated
609 */
610 EClass MODES3_MODEL_ROOT = eINSTANCE.getModes3ModelRoot();
611
612 /**
613 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 */
618 EAttribute MODES3_MODEL_ROOT__ID = eINSTANCE.getModes3ModelRoot_Id();
619
620 /**
621 * The meta object literal for the '<em><b>Trains</b></em>' containment reference list feature.
622 * <!-- begin-user-doc -->
623 * <!-- end-user-doc -->
624 * @generated
625 */
626 EReference MODES3_MODEL_ROOT__TRAINS = eINSTANCE.getModes3ModelRoot_Trains();
627
628 /**
629 * The meta object literal for the '<em><b>Segments</b></em>' containment reference list feature.
630 * <!-- begin-user-doc -->
631 * <!-- end-user-doc -->
632 * @generated
633 */
634 EReference MODES3_MODEL_ROOT__SEGMENTS = eINSTANCE.getModes3ModelRoot_Segments();
635
636 /**
637 * The meta object literal for the '<em><b>Turnouts</b></em>' containment reference list feature.
638 * <!-- begin-user-doc -->
639 * <!-- end-user-doc -->
640 * @generated
641 */
642 EReference MODES3_MODEL_ROOT__TURNOUTS = eINSTANCE.getModes3ModelRoot_Turnouts();
643
644 /**
645 * The meta object literal for the '{@link modes3.impl.TurnoutImpl <em>Turnout</em>}' class.
646 * <!-- begin-user-doc -->
647 * <!-- end-user-doc -->
648 * @see modes3.impl.TurnoutImpl
649 * @see modes3.impl.Modes3PackageImpl#getTurnout()
650 * @generated
651 */
652 EClass TURNOUT = eINSTANCE.getTurnout();
653
654 /**
655 * The meta object literal for the '<em><b>Straight</b></em>' reference feature.
656 * <!-- begin-user-doc -->
657 * <!-- end-user-doc -->
658 * @generated
659 */
660 EReference TURNOUT__STRAIGHT = eINSTANCE.getTurnout_Straight();
661
662 /**
663 * The meta object literal for the '<em><b>Divergent</b></em>' reference feature.
664 * <!-- begin-user-doc -->
665 * <!-- end-user-doc -->
666 * @generated
667 */
668 EReference TURNOUT__DIVERGENT = eINSTANCE.getTurnout_Divergent();
669
670 /**
671 * The meta object literal for the '{@link modes3.impl.TrainImpl <em>Train</em>}' class.
672 * <!-- begin-user-doc -->
673 * <!-- end-user-doc -->
674 * @see modes3.impl.TrainImpl
675 * @see modes3.impl.Modes3PackageImpl#getTrain()
676 * @generated
677 */
678 EClass TRAIN = eINSTANCE.getTrain();
679
680 /**
681 * The meta object literal for the '<em><b>Location</b></em>' reference feature.
682 * <!-- begin-user-doc -->
683 * <!-- end-user-doc -->
684 * @generated
685 */
686 EReference TRAIN__LOCATION = eINSTANCE.getTrain_Location();
687
688 /**
689 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
690 * <!-- begin-user-doc -->
691 * <!-- end-user-doc -->
692 * @generated
693 */
694 EAttribute TRAIN__ID = eINSTANCE.getTrain_Id();
695
696 /**
697 * The meta object literal for the '<em><b>Speed</b></em>' attribute feature.
698 * <!-- begin-user-doc -->
699 * <!-- end-user-doc -->
700 * @generated
701 */
702 EAttribute TRAIN__SPEED = eINSTANCE.getTrain_Speed();
703
704 /**
705 * The meta object literal for the '{@link modes3.impl.SimpleSegmentImpl <em>Simple Segment</em>}' class.
706 * <!-- begin-user-doc -->
707 * <!-- end-user-doc -->
708 * @see modes3.impl.SimpleSegmentImpl
709 * @see modes3.impl.Modes3PackageImpl#getSimpleSegment()
710 * @generated
711 */
712 EClass SIMPLE_SEGMENT = eINSTANCE.getSimpleSegment();
713
714 }
715
716} //Modes3Package
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Segment.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Segment.java
new file mode 100644
index 00000000..002f25a5
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Segment.java
@@ -0,0 +1,86 @@
1/**
2 */
3package modes3;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Segment</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link modes3.Segment#getConnectedTo <em>Connected To</em>}</li>
19 * <li>{@link modes3.Segment#getOccupiedBy <em>Occupied By</em>}</li>
20 * <li>{@link modes3.Segment#getId <em>Id</em>}</li>
21 * </ul>
22 *
23 * @see modes3.Modes3Package#getSegment()
24 * @model
25 * @generated
26 */
27public interface Segment extends EObject {
28 /**
29 * Returns the value of the '<em><b>Connected To</b></em>' reference list.
30 * The list contents are of type {@link modes3.Segment}.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Connected To</em>' reference list.
34 * @see modes3.Modes3Package#getSegment_ConnectedTo()
35 * @model upper="2"
36 * @generated
37 */
38 EList<Segment> getConnectedTo();
39
40 /**
41 * Returns the value of the '<em><b>Occupied By</b></em>' reference.
42 * It is bidirectional and its opposite is '{@link modes3.Train#getLocation <em>Location</em>}'.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @return the value of the '<em>Occupied By</em>' reference.
46 * @see #setOccupiedBy(Train)
47 * @see modes3.Modes3Package#getSegment_OccupiedBy()
48 * @see modes3.Train#getLocation
49 * @model opposite="location"
50 * @generated
51 */
52 Train getOccupiedBy();
53
54 /**
55 * Sets the value of the '{@link modes3.Segment#getOccupiedBy <em>Occupied By</em>}' reference.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @param value the new value of the '<em>Occupied By</em>' reference.
59 * @see #getOccupiedBy()
60 * @generated
61 */
62 void setOccupiedBy(Train value);
63
64 /**
65 * Returns the value of the '<em><b>Id</b></em>' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @return the value of the '<em>Id</em>' attribute.
69 * @see #setId(int)
70 * @see modes3.Modes3Package#getSegment_Id()
71 * @model
72 * @generated
73 */
74 int getId();
75
76 /**
77 * Sets the value of the '{@link modes3.Segment#getId <em>Id</em>}' attribute.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @param value the new value of the '<em>Id</em>' attribute.
81 * @see #getId()
82 * @generated
83 */
84 void setId(int value);
85
86} // Segment
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/SimpleSegment.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/SimpleSegment.java
new file mode 100644
index 00000000..da77510f
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/SimpleSegment.java
@@ -0,0 +1,17 @@
1/**
2 */
3package modes3;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Simple Segment</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see modes3.Modes3Package#getSimpleSegment()
13 * @model
14 * @generated
15 */
16public interface SimpleSegment extends Segment {
17} // SimpleSegment
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Train.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Train.java
new file mode 100644
index 00000000..1829586d
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Train.java
@@ -0,0 +1,94 @@
1/**
2 */
3package modes3;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Train</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link modes3.Train#getLocation <em>Location</em>}</li>
17 * <li>{@link modes3.Train#getId <em>Id</em>}</li>
18 * <li>{@link modes3.Train#getSpeed <em>Speed</em>}</li>
19 * </ul>
20 *
21 * @see modes3.Modes3Package#getTrain()
22 * @model
23 * @generated
24 */
25public interface Train extends EObject {
26 /**
27 * Returns the value of the '<em><b>Location</b></em>' reference.
28 * It is bidirectional and its opposite is '{@link modes3.Segment#getOccupiedBy <em>Occupied By</em>}'.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Location</em>' reference.
32 * @see #setLocation(Segment)
33 * @see modes3.Modes3Package#getTrain_Location()
34 * @see modes3.Segment#getOccupiedBy
35 * @model opposite="occupiedBy" required="true"
36 * @generated
37 */
38 Segment getLocation();
39
40 /**
41 * Sets the value of the '{@link modes3.Train#getLocation <em>Location</em>}' reference.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Location</em>' reference.
45 * @see #getLocation()
46 * @generated
47 */
48 void setLocation(Segment value);
49
50 /**
51 * Returns the value of the '<em><b>Id</b></em>' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Id</em>' attribute.
55 * @see #setId(int)
56 * @see modes3.Modes3Package#getTrain_Id()
57 * @model
58 * @generated
59 */
60 int getId();
61
62 /**
63 * Sets the value of the '{@link modes3.Train#getId <em>Id</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @param value the new value of the '<em>Id</em>' attribute.
67 * @see #getId()
68 * @generated
69 */
70 void setId(int value);
71
72 /**
73 * Returns the value of the '<em><b>Speed</b></em>' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @return the value of the '<em>Speed</em>' attribute.
77 * @see #setSpeed(double)
78 * @see modes3.Modes3Package#getTrain_Speed()
79 * @model
80 * @generated
81 */
82 double getSpeed();
83
84 /**
85 * Sets the value of the '{@link modes3.Train#getSpeed <em>Speed</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param value the new value of the '<em>Speed</em>' attribute.
89 * @see #getSpeed()
90 * @generated
91 */
92 void setSpeed(double value);
93
94} // Train
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Turnout.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Turnout.java
new file mode 100644
index 00000000..799f8d7b
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/Turnout.java
@@ -0,0 +1,68 @@
1/**
2 */
3package modes3;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Turnout</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link modes3.Turnout#getStraight <em>Straight</em>}</li>
16 * <li>{@link modes3.Turnout#getDivergent <em>Divergent</em>}</li>
17 * </ul>
18 *
19 * @see modes3.Modes3Package#getTurnout()
20 * @model
21 * @generated
22 */
23public interface Turnout extends Segment {
24 /**
25 * Returns the value of the '<em><b>Straight</b></em>' reference.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Straight</em>' reference.
29 * @see #setStraight(Segment)
30 * @see modes3.Modes3Package#getTurnout_Straight()
31 * @model required="true"
32 * @generated
33 */
34 Segment getStraight();
35
36 /**
37 * Sets the value of the '{@link modes3.Turnout#getStraight <em>Straight</em>}' reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Straight</em>' reference.
41 * @see #getStraight()
42 * @generated
43 */
44 void setStraight(Segment value);
45
46 /**
47 * Returns the value of the '<em><b>Divergent</b></em>' reference.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @return the value of the '<em>Divergent</em>' reference.
51 * @see #setDivergent(Segment)
52 * @see modes3.Modes3Package#getTurnout_Divergent()
53 * @model required="true"
54 * @generated
55 */
56 Segment getDivergent();
57
58 /**
59 * Sets the value of the '{@link modes3.Turnout#getDivergent <em>Divergent</em>}' reference.
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @param value the new value of the '<em>Divergent</em>' reference.
63 * @see #getDivergent()
64 * @generated
65 */
66 void setDivergent(Segment value);
67
68} // Turnout
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3FactoryImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3FactoryImpl.java
new file mode 100644
index 00000000..60947533
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3FactoryImpl.java
@@ -0,0 +1,139 @@
1/**
2 */
3package modes3.impl;
4
5import modes3.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10
11import org.eclipse.emf.ecore.impl.EFactoryImpl;
12
13import org.eclipse.emf.ecore.plugin.EcorePlugin;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model <b>Factory</b>.
18 * <!-- end-user-doc -->
19 * @generated
20 */
21public class Modes3FactoryImpl extends EFactoryImpl implements Modes3Factory {
22 /**
23 * Creates the default factory implementation.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @generated
27 */
28 public static Modes3Factory init() {
29 try {
30 Modes3Factory theModes3Factory = (Modes3Factory)EPackage.Registry.INSTANCE.getEFactory(Modes3Package.eNS_URI);
31 if (theModes3Factory != null) {
32 return theModes3Factory;
33 }
34 }
35 catch (Exception exception) {
36 EcorePlugin.INSTANCE.log(exception);
37 }
38 return new Modes3FactoryImpl();
39 }
40
41 /**
42 * Creates an instance of the factory.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 public Modes3FactoryImpl() {
48 super();
49 }
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 @Override
57 public EObject create(EClass eClass) {
58 switch (eClass.getClassifierID()) {
59 case Modes3Package.SEGMENT: return createSegment();
60 case Modes3Package.MODES3_MODEL_ROOT: return createModes3ModelRoot();
61 case Modes3Package.TURNOUT: return createTurnout();
62 case Modes3Package.TRAIN: return createTrain();
63 case Modes3Package.SIMPLE_SEGMENT: return createSimpleSegment();
64 default:
65 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
66 }
67 }
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 public Segment createSegment() {
75 SegmentImpl segment = new SegmentImpl();
76 return segment;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 public Modes3ModelRoot createModes3ModelRoot() {
85 Modes3ModelRootImpl modes3ModelRoot = new Modes3ModelRootImpl();
86 return modes3ModelRoot;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 public Turnout createTurnout() {
95 TurnoutImpl turnout = new TurnoutImpl();
96 return turnout;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 public Train createTrain() {
105 TrainImpl train = new TrainImpl();
106 return train;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 public SimpleSegment createSimpleSegment() {
115 SimpleSegmentImpl simpleSegment = new SimpleSegmentImpl();
116 return simpleSegment;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 public Modes3Package getModes3Package() {
125 return (Modes3Package)getEPackage();
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @deprecated
132 * @generated
133 */
134 @Deprecated
135 public static Modes3Package getPackage() {
136 return Modes3Package.eINSTANCE;
137 }
138
139} //Modes3FactoryImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3ModelRootImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3ModelRootImpl.java
new file mode 100644
index 00000000..ccab1f29
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3ModelRootImpl.java
@@ -0,0 +1,296 @@
1/**
2 */
3package modes3.impl;
4
5import java.util.Collection;
6
7import modes3.Modes3ModelRoot;
8import modes3.Modes3Package;
9import modes3.SimpleSegment;
10import modes3.Train;
11import modes3.Turnout;
12
13import org.eclipse.emf.common.notify.Notification;
14import org.eclipse.emf.common.notify.NotificationChain;
15
16import org.eclipse.emf.common.util.EList;
17
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.emf.ecore.InternalEObject;
20
21import org.eclipse.emf.ecore.impl.ENotificationImpl;
22import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
23
24import org.eclipse.emf.ecore.util.EObjectContainmentEList;
25import org.eclipse.emf.ecore.util.InternalEList;
26
27/**
28 * <!-- begin-user-doc -->
29 * An implementation of the model object '<em><b>Model Root</b></em>'.
30 * <!-- end-user-doc -->
31 * <p>
32 * The following features are implemented:
33 * </p>
34 * <ul>
35 * <li>{@link modes3.impl.Modes3ModelRootImpl#getId <em>Id</em>}</li>
36 * <li>{@link modes3.impl.Modes3ModelRootImpl#getTrains <em>Trains</em>}</li>
37 * <li>{@link modes3.impl.Modes3ModelRootImpl#getSegments <em>Segments</em>}</li>
38 * <li>{@link modes3.impl.Modes3ModelRootImpl#getTurnouts <em>Turnouts</em>}</li>
39 * </ul>
40 *
41 * @generated
42 */
43public class Modes3ModelRootImpl extends MinimalEObjectImpl.Container implements Modes3ModelRoot {
44 /**
45 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getId()
49 * @generated
50 * @ordered
51 */
52 protected static final int ID_EDEFAULT = 0;
53
54 /**
55 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getId()
59 * @generated
60 * @ordered
61 */
62 protected int id = ID_EDEFAULT;
63
64 /**
65 * The cached value of the '{@link #getTrains() <em>Trains</em>}' containment reference list.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getTrains()
69 * @generated
70 * @ordered
71 */
72 protected EList<Train> trains;
73
74 /**
75 * The cached value of the '{@link #getSegments() <em>Segments</em>}' containment reference list.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #getSegments()
79 * @generated
80 * @ordered
81 */
82 protected EList<SimpleSegment> segments;
83
84 /**
85 * The cached value of the '{@link #getTurnouts() <em>Turnouts</em>}' containment reference list.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @see #getTurnouts()
89 * @generated
90 * @ordered
91 */
92 protected EList<Turnout> turnouts;
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 protected Modes3ModelRootImpl() {
100 super();
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 protected EClass eStaticClass() {
110 return Modes3Package.Literals.MODES3_MODEL_ROOT;
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 public int getId() {
119 return id;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public void setId(int newId) {
128 int oldId = id;
129 id = newId;
130 if (eNotificationRequired())
131 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.MODES3_MODEL_ROOT__ID, oldId, id));
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 public EList<Train> getTrains() {
140 if (trains == null) {
141 trains = new EObjectContainmentEList<Train>(Train.class, this, Modes3Package.MODES3_MODEL_ROOT__TRAINS);
142 }
143 return trains;
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 public EList<SimpleSegment> getSegments() {
152 if (segments == null) {
153 segments = new EObjectContainmentEList<SimpleSegment>(SimpleSegment.class, this, Modes3Package.MODES3_MODEL_ROOT__SEGMENTS);
154 }
155 return segments;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 public EList<Turnout> getTurnouts() {
164 if (turnouts == null) {
165 turnouts = new EObjectContainmentEList<Turnout>(Turnout.class, this, Modes3Package.MODES3_MODEL_ROOT__TURNOUTS);
166 }
167 return turnouts;
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @Override
176 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
177 switch (featureID) {
178 case Modes3Package.MODES3_MODEL_ROOT__TRAINS:
179 return ((InternalEList<?>)getTrains()).basicRemove(otherEnd, msgs);
180 case Modes3Package.MODES3_MODEL_ROOT__SEGMENTS:
181 return ((InternalEList<?>)getSegments()).basicRemove(otherEnd, msgs);
182 case Modes3Package.MODES3_MODEL_ROOT__TURNOUTS:
183 return ((InternalEList<?>)getTurnouts()).basicRemove(otherEnd, msgs);
184 }
185 return super.eInverseRemove(otherEnd, featureID, msgs);
186 }
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 @Override
194 public Object eGet(int featureID, boolean resolve, boolean coreType) {
195 switch (featureID) {
196 case Modes3Package.MODES3_MODEL_ROOT__ID:
197 return getId();
198 case Modes3Package.MODES3_MODEL_ROOT__TRAINS:
199 return getTrains();
200 case Modes3Package.MODES3_MODEL_ROOT__SEGMENTS:
201 return getSegments();
202 case Modes3Package.MODES3_MODEL_ROOT__TURNOUTS:
203 return getTurnouts();
204 }
205 return super.eGet(featureID, resolve, coreType);
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 @SuppressWarnings("unchecked")
214 @Override
215 public void eSet(int featureID, Object newValue) {
216 switch (featureID) {
217 case Modes3Package.MODES3_MODEL_ROOT__ID:
218 setId((Integer)newValue);
219 return;
220 case Modes3Package.MODES3_MODEL_ROOT__TRAINS:
221 getTrains().clear();
222 getTrains().addAll((Collection<? extends Train>)newValue);
223 return;
224 case Modes3Package.MODES3_MODEL_ROOT__SEGMENTS:
225 getSegments().clear();
226 getSegments().addAll((Collection<? extends SimpleSegment>)newValue);
227 return;
228 case Modes3Package.MODES3_MODEL_ROOT__TURNOUTS:
229 getTurnouts().clear();
230 getTurnouts().addAll((Collection<? extends Turnout>)newValue);
231 return;
232 }
233 super.eSet(featureID, newValue);
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 @Override
242 public void eUnset(int featureID) {
243 switch (featureID) {
244 case Modes3Package.MODES3_MODEL_ROOT__ID:
245 setId(ID_EDEFAULT);
246 return;
247 case Modes3Package.MODES3_MODEL_ROOT__TRAINS:
248 getTrains().clear();
249 return;
250 case Modes3Package.MODES3_MODEL_ROOT__SEGMENTS:
251 getSegments().clear();
252 return;
253 case Modes3Package.MODES3_MODEL_ROOT__TURNOUTS:
254 getTurnouts().clear();
255 return;
256 }
257 super.eUnset(featureID);
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public boolean eIsSet(int featureID) {
267 switch (featureID) {
268 case Modes3Package.MODES3_MODEL_ROOT__ID:
269 return id != ID_EDEFAULT;
270 case Modes3Package.MODES3_MODEL_ROOT__TRAINS:
271 return trains != null && !trains.isEmpty();
272 case Modes3Package.MODES3_MODEL_ROOT__SEGMENTS:
273 return segments != null && !segments.isEmpty();
274 case Modes3Package.MODES3_MODEL_ROOT__TURNOUTS:
275 return turnouts != null && !turnouts.isEmpty();
276 }
277 return super.eIsSet(featureID);
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 @Override
286 public String toString() {
287 if (eIsProxy()) return super.toString();
288
289 StringBuilder result = new StringBuilder(super.toString());
290 result.append(" (id: ");
291 result.append(id);
292 result.append(')');
293 return result.toString();
294 }
295
296} //Modes3ModelRootImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3PackageImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3PackageImpl.java
new file mode 100644
index 00000000..557da4c1
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/Modes3PackageImpl.java
@@ -0,0 +1,385 @@
1/**
2 */
3package modes3.impl;
4
5import modes3.Modes3Factory;
6import modes3.Modes3ModelRoot;
7import modes3.Modes3Package;
8import modes3.Segment;
9import modes3.SimpleSegment;
10import modes3.Train;
11import modes3.Turnout;
12
13import org.eclipse.emf.ecore.EAttribute;
14import org.eclipse.emf.ecore.EClass;
15import org.eclipse.emf.ecore.EPackage;
16import org.eclipse.emf.ecore.EReference;
17
18import org.eclipse.emf.ecore.impl.EPackageImpl;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model <b>Package</b>.
23 * <!-- end-user-doc -->
24 * @generated
25 */
26public class Modes3PackageImpl extends EPackageImpl implements Modes3Package {
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 private EClass segmentEClass = null;
33
34 /**
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @generated
38 */
39 private EClass modes3ModelRootEClass = null;
40
41 /**
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @generated
45 */
46 private EClass turnoutEClass = null;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 private EClass trainEClass = null;
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 private EClass simpleSegmentEClass = null;
61
62 /**
63 * Creates an instance of the model <b>Package</b>, registered with
64 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
65 * package URI value.
66 * <p>Note: the correct way to create the package is via the static
67 * factory method {@link #init init()}, which also performs
68 * initialization of the package, or returns the registered package,
69 * if one already exists.
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @see org.eclipse.emf.ecore.EPackage.Registry
73 * @see modes3.Modes3Package#eNS_URI
74 * @see #init()
75 * @generated
76 */
77 private Modes3PackageImpl() {
78 super(eNS_URI, Modes3Factory.eINSTANCE);
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 private static boolean isInited = false;
87
88 /**
89 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
90 *
91 * <p>This method is used to initialize {@link Modes3Package#eINSTANCE} when that field is accessed.
92 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #eNS_URI
96 * @see #createPackageContents()
97 * @see #initializePackageContents()
98 * @generated
99 */
100 public static Modes3Package init() {
101 if (isInited) return (Modes3Package)EPackage.Registry.INSTANCE.getEPackage(Modes3Package.eNS_URI);
102
103 // Obtain or create and register package
104 Object registeredModes3Package = EPackage.Registry.INSTANCE.get(eNS_URI);
105 Modes3PackageImpl theModes3Package = registeredModes3Package instanceof Modes3PackageImpl ? (Modes3PackageImpl)registeredModes3Package : new Modes3PackageImpl();
106
107 isInited = true;
108
109 // Create package meta-data objects
110 theModes3Package.createPackageContents();
111
112 // Initialize created meta-data
113 theModes3Package.initializePackageContents();
114
115 // Mark meta-data to indicate it can't be changed
116 theModes3Package.freeze();
117
118 // Update the registry and return the package
119 EPackage.Registry.INSTANCE.put(Modes3Package.eNS_URI, theModes3Package);
120 return theModes3Package;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public EClass getSegment() {
129 return segmentEClass;
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 public EReference getSegment_ConnectedTo() {
138 return (EReference)segmentEClass.getEStructuralFeatures().get(0);
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 public EReference getSegment_OccupiedBy() {
147 return (EReference)segmentEClass.getEStructuralFeatures().get(1);
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 public EAttribute getSegment_Id() {
156 return (EAttribute)segmentEClass.getEStructuralFeatures().get(2);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 public EClass getModes3ModelRoot() {
165 return modes3ModelRootEClass;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 public EAttribute getModes3ModelRoot_Id() {
174 return (EAttribute)modes3ModelRootEClass.getEStructuralFeatures().get(0);
175 }
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 public EReference getModes3ModelRoot_Trains() {
183 return (EReference)modes3ModelRootEClass.getEStructuralFeatures().get(1);
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 public EReference getModes3ModelRoot_Segments() {
192 return (EReference)modes3ModelRootEClass.getEStructuralFeatures().get(2);
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 public EReference getModes3ModelRoot_Turnouts() {
201 return (EReference)modes3ModelRootEClass.getEStructuralFeatures().get(3);
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 public EClass getTurnout() {
210 return turnoutEClass;
211 }
212
213 /**
214 * <!-- begin-user-doc -->
215 * <!-- end-user-doc -->
216 * @generated
217 */
218 public EReference getTurnout_Straight() {
219 return (EReference)turnoutEClass.getEStructuralFeatures().get(0);
220 }
221
222 /**
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 public EReference getTurnout_Divergent() {
228 return (EReference)turnoutEClass.getEStructuralFeatures().get(1);
229 }
230
231 /**
232 * <!-- begin-user-doc -->
233 * <!-- end-user-doc -->
234 * @generated
235 */
236 public EClass getTrain() {
237 return trainEClass;
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 public EReference getTrain_Location() {
246 return (EReference)trainEClass.getEStructuralFeatures().get(0);
247 }
248
249 /**
250 * <!-- begin-user-doc -->
251 * <!-- end-user-doc -->
252 * @generated
253 */
254 public EAttribute getTrain_Id() {
255 return (EAttribute)trainEClass.getEStructuralFeatures().get(1);
256 }
257
258 /**
259 * <!-- begin-user-doc -->
260 * <!-- end-user-doc -->
261 * @generated
262 */
263 public EAttribute getTrain_Speed() {
264 return (EAttribute)trainEClass.getEStructuralFeatures().get(2);
265 }
266
267 /**
268 * <!-- begin-user-doc -->
269 * <!-- end-user-doc -->
270 * @generated
271 */
272 public EClass getSimpleSegment() {
273 return simpleSegmentEClass;
274 }
275
276 /**
277 * <!-- begin-user-doc -->
278 * <!-- end-user-doc -->
279 * @generated
280 */
281 public Modes3Factory getModes3Factory() {
282 return (Modes3Factory)getEFactoryInstance();
283 }
284
285 /**
286 * <!-- begin-user-doc -->
287 * <!-- end-user-doc -->
288 * @generated
289 */
290 private boolean isCreated = false;
291
292 /**
293 * Creates the meta-model objects for the package. This method is
294 * guarded to have no affect on any invocation but its first.
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 public void createPackageContents() {
300 if (isCreated) return;
301 isCreated = true;
302
303 // Create classes and their features
304 segmentEClass = createEClass(SEGMENT);
305 createEReference(segmentEClass, SEGMENT__CONNECTED_TO);
306 createEReference(segmentEClass, SEGMENT__OCCUPIED_BY);
307 createEAttribute(segmentEClass, SEGMENT__ID);
308
309 modes3ModelRootEClass = createEClass(MODES3_MODEL_ROOT);
310 createEAttribute(modes3ModelRootEClass, MODES3_MODEL_ROOT__ID);
311 createEReference(modes3ModelRootEClass, MODES3_MODEL_ROOT__TRAINS);
312 createEReference(modes3ModelRootEClass, MODES3_MODEL_ROOT__SEGMENTS);
313 createEReference(modes3ModelRootEClass, MODES3_MODEL_ROOT__TURNOUTS);
314
315 turnoutEClass = createEClass(TURNOUT);
316 createEReference(turnoutEClass, TURNOUT__STRAIGHT);
317 createEReference(turnoutEClass, TURNOUT__DIVERGENT);
318
319 trainEClass = createEClass(TRAIN);
320 createEReference(trainEClass, TRAIN__LOCATION);
321 createEAttribute(trainEClass, TRAIN__ID);
322 createEAttribute(trainEClass, TRAIN__SPEED);
323
324 simpleSegmentEClass = createEClass(SIMPLE_SEGMENT);
325 }
326
327 /**
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @generated
331 */
332 private boolean isInitialized = false;
333
334 /**
335 * Complete the initialization of the package and its meta-model. This
336 * method is guarded to have no affect on any invocation but its first.
337 * <!-- begin-user-doc -->
338 * <!-- end-user-doc -->
339 * @generated
340 */
341 public void initializePackageContents() {
342 if (isInitialized) return;
343 isInitialized = true;
344
345 // Initialize package
346 setName(eNAME);
347 setNsPrefix(eNS_PREFIX);
348 setNsURI(eNS_URI);
349
350 // Create type parameters
351
352 // Set bounds for type parameters
353
354 // Add supertypes to classes
355 turnoutEClass.getESuperTypes().add(this.getSegment());
356 simpleSegmentEClass.getESuperTypes().add(this.getSegment());
357
358 // Initialize classes, features, and operations; add parameters
359 initEClass(segmentEClass, Segment.class, "Segment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
360 initEReference(getSegment_ConnectedTo(), this.getSegment(), null, "connectedTo", null, 0, 2, Segment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
361 initEReference(getSegment_OccupiedBy(), this.getTrain(), this.getTrain_Location(), "occupiedBy", null, 0, 1, Segment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
362 initEAttribute(getSegment_Id(), ecorePackage.getEInt(), "id", null, 0, 1, Segment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
363
364 initEClass(modes3ModelRootEClass, Modes3ModelRoot.class, "Modes3ModelRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
365 initEAttribute(getModes3ModelRoot_Id(), ecorePackage.getEInt(), "id", null, 0, 1, Modes3ModelRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
366 initEReference(getModes3ModelRoot_Trains(), this.getTrain(), null, "trains", null, 0, -1, Modes3ModelRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
367 initEReference(getModes3ModelRoot_Segments(), this.getSimpleSegment(), null, "segments", null, 0, -1, Modes3ModelRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
368 initEReference(getModes3ModelRoot_Turnouts(), this.getTurnout(), null, "turnouts", null, 0, -1, Modes3ModelRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
369
370 initEClass(turnoutEClass, Turnout.class, "Turnout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
371 initEReference(getTurnout_Straight(), this.getSegment(), null, "straight", null, 1, 1, Turnout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
372 initEReference(getTurnout_Divergent(), this.getSegment(), null, "divergent", null, 1, 1, Turnout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
373
374 initEClass(trainEClass, Train.class, "Train", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
375 initEReference(getTrain_Location(), this.getSegment(), this.getSegment_OccupiedBy(), "location", null, 1, 1, Train.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
376 initEAttribute(getTrain_Id(), ecorePackage.getEInt(), "id", null, 0, 1, Train.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
377 initEAttribute(getTrain_Speed(), ecorePackage.getEDouble(), "speed", null, 0, 1, Train.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
378
379 initEClass(simpleSegmentEClass, SimpleSegment.class, "SimpleSegment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
380
381 // Create resource
382 createResource(eNS_URI);
383 }
384
385} //Modes3PackageImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SegmentImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SegmentImpl.java
new file mode 100644
index 00000000..905bcec1
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SegmentImpl.java
@@ -0,0 +1,319 @@
1/**
2 */
3package modes3.impl;
4
5import java.util.Collection;
6
7import modes3.Modes3Package;
8import modes3.Segment;
9import modes3.Train;
10
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.common.util.EList;
15
16import org.eclipse.emf.ecore.EClass;
17import org.eclipse.emf.ecore.InternalEObject;
18
19import org.eclipse.emf.ecore.impl.ENotificationImpl;
20import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
21
22import org.eclipse.emf.ecore.util.EObjectResolvingEList;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Segment</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link modes3.impl.SegmentImpl#getConnectedTo <em>Connected To</em>}</li>
33 * <li>{@link modes3.impl.SegmentImpl#getOccupiedBy <em>Occupied By</em>}</li>
34 * <li>{@link modes3.impl.SegmentImpl#getId <em>Id</em>}</li>
35 * </ul>
36 *
37 * @generated
38 */
39public class SegmentImpl extends MinimalEObjectImpl.Container implements Segment {
40 /**
41 * The cached value of the '{@link #getConnectedTo() <em>Connected To</em>}' reference list.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getConnectedTo()
45 * @generated
46 * @ordered
47 */
48 protected EList<Segment> connectedTo;
49
50 /**
51 * The cached value of the '{@link #getOccupiedBy() <em>Occupied By</em>}' reference.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getOccupiedBy()
55 * @generated
56 * @ordered
57 */
58 protected Train occupiedBy;
59
60 /**
61 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #getId()
65 * @generated
66 * @ordered
67 */
68 protected static final int ID_EDEFAULT = 0;
69
70 /**
71 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @see #getId()
75 * @generated
76 * @ordered
77 */
78 protected int id = ID_EDEFAULT;
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 protected SegmentImpl() {
86 super();
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 protected EClass eStaticClass() {
96 return Modes3Package.Literals.SEGMENT;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 public EList<Segment> getConnectedTo() {
105 if (connectedTo == null) {
106 connectedTo = new EObjectResolvingEList<Segment>(Segment.class, this, Modes3Package.SEGMENT__CONNECTED_TO);
107 }
108 return connectedTo;
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 public Train getOccupiedBy() {
117 if (occupiedBy != null && occupiedBy.eIsProxy()) {
118 InternalEObject oldOccupiedBy = (InternalEObject)occupiedBy;
119 occupiedBy = (Train)eResolveProxy(oldOccupiedBy);
120 if (occupiedBy != oldOccupiedBy) {
121 if (eNotificationRequired())
122 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Modes3Package.SEGMENT__OCCUPIED_BY, oldOccupiedBy, occupiedBy));
123 }
124 }
125 return occupiedBy;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 public Train basicGetOccupiedBy() {
134 return occupiedBy;
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 public NotificationChain basicSetOccupiedBy(Train newOccupiedBy, NotificationChain msgs) {
143 Train oldOccupiedBy = occupiedBy;
144 occupiedBy = newOccupiedBy;
145 if (eNotificationRequired()) {
146 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Modes3Package.SEGMENT__OCCUPIED_BY, oldOccupiedBy, newOccupiedBy);
147 if (msgs == null) msgs = notification; else msgs.add(notification);
148 }
149 return msgs;
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 public void setOccupiedBy(Train newOccupiedBy) {
158 if (newOccupiedBy != occupiedBy) {
159 NotificationChain msgs = null;
160 if (occupiedBy != null)
161 msgs = ((InternalEObject)occupiedBy).eInverseRemove(this, Modes3Package.TRAIN__LOCATION, Train.class, msgs);
162 if (newOccupiedBy != null)
163 msgs = ((InternalEObject)newOccupiedBy).eInverseAdd(this, Modes3Package.TRAIN__LOCATION, Train.class, msgs);
164 msgs = basicSetOccupiedBy(newOccupiedBy, msgs);
165 if (msgs != null) msgs.dispatch();
166 }
167 else if (eNotificationRequired())
168 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.SEGMENT__OCCUPIED_BY, newOccupiedBy, newOccupiedBy));
169 }
170
171 /**
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @generated
175 */
176 public int getId() {
177 return id;
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 public void setId(int newId) {
186 int oldId = id;
187 id = newId;
188 if (eNotificationRequired())
189 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.SEGMENT__ID, oldId, id));
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @Override
198 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
199 switch (featureID) {
200 case Modes3Package.SEGMENT__OCCUPIED_BY:
201 if (occupiedBy != null)
202 msgs = ((InternalEObject)occupiedBy).eInverseRemove(this, Modes3Package.TRAIN__LOCATION, Train.class, msgs);
203 return basicSetOccupiedBy((Train)otherEnd, msgs);
204 }
205 return super.eInverseAdd(otherEnd, featureID, msgs);
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 @Override
214 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
215 switch (featureID) {
216 case Modes3Package.SEGMENT__OCCUPIED_BY:
217 return basicSetOccupiedBy(null, msgs);
218 }
219 return super.eInverseRemove(otherEnd, featureID, msgs);
220 }
221
222 /**
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public Object eGet(int featureID, boolean resolve, boolean coreType) {
229 switch (featureID) {
230 case Modes3Package.SEGMENT__CONNECTED_TO:
231 return getConnectedTo();
232 case Modes3Package.SEGMENT__OCCUPIED_BY:
233 if (resolve) return getOccupiedBy();
234 return basicGetOccupiedBy();
235 case Modes3Package.SEGMENT__ID:
236 return getId();
237 }
238 return super.eGet(featureID, resolve, coreType);
239 }
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 @SuppressWarnings("unchecked")
247 @Override
248 public void eSet(int featureID, Object newValue) {
249 switch (featureID) {
250 case Modes3Package.SEGMENT__CONNECTED_TO:
251 getConnectedTo().clear();
252 getConnectedTo().addAll((Collection<? extends Segment>)newValue);
253 return;
254 case Modes3Package.SEGMENT__OCCUPIED_BY:
255 setOccupiedBy((Train)newValue);
256 return;
257 case Modes3Package.SEGMENT__ID:
258 setId((Integer)newValue);
259 return;
260 }
261 super.eSet(featureID, newValue);
262 }
263
264 /**
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 */
269 @Override
270 public void eUnset(int featureID) {
271 switch (featureID) {
272 case Modes3Package.SEGMENT__CONNECTED_TO:
273 getConnectedTo().clear();
274 return;
275 case Modes3Package.SEGMENT__OCCUPIED_BY:
276 setOccupiedBy((Train)null);
277 return;
278 case Modes3Package.SEGMENT__ID:
279 setId(ID_EDEFAULT);
280 return;
281 }
282 super.eUnset(featureID);
283 }
284
285 /**
286 * <!-- begin-user-doc -->
287 * <!-- end-user-doc -->
288 * @generated
289 */
290 @Override
291 public boolean eIsSet(int featureID) {
292 switch (featureID) {
293 case Modes3Package.SEGMENT__CONNECTED_TO:
294 return connectedTo != null && !connectedTo.isEmpty();
295 case Modes3Package.SEGMENT__OCCUPIED_BY:
296 return occupiedBy != null;
297 case Modes3Package.SEGMENT__ID:
298 return id != ID_EDEFAULT;
299 }
300 return super.eIsSet(featureID);
301 }
302
303 /**
304 * <!-- begin-user-doc -->
305 * <!-- end-user-doc -->
306 * @generated
307 */
308 @Override
309 public String toString() {
310 if (eIsProxy()) return super.toString();
311
312 StringBuilder result = new StringBuilder(super.toString());
313 result.append(" (id: ");
314 result.append(id);
315 result.append(')');
316 return result.toString();
317 }
318
319} //SegmentImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SimpleSegmentImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SimpleSegmentImpl.java
new file mode 100644
index 00000000..e3fd6c34
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/SimpleSegmentImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package modes3.impl;
4
5import modes3.Modes3Package;
6import modes3.SimpleSegment;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Simple Segment</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class SimpleSegmentImpl extends SegmentImpl implements SimpleSegment {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected SimpleSegmentImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return Modes3Package.Literals.SIMPLE_SEGMENT;
35 }
36
37} //SimpleSegmentImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TrainImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TrainImpl.java
new file mode 100644
index 00000000..f096dca8
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TrainImpl.java
@@ -0,0 +1,332 @@
1/**
2 */
3package modes3.impl;
4
5import modes3.Modes3Package;
6import modes3.Segment;
7import modes3.Train;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Train</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link modes3.impl.TrainImpl#getLocation <em>Location</em>}</li>
27 * <li>{@link modes3.impl.TrainImpl#getId <em>Id</em>}</li>
28 * <li>{@link modes3.impl.TrainImpl#getSpeed <em>Speed</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class TrainImpl extends MinimalEObjectImpl.Container implements Train {
34 /**
35 * The cached value of the '{@link #getLocation() <em>Location</em>}' reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @see #getLocation()
39 * @generated
40 * @ordered
41 */
42 protected Segment location;
43
44 /**
45 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getId()
49 * @generated
50 * @ordered
51 */
52 protected static final int ID_EDEFAULT = 0;
53
54 /**
55 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getId()
59 * @generated
60 * @ordered
61 */
62 protected int id = ID_EDEFAULT;
63
64 /**
65 * The default value of the '{@link #getSpeed() <em>Speed</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getSpeed()
69 * @generated
70 * @ordered
71 */
72 protected static final double SPEED_EDEFAULT = 0.0;
73
74 /**
75 * The cached value of the '{@link #getSpeed() <em>Speed</em>}' attribute.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #getSpeed()
79 * @generated
80 * @ordered
81 */
82 protected double speed = SPEED_EDEFAULT;
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 protected TrainImpl() {
90 super();
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 protected EClass eStaticClass() {
100 return Modes3Package.Literals.TRAIN;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 public Segment getLocation() {
109 if (location != null && location.eIsProxy()) {
110 InternalEObject oldLocation = (InternalEObject)location;
111 location = (Segment)eResolveProxy(oldLocation);
112 if (location != oldLocation) {
113 if (eNotificationRequired())
114 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Modes3Package.TRAIN__LOCATION, oldLocation, location));
115 }
116 }
117 return location;
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 public Segment basicGetLocation() {
126 return location;
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 public NotificationChain basicSetLocation(Segment newLocation, NotificationChain msgs) {
135 Segment oldLocation = location;
136 location = newLocation;
137 if (eNotificationRequired()) {
138 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Modes3Package.TRAIN__LOCATION, oldLocation, newLocation);
139 if (msgs == null) msgs = notification; else msgs.add(notification);
140 }
141 return msgs;
142 }
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 public void setLocation(Segment newLocation) {
150 if (newLocation != location) {
151 NotificationChain msgs = null;
152 if (location != null)
153 msgs = ((InternalEObject)location).eInverseRemove(this, Modes3Package.SEGMENT__OCCUPIED_BY, Segment.class, msgs);
154 if (newLocation != null)
155 msgs = ((InternalEObject)newLocation).eInverseAdd(this, Modes3Package.SEGMENT__OCCUPIED_BY, Segment.class, msgs);
156 msgs = basicSetLocation(newLocation, msgs);
157 if (msgs != null) msgs.dispatch();
158 }
159 else if (eNotificationRequired())
160 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.TRAIN__LOCATION, newLocation, newLocation));
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 public int getId() {
169 return id;
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 public void setId(int newId) {
178 int oldId = id;
179 id = newId;
180 if (eNotificationRequired())
181 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.TRAIN__ID, oldId, id));
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public double getSpeed() {
190 return speed;
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 public void setSpeed(double newSpeed) {
199 double oldSpeed = speed;
200 speed = newSpeed;
201 if (eNotificationRequired())
202 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.TRAIN__SPEED, oldSpeed, speed));
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 @Override
211 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
212 switch (featureID) {
213 case Modes3Package.TRAIN__LOCATION:
214 if (location != null)
215 msgs = ((InternalEObject)location).eInverseRemove(this, Modes3Package.SEGMENT__OCCUPIED_BY, Segment.class, msgs);
216 return basicSetLocation((Segment)otherEnd, msgs);
217 }
218 return super.eInverseAdd(otherEnd, featureID, msgs);
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
228 switch (featureID) {
229 case Modes3Package.TRAIN__LOCATION:
230 return basicSetLocation(null, msgs);
231 }
232 return super.eInverseRemove(otherEnd, featureID, msgs);
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @Override
241 public Object eGet(int featureID, boolean resolve, boolean coreType) {
242 switch (featureID) {
243 case Modes3Package.TRAIN__LOCATION:
244 if (resolve) return getLocation();
245 return basicGetLocation();
246 case Modes3Package.TRAIN__ID:
247 return getId();
248 case Modes3Package.TRAIN__SPEED:
249 return getSpeed();
250 }
251 return super.eGet(featureID, resolve, coreType);
252 }
253
254 /**
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 */
259 @Override
260 public void eSet(int featureID, Object newValue) {
261 switch (featureID) {
262 case Modes3Package.TRAIN__LOCATION:
263 setLocation((Segment)newValue);
264 return;
265 case Modes3Package.TRAIN__ID:
266 setId((Integer)newValue);
267 return;
268 case Modes3Package.TRAIN__SPEED:
269 setSpeed((Double)newValue);
270 return;
271 }
272 super.eSet(featureID, newValue);
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 @Override
281 public void eUnset(int featureID) {
282 switch (featureID) {
283 case Modes3Package.TRAIN__LOCATION:
284 setLocation((Segment)null);
285 return;
286 case Modes3Package.TRAIN__ID:
287 setId(ID_EDEFAULT);
288 return;
289 case Modes3Package.TRAIN__SPEED:
290 setSpeed(SPEED_EDEFAULT);
291 return;
292 }
293 super.eUnset(featureID);
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 @Override
302 public boolean eIsSet(int featureID) {
303 switch (featureID) {
304 case Modes3Package.TRAIN__LOCATION:
305 return location != null;
306 case Modes3Package.TRAIN__ID:
307 return id != ID_EDEFAULT;
308 case Modes3Package.TRAIN__SPEED:
309 return speed != SPEED_EDEFAULT;
310 }
311 return super.eIsSet(featureID);
312 }
313
314 /**
315 * <!-- begin-user-doc -->
316 * <!-- end-user-doc -->
317 * @generated
318 */
319 @Override
320 public String toString() {
321 if (eIsProxy()) return super.toString();
322
323 StringBuilder result = new StringBuilder(super.toString());
324 result.append(" (id: ");
325 result.append(id);
326 result.append(", speed: ");
327 result.append(speed);
328 result.append(')');
329 return result.toString();
330 }
331
332} //TrainImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TurnoutImpl.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TurnoutImpl.java
new file mode 100644
index 00000000..d20a104e
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/impl/TurnoutImpl.java
@@ -0,0 +1,216 @@
1/**
2 */
3package modes3.impl;
4
5import modes3.Modes3Package;
6import modes3.Segment;
7import modes3.Turnout;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>Turnout</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link modes3.impl.TurnoutImpl#getStraight <em>Straight</em>}</li>
25 * <li>{@link modes3.impl.TurnoutImpl#getDivergent <em>Divergent</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public class TurnoutImpl extends SegmentImpl implements Turnout {
31 /**
32 * The cached value of the '{@link #getStraight() <em>Straight</em>}' reference.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getStraight()
36 * @generated
37 * @ordered
38 */
39 protected Segment straight;
40
41 /**
42 * The cached value of the '{@link #getDivergent() <em>Divergent</em>}' reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getDivergent()
46 * @generated
47 * @ordered
48 */
49 protected Segment divergent;
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 protected TurnoutImpl() {
57 super();
58 }
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 @Override
66 protected EClass eStaticClass() {
67 return Modes3Package.Literals.TURNOUT;
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 public Segment getStraight() {
76 if (straight != null && straight.eIsProxy()) {
77 InternalEObject oldStraight = (InternalEObject)straight;
78 straight = (Segment)eResolveProxy(oldStraight);
79 if (straight != oldStraight) {
80 if (eNotificationRequired())
81 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Modes3Package.TURNOUT__STRAIGHT, oldStraight, straight));
82 }
83 }
84 return straight;
85 }
86
87 /**
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 */
92 public Segment basicGetStraight() {
93 return straight;
94 }
95
96 /**
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @generated
100 */
101 public void setStraight(Segment newStraight) {
102 Segment oldStraight = straight;
103 straight = newStraight;
104 if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.TURNOUT__STRAIGHT, oldStraight, straight));
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public Segment getDivergent() {
114 if (divergent != null && divergent.eIsProxy()) {
115 InternalEObject oldDivergent = (InternalEObject)divergent;
116 divergent = (Segment)eResolveProxy(oldDivergent);
117 if (divergent != oldDivergent) {
118 if (eNotificationRequired())
119 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Modes3Package.TURNOUT__DIVERGENT, oldDivergent, divergent));
120 }
121 }
122 return divergent;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 public Segment basicGetDivergent() {
131 return divergent;
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 public void setDivergent(Segment newDivergent) {
140 Segment oldDivergent = divergent;
141 divergent = newDivergent;
142 if (eNotificationRequired())
143 eNotify(new ENotificationImpl(this, Notification.SET, Modes3Package.TURNOUT__DIVERGENT, oldDivergent, divergent));
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public Object eGet(int featureID, boolean resolve, boolean coreType) {
153 switch (featureID) {
154 case Modes3Package.TURNOUT__STRAIGHT:
155 if (resolve) return getStraight();
156 return basicGetStraight();
157 case Modes3Package.TURNOUT__DIVERGENT:
158 if (resolve) return getDivergent();
159 return basicGetDivergent();
160 }
161 return super.eGet(featureID, resolve, coreType);
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public void eSet(int featureID, Object newValue) {
171 switch (featureID) {
172 case Modes3Package.TURNOUT__STRAIGHT:
173 setStraight((Segment)newValue);
174 return;
175 case Modes3Package.TURNOUT__DIVERGENT:
176 setDivergent((Segment)newValue);
177 return;
178 }
179 super.eSet(featureID, newValue);
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 @Override
188 public void eUnset(int featureID) {
189 switch (featureID) {
190 case Modes3Package.TURNOUT__STRAIGHT:
191 setStraight((Segment)null);
192 return;
193 case Modes3Package.TURNOUT__DIVERGENT:
194 setDivergent((Segment)null);
195 return;
196 }
197 super.eUnset(featureID);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public boolean eIsSet(int featureID) {
207 switch (featureID) {
208 case Modes3Package.TURNOUT__STRAIGHT:
209 return straight != null;
210 case Modes3Package.TURNOUT__DIVERGENT:
211 return divergent != null;
212 }
213 return super.eIsSet(featureID);
214 }
215
216} //TurnoutImpl
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3AdapterFactory.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3AdapterFactory.java
new file mode 100644
index 00000000..9c5c8d2d
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3AdapterFactory.java
@@ -0,0 +1,192 @@
1/**
2 */
3package modes3.util;
4
5import modes3.*;
6
7import org.eclipse.emf.common.notify.Adapter;
8import org.eclipse.emf.common.notify.Notifier;
9
10import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
11
12import org.eclipse.emf.ecore.EObject;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see modes3.Modes3Package
20 * @generated
21 */
22public class Modes3AdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static Modes3Package modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public Modes3AdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = Modes3Package.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 Modes3Switch<Adapter> modelSwitch =
69 new Modes3Switch<Adapter>() {
70 @Override
71 public Adapter caseSegment(Segment object) {
72 return createSegmentAdapter();
73 }
74 @Override
75 public Adapter caseModes3ModelRoot(Modes3ModelRoot object) {
76 return createModes3ModelRootAdapter();
77 }
78 @Override
79 public Adapter caseTurnout(Turnout object) {
80 return createTurnoutAdapter();
81 }
82 @Override
83 public Adapter caseTrain(Train object) {
84 return createTrainAdapter();
85 }
86 @Override
87 public Adapter caseSimpleSegment(SimpleSegment object) {
88 return createSimpleSegmentAdapter();
89 }
90 @Override
91 public Adapter defaultCase(EObject object) {
92 return createEObjectAdapter();
93 }
94 };
95
96 /**
97 * Creates an adapter for the <code>target</code>.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @param target the object to adapt.
101 * @return the adapter for the <code>target</code>.
102 * @generated
103 */
104 @Override
105 public Adapter createAdapter(Notifier target) {
106 return modelSwitch.doSwitch((EObject)target);
107 }
108
109
110 /**
111 * Creates a new adapter for an object of class '{@link modes3.Segment <em>Segment</em>}'.
112 * <!-- begin-user-doc -->
113 * This default implementation returns null so that we can easily ignore cases;
114 * it's useful to ignore a case when inheritance will catch all the cases anyway.
115 * <!-- end-user-doc -->
116 * @return the new adapter.
117 * @see modes3.Segment
118 * @generated
119 */
120 public Adapter createSegmentAdapter() {
121 return null;
122 }
123
124 /**
125 * Creates a new adapter for an object of class '{@link modes3.Modes3ModelRoot <em>Model Root</em>}'.
126 * <!-- begin-user-doc -->
127 * This default implementation returns null so that we can easily ignore cases;
128 * it's useful to ignore a case when inheritance will catch all the cases anyway.
129 * <!-- end-user-doc -->
130 * @return the new adapter.
131 * @see modes3.Modes3ModelRoot
132 * @generated
133 */
134 public Adapter createModes3ModelRootAdapter() {
135 return null;
136 }
137
138 /**
139 * Creates a new adapter for an object of class '{@link modes3.Turnout <em>Turnout</em>}'.
140 * <!-- begin-user-doc -->
141 * This default implementation returns null so that we can easily ignore cases;
142 * it's useful to ignore a case when inheritance will catch all the cases anyway.
143 * <!-- end-user-doc -->
144 * @return the new adapter.
145 * @see modes3.Turnout
146 * @generated
147 */
148 public Adapter createTurnoutAdapter() {
149 return null;
150 }
151
152 /**
153 * Creates a new adapter for an object of class '{@link modes3.Train <em>Train</em>}'.
154 * <!-- begin-user-doc -->
155 * This default implementation returns null so that we can easily ignore cases;
156 * it's useful to ignore a case when inheritance will catch all the cases anyway.
157 * <!-- end-user-doc -->
158 * @return the new adapter.
159 * @see modes3.Train
160 * @generated
161 */
162 public Adapter createTrainAdapter() {
163 return null;
164 }
165
166 /**
167 * Creates a new adapter for an object of class '{@link modes3.SimpleSegment <em>Simple Segment</em>}'.
168 * <!-- begin-user-doc -->
169 * This default implementation returns null so that we can easily ignore cases;
170 * it's useful to ignore a case when inheritance will catch all the cases anyway.
171 * <!-- end-user-doc -->
172 * @return the new adapter.
173 * @see modes3.SimpleSegment
174 * @generated
175 */
176 public Adapter createSimpleSegmentAdapter() {
177 return null;
178 }
179
180 /**
181 * Creates a new adapter for the default case.
182 * <!-- begin-user-doc -->
183 * This default implementation returns null.
184 * <!-- end-user-doc -->
185 * @return the new adapter.
186 * @generated
187 */
188 public Adapter createEObjectAdapter() {
189 return null;
190 }
191
192} //Modes3AdapterFactory
diff --git a/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3Switch.java b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3Switch.java
new file mode 100644
index 00000000..0c28861a
--- /dev/null
+++ b/Domains/ca.mcgill.rtgmrt.example.modes3/ecore-gen/modes3/util/Modes3Switch.java
@@ -0,0 +1,196 @@
1/**
2 */
3package modes3.util;
4
5import modes3.*;
6
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.util.Switch;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see modes3.Modes3Package
23 * @generated
24 */
25public class Modes3Switch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static Modes3Package modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public Modes3Switch() {
41 if (modelPackage == null) {
42 modelPackage = Modes3Package.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 Modes3Package.SEGMENT: {
70 Segment segment = (Segment)theEObject;
71 T result = caseSegment(segment);
72 if (result == null) result = defaultCase(theEObject);
73 return result;
74 }
75 case Modes3Package.MODES3_MODEL_ROOT: {
76 Modes3ModelRoot modes3ModelRoot = (Modes3ModelRoot)theEObject;
77 T result = caseModes3ModelRoot(modes3ModelRoot);
78 if (result == null) result = defaultCase(theEObject);
79 return result;
80 }
81 case Modes3Package.TURNOUT: {
82 Turnout turnout = (Turnout)theEObject;
83 T result = caseTurnout(turnout);
84 if (result == null) result = caseSegment(turnout);
85 if (result == null) result = defaultCase(theEObject);
86 return result;
87 }
88 case Modes3Package.TRAIN: {
89 Train train = (Train)theEObject;
90 T result = caseTrain(train);
91 if (result == null) result = defaultCase(theEObject);
92 return result;
93 }
94 case Modes3Package.SIMPLE_SEGMENT: {
95 SimpleSegment simpleSegment = (SimpleSegment)theEObject;
96 T result = caseSimpleSegment(simpleSegment);
97 if (result == null) result = caseSegment(simpleSegment);
98 if (result == null) result = defaultCase(theEObject);
99 return result;
100 }
101 default: return defaultCase(theEObject);
102 }
103 }
104
105 /**
106 * Returns the result of interpreting the object as an instance of '<em>Segment</em>'.
107 * <!-- begin-user-doc -->
108 * This implementation returns null;
109 * returning a non-null result will terminate the switch.
110 * <!-- end-user-doc -->
111 * @param object the target of the switch.
112 * @return the result of interpreting the object as an instance of '<em>Segment</em>'.
113 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
114 * @generated
115 */
116 public T caseSegment(Segment object) {
117 return null;
118 }
119
120 /**
121 * Returns the result of interpreting the object as an instance of '<em>Model Root</em>'.
122 * <!-- begin-user-doc -->
123 * This implementation returns null;
124 * returning a non-null result will terminate the switch.
125 * <!-- end-user-doc -->
126 * @param object the target of the switch.
127 * @return the result of interpreting the object as an instance of '<em>Model Root</em>'.
128 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
129 * @generated
130 */
131 public T caseModes3ModelRoot(Modes3ModelRoot object) {
132 return null;
133 }
134
135 /**
136 * Returns the result of interpreting the object as an instance of '<em>Turnout</em>'.
137 * <!-- begin-user-doc -->
138 * This implementation returns null;
139 * returning a non-null result will terminate the switch.
140 * <!-- end-user-doc -->
141 * @param object the target of the switch.
142 * @return the result of interpreting the object as an instance of '<em>Turnout</em>'.
143 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
144 * @generated
145 */
146 public T caseTurnout(Turnout object) {
147 return null;
148 }
149
150 /**
151 * Returns the result of interpreting the object as an instance of '<em>Train</em>'.
152 * <!-- begin-user-doc -->
153 * This implementation returns null;
154 * returning a non-null result will terminate the switch.
155 * <!-- end-user-doc -->
156 * @param object the target of the switch.
157 * @return the result of interpreting the object as an instance of '<em>Train</em>'.
158 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
159 * @generated
160 */
161 public T caseTrain(Train object) {
162 return null;
163 }
164
165 /**
166 * Returns the result of interpreting the object as an instance of '<em>Simple Segment</em>'.
167 * <!-- begin-user-doc -->
168 * This implementation returns null;
169 * returning a non-null result will terminate the switch.
170 * <!-- end-user-doc -->
171 * @param object the target of the switch.
172 * @return the result of interpreting the object as an instance of '<em>Simple Segment</em>'.
173 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
174 * @generated
175 */
176 public T caseSimpleSegment(SimpleSegment object) {
177 return null;
178 }
179
180 /**
181 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
182 * <!-- begin-user-doc -->
183 * This implementation returns null;
184 * returning a non-null result will terminate the switch, but this is the last case anyway.
185 * <!-- end-user-doc -->
186 * @param object the target of the switch.
187 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
188 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
189 * @generated
190 */
191 @Override
192 public T defaultCase(EObject object) {
193 return null;
194 }
195
196} //Modes3Switch