aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList')
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Element.java77
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListFactory.java60
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListPackage.java312
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/List.java50
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Object.java19
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ElementImpl.java241
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListFactoryImpl.java120
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListPackageImpl.java239
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ListImpl.java176
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ObjectImpl.java36
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListAdapterFactory.java158
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListSwitch.java154
12 files changed, 1642 insertions, 0 deletions
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Element.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Element.java
new file mode 100644
index 00000000..463523f0
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Element.java
@@ -0,0 +1,77 @@
1/**
2 */
3package linkedList;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Element</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link linkedList.Element#getValue <em>Value</em>}</li>
17 * <li>{@link linkedList.Element#getNext <em>Next</em>}</li>
18 * </ul>
19 *
20 * @see linkedList.LinkedListPackage#getElement()
21 * @model
22 * @generated
23 */
24public interface Element extends EObject {
25 /**
26 * Returns the value of the '<em><b>Value</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <p>
29 * If the meaning of the '<em>Value</em>' containment reference isn't clear,
30 * there really should be more of a description here...
31 * </p>
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Value</em>' containment reference.
34 * @see #setValue(linkedList.Object)
35 * @see linkedList.LinkedListPackage#getElement_Value()
36 * @model containment="true" required="true"
37 * @generated
38 */
39 linkedList.Object getValue();
40
41 /**
42 * Sets the value of the '{@link linkedList.Element#getValue <em>Value</em>}' containment reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Value</em>' containment reference.
46 * @see #getValue()
47 * @generated
48 */
49 void setValue(linkedList.Object value);
50
51 /**
52 * Returns the value of the '<em><b>Next</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of the '<em>Next</em>' reference isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @return the value of the '<em>Next</em>' containment reference.
60 * @see #setNext(Element)
61 * @see linkedList.LinkedListPackage#getElement_Next()
62 * @model containment="true"
63 * @generated
64 */
65 Element getNext();
66
67 /**
68 * Sets the value of the '{@link linkedList.Element#getNext <em>Next</em>}' containment reference.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @param value the new value of the '<em>Next</em>' containment reference.
72 * @see #getNext()
73 * @generated
74 */
75 void setNext(Element value);
76
77} // Element
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListFactory.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListFactory.java
new file mode 100644
index 00000000..8ef9cd8d
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListFactory.java
@@ -0,0 +1,60 @@
1/**
2 */
3package linkedList;
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 linkedList.LinkedListPackage
13 * @generated
14 */
15public interface LinkedListFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 LinkedListFactory eINSTANCE = linkedList.impl.LinkedListFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>List</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>List</em>'.
29 * @generated
30 */
31 List createList();
32
33 /**
34 * Returns a new object of class '<em>Element</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Element</em>'.
38 * @generated
39 */
40 Element createElement();
41
42 /**
43 * Returns a new object of class '<em>Object</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Object</em>'.
47 * @generated
48 */
49 Object createObject();
50
51 /**
52 * Returns the package supported by this factory.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the package supported by this factory.
56 * @generated
57 */
58 LinkedListPackage getLinkedListPackage();
59
60} //LinkedListFactory
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListPackage.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListPackage.java
new file mode 100644
index 00000000..06a47d87
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/LinkedListPackage.java
@@ -0,0 +1,312 @@
1/**
2 */
3package linkedList;
4
5import org.eclipse.emf.ecore.EClass;
6import org.eclipse.emf.ecore.EPackage;
7import org.eclipse.emf.ecore.EReference;
8
9/**
10 * <!-- begin-user-doc -->
11 * The <b>Package</b> for the model.
12 * It contains accessors for the meta objects to represent
13 * <ul>
14 * <li>each class,</li>
15 * <li>each feature of each class,</li>
16 * <li>each operation of each class,</li>
17 * <li>each enum,</li>
18 * <li>and each data type</li>
19 * </ul>
20 * <!-- end-user-doc -->
21 * @see linkedList.LinkedListFactory
22 * @model kind="package"
23 * @generated
24 */
25public interface LinkedListPackage extends EPackage {
26 /**
27 * The package name.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 String eNAME = "linkedList";
33
34 /**
35 * The package namespace URI.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 String eNS_URI = "llmm";
41
42 /**
43 * The package namespace name.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 String eNS_PREFIX = "LLMM";
49
50 /**
51 * The singleton instance of the package.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 LinkedListPackage eINSTANCE = linkedList.impl.LinkedListPackageImpl.init();
57
58 /**
59 * The meta object id for the '{@link linkedList.impl.ListImpl <em>List</em>}' class.
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @see linkedList.impl.ListImpl
63 * @see linkedList.impl.LinkedListPackageImpl#getList()
64 * @generated
65 */
66 int LIST = 0;
67
68 /**
69 * The feature id for the '<em><b>First</b></em>' containment reference.
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 * @ordered
74 */
75 int LIST__FIRST = 0;
76
77 /**
78 * The number of structural features of the '<em>List</em>' class.
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 * @ordered
83 */
84 int LIST_FEATURE_COUNT = 1;
85
86 /**
87 * The number of operations of the '<em>List</em>' class.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 * @ordered
92 */
93 int LIST_OPERATION_COUNT = 0;
94
95 /**
96 * The meta object id for the '{@link linkedList.impl.ElementImpl <em>Element</em>}' class.
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @see linkedList.impl.ElementImpl
100 * @see linkedList.impl.LinkedListPackageImpl#getElement()
101 * @generated
102 */
103 int ELEMENT = 1;
104
105 /**
106 * The feature id for the '<em><b>Value</b></em>' containment reference.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 * @ordered
111 */
112 int ELEMENT__VALUE = 0;
113
114 /**
115 * The feature id for the '<em><b>Next</b></em>' containment reference.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 * @ordered
120 */
121 int ELEMENT__NEXT = 1;
122
123 /**
124 * The number of structural features of the '<em>Element</em>' class.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 * @ordered
129 */
130 int ELEMENT_FEATURE_COUNT = 2;
131
132 /**
133 * The number of operations of the '<em>Element</em>' class.
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 * @ordered
138 */
139 int ELEMENT_OPERATION_COUNT = 0;
140
141 /**
142 * The meta object id for the '{@link linkedList.impl.ObjectImpl <em>Object</em>}' class.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @see linkedList.impl.ObjectImpl
146 * @see linkedList.impl.LinkedListPackageImpl#getObject()
147 * @generated
148 */
149 int OBJECT = 2;
150
151 /**
152 * The number of structural features of the '<em>Object</em>' class.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 * @ordered
157 */
158 int OBJECT_FEATURE_COUNT = 0;
159
160 /**
161 * The number of operations of the '<em>Object</em>' class.
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 * @ordered
166 */
167 int OBJECT_OPERATION_COUNT = 0;
168
169
170 /**
171 * Returns the meta object for class '{@link linkedList.List <em>List</em>}'.
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @return the meta object for class '<em>List</em>'.
175 * @see linkedList.List
176 * @generated
177 */
178 EClass getList();
179
180 /**
181 * Returns the meta object for the containment reference '{@link linkedList.List#getFirst <em>First</em>}'.
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @return the meta object for the containment reference '<em>First</em>'.
185 * @see linkedList.List#getFirst()
186 * @see #getList()
187 * @generated
188 */
189 EReference getList_First();
190
191 /**
192 * Returns the meta object for class '{@link linkedList.Element <em>Element</em>}'.
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @return the meta object for class '<em>Element</em>'.
196 * @see linkedList.Element
197 * @generated
198 */
199 EClass getElement();
200
201 /**
202 * Returns the meta object for the containment reference '{@link linkedList.Element#getValue <em>Value</em>}'.
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @return the meta object for the containment reference '<em>Value</em>'.
206 * @see linkedList.Element#getValue()
207 * @see #getElement()
208 * @generated
209 */
210 EReference getElement_Value();
211
212 /**
213 * Returns the meta object for the containment reference '{@link linkedList.Element#getNext <em>Next</em>}'.
214 * <!-- begin-user-doc -->
215 * <!-- end-user-doc -->
216 * @return the meta object for the containment reference '<em>Next</em>'.
217 * @see linkedList.Element#getNext()
218 * @see #getElement()
219 * @generated
220 */
221 EReference getElement_Next();
222
223 /**
224 * Returns the meta object for class '{@link linkedList.Object <em>Object</em>}'.
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @return the meta object for class '<em>Object</em>'.
228 * @see linkedList.Object
229 * @generated
230 */
231 EClass getObject();
232
233 /**
234 * Returns the factory that creates the instances of the model.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @return the factory that creates the instances of the model.
238 * @generated
239 */
240 LinkedListFactory getLinkedListFactory();
241
242 /**
243 * <!-- begin-user-doc -->
244 * Defines literals for the meta objects that represent
245 * <ul>
246 * <li>each class,</li>
247 * <li>each feature of each class,</li>
248 * <li>each operation of each class,</li>
249 * <li>each enum,</li>
250 * <li>and each data type</li>
251 * </ul>
252 * <!-- end-user-doc -->
253 * @generated
254 */
255 interface Literals {
256 /**
257 * The meta object literal for the '{@link linkedList.impl.ListImpl <em>List</em>}' class.
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @see linkedList.impl.ListImpl
261 * @see linkedList.impl.LinkedListPackageImpl#getList()
262 * @generated
263 */
264 EClass LIST = eINSTANCE.getList();
265
266 /**
267 * The meta object literal for the '<em><b>First</b></em>' containment reference feature.
268 * <!-- begin-user-doc -->
269 * <!-- end-user-doc -->
270 * @generated
271 */
272 EReference LIST__FIRST = eINSTANCE.getList_First();
273
274 /**
275 * The meta object literal for the '{@link linkedList.impl.ElementImpl <em>Element</em>}' class.
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @see linkedList.impl.ElementImpl
279 * @see linkedList.impl.LinkedListPackageImpl#getElement()
280 * @generated
281 */
282 EClass ELEMENT = eINSTANCE.getElement();
283
284 /**
285 * The meta object literal for the '<em><b>Value</b></em>' containment reference feature.
286 * <!-- begin-user-doc -->
287 * <!-- end-user-doc -->
288 * @generated
289 */
290 EReference ELEMENT__VALUE = eINSTANCE.getElement_Value();
291
292 /**
293 * The meta object literal for the '<em><b>Next</b></em>' containment reference feature.
294 * <!-- begin-user-doc -->
295 * <!-- end-user-doc -->
296 * @generated
297 */
298 EReference ELEMENT__NEXT = eINSTANCE.getElement_Next();
299
300 /**
301 * The meta object literal for the '{@link linkedList.impl.ObjectImpl <em>Object</em>}' class.
302 * <!-- begin-user-doc -->
303 * <!-- end-user-doc -->
304 * @see linkedList.impl.ObjectImpl
305 * @see linkedList.impl.LinkedListPackageImpl#getObject()
306 * @generated
307 */
308 EClass OBJECT = eINSTANCE.getObject();
309
310 }
311
312} //LinkedListPackage
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/List.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/List.java
new file mode 100644
index 00000000..a72cc711
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/List.java
@@ -0,0 +1,50 @@
1/**
2 */
3package linkedList;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>List</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link linkedList.List#getFirst <em>First</em>}</li>
17 * </ul>
18 *
19 * @see linkedList.LinkedListPackage#getList()
20 * @model
21 * @generated
22 */
23public interface List extends EObject {
24 /**
25 * Returns the value of the '<em><b>First</b></em>' containment reference.
26 * <!-- begin-user-doc -->
27 * <p>
28 * If the meaning of the '<em>First</em>' reference isn't clear,
29 * there really should be more of a description here...
30 * </p>
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>First</em>' containment reference.
33 * @see #setFirst(Element)
34 * @see linkedList.LinkedListPackage#getList_First()
35 * @model containment="true"
36 * @generated
37 */
38 Element getFirst();
39
40 /**
41 * Sets the value of the '{@link linkedList.List#getFirst <em>First</em>}' containment reference.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>First</em>' containment reference.
45 * @see #getFirst()
46 * @generated
47 */
48 void setFirst(Element value);
49
50} // List
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Object.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Object.java
new file mode 100644
index 00000000..4c8d1081
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/Object.java
@@ -0,0 +1,19 @@
1/**
2 */
3package linkedList;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Object</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see linkedList.LinkedListPackage#getObject()
14 * @model
15 * @generated
16 */
17public interface Object extends EObject {
18
19} // Object
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ElementImpl.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ElementImpl.java
new file mode 100644
index 00000000..d08f707b
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ElementImpl.java
@@ -0,0 +1,241 @@
1/**
2 */
3package linkedList.impl;
4
5import linkedList.Element;
6import linkedList.LinkedListPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Element</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link linkedList.impl.ElementImpl#getValue <em>Value</em>}</li>
26 * <li>{@link linkedList.impl.ElementImpl#getNext <em>Next</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public class ElementImpl extends MinimalEObjectImpl.Container implements Element {
32 /**
33 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getValue()
37 * @generated
38 * @ordered
39 */
40 protected linkedList.Object value;
41
42 /**
43 * The cached value of the '{@link #getNext() <em>Next</em>}' containment reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getNext()
47 * @generated
48 * @ordered
49 */
50 protected Element next;
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 protected ElementImpl() {
58 super();
59 }
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 @Override
67 protected EClass eStaticClass() {
68 return LinkedListPackage.Literals.ELEMENT;
69 }
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 public linkedList.Object getValue() {
77 return value;
78 }
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 public NotificationChain basicSetValue(linkedList.Object newValue, NotificationChain msgs) {
86 linkedList.Object oldValue = value;
87 value = newValue;
88 if (eNotificationRequired()) {
89 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LinkedListPackage.ELEMENT__VALUE, oldValue, newValue);
90 if (msgs == null) msgs = notification; else msgs.add(notification);
91 }
92 return msgs;
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 public void setValue(linkedList.Object newValue) {
101 if (newValue != value) {
102 NotificationChain msgs = null;
103 if (value != null)
104 msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LinkedListPackage.ELEMENT__VALUE, null, msgs);
105 if (newValue != null)
106 msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LinkedListPackage.ELEMENT__VALUE, null, msgs);
107 msgs = basicSetValue(newValue, msgs);
108 if (msgs != null) msgs.dispatch();
109 }
110 else if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.SET, LinkedListPackage.ELEMENT__VALUE, newValue, newValue));
112 }
113
114 /**
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @generated
118 */
119 public Element getNext() {
120 return next;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public NotificationChain basicSetNext(Element newNext, NotificationChain msgs) {
129 Element oldNext = next;
130 next = newNext;
131 if (eNotificationRequired()) {
132 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LinkedListPackage.ELEMENT__NEXT, oldNext, newNext);
133 if (msgs == null) msgs = notification; else msgs.add(notification);
134 }
135 return msgs;
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 public void setNext(Element newNext) {
144 if (newNext != next) {
145 NotificationChain msgs = null;
146 if (next != null)
147 msgs = ((InternalEObject)next).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LinkedListPackage.ELEMENT__NEXT, null, msgs);
148 if (newNext != null)
149 msgs = ((InternalEObject)newNext).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LinkedListPackage.ELEMENT__NEXT, null, msgs);
150 msgs = basicSetNext(newNext, msgs);
151 if (msgs != null) msgs.dispatch();
152 }
153 else if (eNotificationRequired())
154 eNotify(new ENotificationImpl(this, Notification.SET, LinkedListPackage.ELEMENT__NEXT, newNext, newNext));
155 }
156
157 /**
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @generated
161 */
162 @Override
163 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
164 switch (featureID) {
165 case LinkedListPackage.ELEMENT__VALUE:
166 return basicSetValue(null, msgs);
167 case LinkedListPackage.ELEMENT__NEXT:
168 return basicSetNext(null, msgs);
169 }
170 return super.eInverseRemove(otherEnd, featureID, msgs);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public Object eGet(int featureID, boolean resolve, boolean coreType) {
180 switch (featureID) {
181 case LinkedListPackage.ELEMENT__VALUE:
182 return getValue();
183 case LinkedListPackage.ELEMENT__NEXT:
184 return getNext();
185 }
186 return super.eGet(featureID, resolve, coreType);
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 @Override
195 public void eSet(int featureID, Object newValue) {
196 switch (featureID) {
197 case LinkedListPackage.ELEMENT__VALUE:
198 setValue((linkedList.Object)newValue);
199 return;
200 case LinkedListPackage.ELEMENT__NEXT:
201 setNext((Element)newValue);
202 return;
203 }
204 super.eSet(featureID, newValue);
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 @Override
213 public void eUnset(int featureID) {
214 switch (featureID) {
215 case LinkedListPackage.ELEMENT__VALUE:
216 setValue((linkedList.Object)null);
217 return;
218 case LinkedListPackage.ELEMENT__NEXT:
219 setNext((Element)null);
220 return;
221 }
222 super.eUnset(featureID);
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public boolean eIsSet(int featureID) {
232 switch (featureID) {
233 case LinkedListPackage.ELEMENT__VALUE:
234 return value != null;
235 case LinkedListPackage.ELEMENT__NEXT:
236 return next != null;
237 }
238 return super.eIsSet(featureID);
239 }
240
241} //ElementImpl
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListFactoryImpl.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListFactoryImpl.java
new file mode 100644
index 00000000..1a66a5e4
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListFactoryImpl.java
@@ -0,0 +1,120 @@
1/**
2 */
3package linkedList.impl;
4
5import linkedList.Element;
6import linkedList.LinkedListFactory;
7import linkedList.LinkedListPackage;
8import linkedList.List;
9
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.emf.ecore.EPackage;
13
14import org.eclipse.emf.ecore.impl.EFactoryImpl;
15
16import org.eclipse.emf.ecore.plugin.EcorePlugin;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model <b>Factory</b>.
21 * <!-- end-user-doc -->
22 * @generated
23 */
24public class LinkedListFactoryImpl extends EFactoryImpl implements LinkedListFactory {
25 /**
26 * Creates the default factory implementation.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @generated
30 */
31 public static LinkedListFactory init() {
32 try {
33 LinkedListFactory theLinkedListFactory = (LinkedListFactory)EPackage.Registry.INSTANCE.getEFactory(LinkedListPackage.eNS_URI);
34 if (theLinkedListFactory != null) {
35 return theLinkedListFactory;
36 }
37 }
38 catch (Exception exception) {
39 EcorePlugin.INSTANCE.log(exception);
40 }
41 return new LinkedListFactoryImpl();
42 }
43
44 /**
45 * Creates an instance of the factory.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 public LinkedListFactoryImpl() {
51 super();
52 }
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 @Override
60 public EObject create(EClass eClass) {
61 switch (eClass.getClassifierID()) {
62 case LinkedListPackage.LIST: return createList();
63 case LinkedListPackage.ELEMENT: return createElement();
64 case LinkedListPackage.OBJECT: return createObject();
65 default:
66 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
67 }
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 public List createList() {
76 ListImpl list = new ListImpl();
77 return list;
78 }
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 public Element createElement() {
86 ElementImpl element = new ElementImpl();
87 return element;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public linkedList.Object createObject() {
96 ObjectImpl object = new ObjectImpl();
97 return object;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public LinkedListPackage getLinkedListPackage() {
106 return (LinkedListPackage)getEPackage();
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @deprecated
113 * @generated
114 */
115 @Deprecated
116 public static LinkedListPackage getPackage() {
117 return LinkedListPackage.eINSTANCE;
118 }
119
120} //LinkedListFactoryImpl
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListPackageImpl.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListPackageImpl.java
new file mode 100644
index 00000000..f190c4d0
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/LinkedListPackageImpl.java
@@ -0,0 +1,239 @@
1/**
2 */
3package linkedList.impl;
4
5import linkedList.Element;
6import linkedList.LinkedListFactory;
7import linkedList.LinkedListPackage;
8import linkedList.List;
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.EPackage;
11import org.eclipse.emf.ecore.EReference;
12
13import org.eclipse.emf.ecore.impl.EPackageImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model <b>Package</b>.
18 * <!-- end-user-doc -->
19 * @generated
20 */
21public class LinkedListPackageImpl extends EPackageImpl implements LinkedListPackage {
22 /**
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @generated
26 */
27 private EClass listEClass = null;
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 private EClass elementEClass = null;
35
36 /**
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 private EClass objectEClass = null;
42
43 /**
44 * Creates an instance of the model <b>Package</b>, registered with
45 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
46 * package URI value.
47 * <p>Note: the correct way to create the package is via the static
48 * factory method {@link #init init()}, which also performs
49 * initialization of the package, or returns the registered package,
50 * if one already exists.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see org.eclipse.emf.ecore.EPackage.Registry
54 * @see linkedList.LinkedListPackage#eNS_URI
55 * @see #init()
56 * @generated
57 */
58 private LinkedListPackageImpl() {
59 super(eNS_URI, LinkedListFactory.eINSTANCE);
60 }
61
62 /**
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @generated
66 */
67 private static boolean isInited = false;
68
69 /**
70 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
71 *
72 * <p>This method is used to initialize {@link LinkedListPackage#eINSTANCE} when that field is accessed.
73 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @see #eNS_URI
77 * @see #createPackageContents()
78 * @see #initializePackageContents()
79 * @generated
80 */
81 public static LinkedListPackage init() {
82 if (isInited) return (LinkedListPackage)EPackage.Registry.INSTANCE.getEPackage(LinkedListPackage.eNS_URI);
83
84 // Obtain or create and register package
85 Object registeredLinkedListPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
86 LinkedListPackageImpl theLinkedListPackage = registeredLinkedListPackage instanceof LinkedListPackageImpl ? (LinkedListPackageImpl)registeredLinkedListPackage : new LinkedListPackageImpl();
87
88 isInited = true;
89
90 // Create package meta-data objects
91 theLinkedListPackage.createPackageContents();
92
93 // Initialize created meta-data
94 theLinkedListPackage.initializePackageContents();
95
96 // Mark meta-data to indicate it can't be changed
97 theLinkedListPackage.freeze();
98
99 // Update the registry and return the package
100 EPackage.Registry.INSTANCE.put(LinkedListPackage.eNS_URI, theLinkedListPackage);
101 return theLinkedListPackage;
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 public EClass getList() {
110 return listEClass;
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 public EReference getList_First() {
119 return (EReference)listEClass.getEStructuralFeatures().get(0);
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public EClass getElement() {
128 return elementEClass;
129 }
130
131 /**
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @generated
135 */
136 public EReference getElement_Value() {
137 return (EReference)elementEClass.getEStructuralFeatures().get(0);
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 public EReference getElement_Next() {
146 return (EReference)elementEClass.getEStructuralFeatures().get(1);
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 public EClass getObject() {
155 return objectEClass;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 public LinkedListFactory getLinkedListFactory() {
164 return (LinkedListFactory)getEFactoryInstance();
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 private boolean isCreated = false;
173
174 /**
175 * Creates the meta-model objects for the package. This method is
176 * guarded to have no affect on any invocation but its first.
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 public void createPackageContents() {
182 if (isCreated) return;
183 isCreated = true;
184
185 // Create classes and their features
186 listEClass = createEClass(LIST);
187 createEReference(listEClass, LIST__FIRST);
188
189 elementEClass = createEClass(ELEMENT);
190 createEReference(elementEClass, ELEMENT__VALUE);
191 createEReference(elementEClass, ELEMENT__NEXT);
192
193 objectEClass = createEClass(OBJECT);
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 private boolean isInitialized = false;
202
203 /**
204 * Complete the initialization of the package and its meta-model. This
205 * method is guarded to have no affect on any invocation but its first.
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 public void initializePackageContents() {
211 if (isInitialized) return;
212 isInitialized = true;
213
214 // Initialize package
215 setName(eNAME);
216 setNsPrefix(eNS_PREFIX);
217 setNsURI(eNS_URI);
218
219 // Create type parameters
220
221 // Set bounds for type parameters
222
223 // Add supertypes to classes
224
225 // Initialize classes, features, and operations; add parameters
226 initEClass(listEClass, List.class, "List", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
227 initEReference(getList_First(), this.getElement(), null, "first", null, 0, 1, List.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
228
229 initEClass(elementEClass, Element.class, "Element", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
230 initEReference(getElement_Value(), this.getObject(), null, "value", null, 1, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
231 initEReference(getElement_Next(), this.getElement(), null, "next", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
232
233 initEClass(objectEClass, linkedList.Object.class, "Object", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
234
235 // Create resource
236 createResource(eNS_URI);
237 }
238
239} //LinkedListPackageImpl
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ListImpl.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ListImpl.java
new file mode 100644
index 00000000..30d006cd
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ListImpl.java
@@ -0,0 +1,176 @@
1/**
2 */
3package linkedList.impl;
4
5import linkedList.Element;
6import linkedList.LinkedListPackage;
7import linkedList.List;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>List</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link linkedList.impl.ListImpl#getFirst <em>First</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public class ListImpl extends MinimalEObjectImpl.Container implements List {
31 /**
32 * The cached value of the '{@link #getFirst() <em>First</em>}' containment reference.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getFirst()
36 * @generated
37 * @ordered
38 */
39 protected Element first;
40
41 /**
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @generated
45 */
46 protected ListImpl() {
47 super();
48 }
49
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 @Override
56 protected EClass eStaticClass() {
57 return LinkedListPackage.Literals.LIST;
58 }
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 public Element getFirst() {
66 return first;
67 }
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 public NotificationChain basicSetFirst(Element newFirst, NotificationChain msgs) {
75 Element oldFirst = first;
76 first = newFirst;
77 if (eNotificationRequired()) {
78 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LinkedListPackage.LIST__FIRST, oldFirst, newFirst);
79 if (msgs == null) msgs = notification; else msgs.add(notification);
80 }
81 return msgs;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 public void setFirst(Element newFirst) {
90 if (newFirst != first) {
91 NotificationChain msgs = null;
92 if (first != null)
93 msgs = ((InternalEObject)first).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LinkedListPackage.LIST__FIRST, null, msgs);
94 if (newFirst != null)
95 msgs = ((InternalEObject)newFirst).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LinkedListPackage.LIST__FIRST, null, msgs);
96 msgs = basicSetFirst(newFirst, msgs);
97 if (msgs != null) msgs.dispatch();
98 }
99 else if (eNotificationRequired())
100 eNotify(new ENotificationImpl(this, Notification.SET, LinkedListPackage.LIST__FIRST, newFirst, newFirst));
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
110 switch (featureID) {
111 case LinkedListPackage.LIST__FIRST:
112 return basicSetFirst(null, msgs);
113 }
114 return super.eInverseRemove(otherEnd, featureID, msgs);
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public Object eGet(int featureID, boolean resolve, boolean coreType) {
124 switch (featureID) {
125 case LinkedListPackage.LIST__FIRST:
126 return getFirst();
127 }
128 return super.eGet(featureID, resolve, coreType);
129 }
130
131 /**
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @generated
135 */
136 @SuppressWarnings("unchecked")
137 @Override
138 public void eSet(int featureID, Object newValue) {
139 switch (featureID) {
140 case LinkedListPackage.LIST__FIRST:
141 setFirst((Element)newValue);
142 return;
143 }
144 super.eSet(featureID, newValue);
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public void eUnset(int featureID) {
154 switch (featureID) {
155 case LinkedListPackage.LIST__FIRST:
156 setFirst((Element)null);
157 return;
158 }
159 super.eUnset(featureID);
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public boolean eIsSet(int featureID) {
169 switch (featureID) {
170 case LinkedListPackage.LIST__FIRST:
171 return first != null;
172 }
173 return super.eIsSet(featureID);
174 }
175
176} //ListImpl
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ObjectImpl.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ObjectImpl.java
new file mode 100644
index 00000000..c9b55c8d
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/impl/ObjectImpl.java
@@ -0,0 +1,36 @@
1/**
2 */
3package linkedList.impl;
4
5import linkedList.LinkedListPackage;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9/**
10 * <!-- begin-user-doc -->
11 * An implementation of the model object '<em><b>Object</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * @generated
15 */
16public class ObjectImpl extends MinimalEObjectImpl.Container implements linkedList.Object {
17 /**
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 protected ObjectImpl() {
23 super();
24 }
25
26 /**
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @generated
30 */
31 @Override
32 protected EClass eStaticClass() {
33 return LinkedListPackage.Literals.OBJECT;
34 }
35
36} //ObjectImpl
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListAdapterFactory.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListAdapterFactory.java
new file mode 100644
index 00000000..583192ba
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListAdapterFactory.java
@@ -0,0 +1,158 @@
1/**
2 */
3package linkedList.util;
4
5import linkedList.Element;
6import linkedList.LinkedListPackage;
7import linkedList.List;
8
9import org.eclipse.emf.common.notify.Adapter;
10import org.eclipse.emf.common.notify.Notifier;
11
12import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
13
14import org.eclipse.emf.ecore.EObject;
15
16/**
17 * <!-- begin-user-doc -->
18 * The <b>Adapter Factory</b> for the model.
19 * It provides an adapter <code>createXXX</code> method for each class of the model.
20 * <!-- end-user-doc -->
21 * @see linkedList.LinkedListPackage
22 * @generated
23 */
24public class LinkedListAdapterFactory extends AdapterFactoryImpl {
25 /**
26 * The cached model package.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @generated
30 */
31 protected static LinkedListPackage modelPackage;
32
33 /**
34 * Creates an instance of the adapter factory.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @generated
38 */
39 public LinkedListAdapterFactory() {
40 if (modelPackage == null) {
41 modelPackage = LinkedListPackage.eINSTANCE;
42 }
43 }
44
45 /**
46 * Returns whether this factory is applicable for the type of the object.
47 * <!-- begin-user-doc -->
48 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
49 * <!-- end-user-doc -->
50 * @return whether this factory is applicable for the type of the object.
51 * @generated
52 */
53 @Override
54 public boolean isFactoryForType(Object object) {
55 if (object == modelPackage) {
56 return true;
57 }
58 if (object instanceof EObject) {
59 return ((EObject)object).eClass().getEPackage() == modelPackage;
60 }
61 return false;
62 }
63
64 /**
65 * The switch that delegates to the <code>createXXX</code> methods.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 protected LinkedListSwitch<Adapter> modelSwitch =
71 new LinkedListSwitch<Adapter>() {
72 @Override
73 public Adapter caseList(List object) {
74 return createListAdapter();
75 }
76 @Override
77 public Adapter caseElement(Element object) {
78 return createElementAdapter();
79 }
80 @Override
81 public Adapter caseObject(linkedList.Object object) {
82 return createObjectAdapter();
83 }
84 @Override
85 public Adapter defaultCase(EObject object) {
86 return createEObjectAdapter();
87 }
88 };
89
90 /**
91 * Creates an adapter for the <code>target</code>.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @param target the object to adapt.
95 * @return the adapter for the <code>target</code>.
96 * @generated
97 */
98 @Override
99 public Adapter createAdapter(Notifier target) {
100 return modelSwitch.doSwitch((EObject)target);
101 }
102
103
104 /**
105 * Creates a new adapter for an object of class '{@link linkedList.List <em>List</em>}'.
106 * <!-- begin-user-doc -->
107 * This default implementation returns null so that we can easily ignore cases;
108 * it's useful to ignore a case when inheritance will catch all the cases anyway.
109 * <!-- end-user-doc -->
110 * @return the new adapter.
111 * @see linkedList.List
112 * @generated
113 */
114 public Adapter createListAdapter() {
115 return null;
116 }
117
118 /**
119 * Creates a new adapter for an object of class '{@link linkedList.Element <em>Element</em>}'.
120 * <!-- begin-user-doc -->
121 * This default implementation returns null so that we can easily ignore cases;
122 * it's useful to ignore a case when inheritance will catch all the cases anyway.
123 * <!-- end-user-doc -->
124 * @return the new adapter.
125 * @see linkedList.Element
126 * @generated
127 */
128 public Adapter createElementAdapter() {
129 return null;
130 }
131
132 /**
133 * Creates a new adapter for an object of class '{@link linkedList.Object <em>Object</em>}'.
134 * <!-- begin-user-doc -->
135 * This default implementation returns null so that we can easily ignore cases;
136 * it's useful to ignore a case when inheritance will catch all the cases anyway.
137 * <!-- end-user-doc -->
138 * @return the new adapter.
139 * @see linkedList.Object
140 * @generated
141 */
142 public Adapter createObjectAdapter() {
143 return null;
144 }
145
146 /**
147 * Creates a new adapter for the default case.
148 * <!-- begin-user-doc -->
149 * This default implementation returns null.
150 * <!-- end-user-doc -->
151 * @return the new adapter.
152 * @generated
153 */
154 public Adapter createEObjectAdapter() {
155 return null;
156 }
157
158} //LinkedListAdapterFactory
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListSwitch.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListSwitch.java
new file mode 100644
index 00000000..f5dcf560
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/src/linkedList/util/LinkedListSwitch.java
@@ -0,0 +1,154 @@
1/**
2 */
3package linkedList.util;
4
5import linkedList.Element;
6import linkedList.LinkedListPackage;
7import linkedList.List;
8
9import org.eclipse.emf.ecore.EObject;
10import org.eclipse.emf.ecore.EPackage;
11
12import org.eclipse.emf.ecore.util.Switch;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Switch</b> for the model's inheritance hierarchy.
17 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
18 * to invoke the <code>caseXXX</code> method for each class of the model,
19 * starting with the actual class of the object
20 * and proceeding up the inheritance hierarchy
21 * until a non-null result is returned,
22 * which is the result of the switch.
23 * <!-- end-user-doc -->
24 * @see linkedList.LinkedListPackage
25 * @generated
26 */
27public class LinkedListSwitch<T> extends Switch<T> {
28 /**
29 * The cached model package
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 protected static LinkedListPackage modelPackage;
35
36 /**
37 * Creates an instance of the switch.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 public LinkedListSwitch() {
43 if (modelPackage == null) {
44 modelPackage = LinkedListPackage.eINSTANCE;
45 }
46 }
47
48 /**
49 * Checks whether this is a switch for the given package.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @param ePackage the package in question.
53 * @return whether this is a switch for the given package.
54 * @generated
55 */
56 @Override
57 protected boolean isSwitchFor(EPackage ePackage) {
58 return ePackage == modelPackage;
59 }
60
61 /**
62 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @return the first non-null result returned by a <code>caseXXX</code> call.
66 * @generated
67 */
68 @Override
69 protected T doSwitch(int classifierID, EObject theEObject) {
70 switch (classifierID) {
71 case LinkedListPackage.LIST: {
72 List list = (List)theEObject;
73 T result = caseList(list);
74 if (result == null) result = defaultCase(theEObject);
75 return result;
76 }
77 case LinkedListPackage.ELEMENT: {
78 Element element = (Element)theEObject;
79 T result = caseElement(element);
80 if (result == null) result = defaultCase(theEObject);
81 return result;
82 }
83 case LinkedListPackage.OBJECT: {
84 linkedList.Object object = (linkedList.Object)theEObject;
85 T result = caseObject(object);
86 if (result == null) result = defaultCase(theEObject);
87 return result;
88 }
89 default: return defaultCase(theEObject);
90 }
91 }
92
93 /**
94 * Returns the result of interpreting the object as an instance of '<em>List</em>'.
95 * <!-- begin-user-doc -->
96 * This implementation returns null;
97 * returning a non-null result will terminate the switch.
98 * <!-- end-user-doc -->
99 * @param object the target of the switch.
100 * @return the result of interpreting the object as an instance of '<em>List</em>'.
101 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
102 * @generated
103 */
104 public T caseList(List object) {
105 return null;
106 }
107
108 /**
109 * Returns the result of interpreting the object as an instance of '<em>Element</em>'.
110 * <!-- begin-user-doc -->
111 * This implementation returns null;
112 * returning a non-null result will terminate the switch.
113 * <!-- end-user-doc -->
114 * @param object the target of the switch.
115 * @return the result of interpreting the object as an instance of '<em>Element</em>'.
116 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
117 * @generated
118 */
119 public T caseElement(Element object) {
120 return null;
121 }
122
123 /**
124 * Returns the result of interpreting the object as an instance of '<em>Object</em>'.
125 * <!-- begin-user-doc -->
126 * This implementation returns null;
127 * returning a non-null result will terminate the switch.
128 * <!-- end-user-doc -->
129 * @param object the target of the switch.
130 * @return the result of interpreting the object as an instance of '<em>Object</em>'.
131 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
132 * @generated
133 */
134 public T caseObject(linkedList.Object object) {
135 return null;
136 }
137
138 /**
139 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
140 * <!-- begin-user-doc -->
141 * This implementation returns null;
142 * returning a non-null result will terminate the switch, but this is the last case anyway.
143 * <!-- end-user-doc -->
144 * @param object the target of the switch.
145 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
146 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
147 * @generated
148 */
149 @Override
150 public T defaultCase(EObject object) {
151 return null;
152 }
153
154} //LinkedListSwitch