1 | /** |
2 | * <copyright> |
3 | * </copyright> |
4 | * |
5 | * $Id$ |
6 | */ |
7 | package QVTTemplate.impl; |
8 | |
9 | import EMOF.EMOFPackage; |
10 | |
11 | import EMOF.impl.EMOFPackageImpl; |
12 | |
13 | import EssentialOCL.EssentialOCLPackage; |
14 | |
15 | import EssentialOCL.impl.EssentialOCLPackageImpl; |
16 | |
17 | import QVTBase.QVTBasePackage; |
18 | |
19 | import QVTBase.impl.QVTBasePackageImpl; |
20 | |
21 | import QVTRelation.QVTRelationPackage; |
22 | |
23 | import QVTRelation.impl.QVTRelationPackageImpl; |
24 | |
25 | import QVTTemplate.CollectionTemplateExp; |
26 | import QVTTemplate.ObjectTemplateExp; |
27 | import QVTTemplate.PropertyTemplateItem; |
28 | import QVTTemplate.QVTTemplateFactory; |
29 | import QVTTemplate.QVTTemplatePackage; |
30 | import QVTTemplate.TemplateExp; |
31 | |
32 | import org.eclipse.emf.ecore.EAttribute; |
33 | import org.eclipse.emf.ecore.EClass; |
34 | import org.eclipse.emf.ecore.EPackage; |
35 | import org.eclipse.emf.ecore.EReference; |
36 | |
37 | import org.eclipse.emf.ecore.impl.EPackageImpl; |
38 | |
39 | /** |
40 | * <!-- begin-user-doc --> |
41 | * An implementation of the model <b>Package</b>. |
42 | * <!-- end-user-doc --> |
43 | * @generated |
44 | */ |
45 | public class QVTTemplatePackageImpl extends EPackageImpl implements QVTTemplatePackage { |
46 | /** |
47 | * <!-- begin-user-doc --> |
48 | * <!-- end-user-doc --> |
49 | * @generated |
50 | */ |
51 | private EClass collectionTemplateExpEClass = null; |
52 | |
53 | /** |
54 | * <!-- begin-user-doc --> |
55 | * <!-- end-user-doc --> |
56 | * @generated |
57 | */ |
58 | private EClass objectTemplateExpEClass = null; |
59 | |
60 | /** |
61 | * <!-- begin-user-doc --> |
62 | * <!-- end-user-doc --> |
63 | * @generated |
64 | */ |
65 | private EClass propertyTemplateItemEClass = null; |
66 | |
67 | /** |
68 | * <!-- begin-user-doc --> |
69 | * <!-- end-user-doc --> |
70 | * @generated |
71 | */ |
72 | private EClass templateExpEClass = null; |
73 | |
74 | /** |
75 | * Creates an instance of the model <b>Package</b>, registered with |
76 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package |
77 | * package URI value. |
78 | * <p>Note: the correct way to create the package is via the static |
79 | * factory method {@link #init init()}, which also performs |
80 | * initialization of the package, or returns the registered package, |
81 | * if one already exists. |
82 | * <!-- begin-user-doc --> |
83 | * <!-- end-user-doc --> |
84 | * @see org.eclipse.emf.ecore.EPackage.Registry |
85 | * @see QVTTemplate.QVTTemplatePackage#eNS_URI |
86 | * @see #init() |
87 | * @generated |
88 | */ |
89 | private QVTTemplatePackageImpl() { |
90 | super(eNS_URI, QVTTemplateFactory.eINSTANCE); |
91 | } |
92 | |
93 | /** |
94 | * <!-- begin-user-doc --> |
95 | * <!-- end-user-doc --> |
96 | * @generated |
97 | */ |
98 | private static boolean isInited = false; |
99 | |
100 | /** |
101 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. |
102 | * |
103 | * <p>This method is used to initialize {@link QVTTemplatePackage#eINSTANCE} when that field is accessed. |
104 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. |
105 | * <!-- begin-user-doc --> |
106 | * <!-- end-user-doc --> |
107 | * @see #eNS_URI |
108 | * @see #createPackageContents() |
109 | * @see #initializePackageContents() |
110 | * @generated |
111 | */ |
112 | public static QVTTemplatePackage init() { |
113 | if (isInited) return (QVTTemplatePackage)EPackage.Registry.INSTANCE.getEPackage(QVTTemplatePackage.eNS_URI); |
114 | |
115 | // Obtain or create and register package |
116 | QVTTemplatePackageImpl theQVTTemplatePackage = (QVTTemplatePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof QVTTemplatePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new QVTTemplatePackageImpl()); |
117 | |
118 | isInited = true; |
119 | |
120 | // Obtain or create and register interdependencies |
121 | EMOFPackageImpl theEMOFPackage = (EMOFPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(EMOFPackage.eNS_URI) instanceof EMOFPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(EMOFPackage.eNS_URI) : EMOFPackage.eINSTANCE); |
122 | EssentialOCLPackageImpl theEssentialOCLPackage = (EssentialOCLPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(EssentialOCLPackage.eNS_URI) instanceof EssentialOCLPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(EssentialOCLPackage.eNS_URI) : EssentialOCLPackage.eINSTANCE); |
123 | QVTBasePackageImpl theQVTBasePackage = (QVTBasePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(QVTBasePackage.eNS_URI) instanceof QVTBasePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(QVTBasePackage.eNS_URI) : QVTBasePackage.eINSTANCE); |
124 | QVTRelationPackageImpl theQVTRelationPackage = (QVTRelationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(QVTRelationPackage.eNS_URI) instanceof QVTRelationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(QVTRelationPackage.eNS_URI) : QVTRelationPackage.eINSTANCE); |
125 | |
126 | // Create package meta-data objects |
127 | theQVTTemplatePackage.createPackageContents(); |
128 | theEMOFPackage.createPackageContents(); |
129 | theEssentialOCLPackage.createPackageContents(); |
130 | theQVTBasePackage.createPackageContents(); |
131 | theQVTRelationPackage.createPackageContents(); |
132 | |
133 | // Initialize created meta-data |
134 | theQVTTemplatePackage.initializePackageContents(); |
135 | theEMOFPackage.initializePackageContents(); |
136 | theEssentialOCLPackage.initializePackageContents(); |
137 | theQVTBasePackage.initializePackageContents(); |
138 | theQVTRelationPackage.initializePackageContents(); |
139 | |
140 | // Mark meta-data to indicate it can't be changed |
141 | theQVTTemplatePackage.freeze(); |
142 | |
143 | |
144 | // Update the registry and return the package |
145 | EPackage.Registry.INSTANCE.put(QVTTemplatePackage.eNS_URI, theQVTTemplatePackage); |
146 | return theQVTTemplatePackage; |
147 | } |
148 | |
149 | /** |
150 | * <!-- begin-user-doc --> |
151 | * <!-- end-user-doc --> |
152 | * @generated |
153 | */ |
154 | public EClass getCollectionTemplateExp() { |
155 | return collectionTemplateExpEClass; |
156 | } |
157 | |
158 | /** |
159 | * <!-- begin-user-doc --> |
160 | * <!-- end-user-doc --> |
161 | * @generated |
162 | */ |
163 | public EReference getCollectionTemplateExp_Member() { |
164 | return (EReference)collectionTemplateExpEClass.getEStructuralFeatures().get(0); |
165 | } |
166 | |
167 | /** |
168 | * <!-- begin-user-doc --> |
169 | * <!-- end-user-doc --> |
170 | * @generated |
171 | */ |
172 | public EReference getCollectionTemplateExp_ReferredCollectionType() { |
173 | return (EReference)collectionTemplateExpEClass.getEStructuralFeatures().get(1); |
174 | } |
175 | |
176 | /** |
177 | * <!-- begin-user-doc --> |
178 | * <!-- end-user-doc --> |
179 | * @generated |
180 | */ |
181 | public EReference getCollectionTemplateExp_Rest() { |
182 | return (EReference)collectionTemplateExpEClass.getEStructuralFeatures().get(2); |
183 | } |
184 | |
185 | /** |
186 | * <!-- begin-user-doc --> |
187 | * <!-- end-user-doc --> |
188 | * @generated |
189 | */ |
190 | public EClass getObjectTemplateExp() { |
191 | return objectTemplateExpEClass; |
192 | } |
193 | |
194 | /** |
195 | * <!-- begin-user-doc --> |
196 | * <!-- end-user-doc --> |
197 | * @generated |
198 | */ |
199 | public EReference getObjectTemplateExp_Part() { |
200 | return (EReference)objectTemplateExpEClass.getEStructuralFeatures().get(0); |
201 | } |
202 | |
203 | /** |
204 | * <!-- begin-user-doc --> |
205 | * <!-- end-user-doc --> |
206 | * @generated |
207 | */ |
208 | public EReference getObjectTemplateExp_ReferredClass() { |
209 | return (EReference)objectTemplateExpEClass.getEStructuralFeatures().get(1); |
210 | } |
211 | |
212 | /** |
213 | * <!-- begin-user-doc --> |
214 | * <!-- end-user-doc --> |
215 | * @generated |
216 | */ |
217 | public EClass getPropertyTemplateItem() { |
218 | return propertyTemplateItemEClass; |
219 | } |
220 | |
221 | /** |
222 | * <!-- begin-user-doc --> |
223 | * <!-- end-user-doc --> |
224 | * @generated |
225 | */ |
226 | public EAttribute getPropertyTemplateItem_IsOpposite() { |
227 | return (EAttribute)propertyTemplateItemEClass.getEStructuralFeatures().get(0); |
228 | } |
229 | |
230 | /** |
231 | * <!-- begin-user-doc --> |
232 | * <!-- end-user-doc --> |
233 | * @generated |
234 | */ |
235 | public EReference getPropertyTemplateItem_ObjContainer() { |
236 | return (EReference)propertyTemplateItemEClass.getEStructuralFeatures().get(1); |
237 | } |
238 | |
239 | /** |
240 | * <!-- begin-user-doc --> |
241 | * <!-- end-user-doc --> |
242 | * @generated |
243 | */ |
244 | public EReference getPropertyTemplateItem_ReferredProperty() { |
245 | return (EReference)propertyTemplateItemEClass.getEStructuralFeatures().get(2); |
246 | } |
247 | |
248 | /** |
249 | * <!-- begin-user-doc --> |
250 | * <!-- end-user-doc --> |
251 | * @generated |
252 | */ |
253 | public EReference getPropertyTemplateItem_Value() { |
254 | return (EReference)propertyTemplateItemEClass.getEStructuralFeatures().get(3); |
255 | } |
256 | |
257 | /** |
258 | * <!-- begin-user-doc --> |
259 | * <!-- end-user-doc --> |
260 | * @generated |
261 | */ |
262 | public EClass getTemplateExp() { |
263 | return templateExpEClass; |
264 | } |
265 | |
266 | /** |
267 | * <!-- begin-user-doc --> |
268 | * <!-- end-user-doc --> |
269 | * @generated |
270 | */ |
271 | public EReference getTemplateExp_BindsTo() { |
272 | return (EReference)templateExpEClass.getEStructuralFeatures().get(0); |
273 | } |
274 | |
275 | /** |
276 | * <!-- begin-user-doc --> |
277 | * <!-- end-user-doc --> |
278 | * @generated |
279 | */ |
280 | public EReference getTemplateExp_Where() { |
281 | return (EReference)templateExpEClass.getEStructuralFeatures().get(1); |
282 | } |
283 | |
284 | /** |
285 | * <!-- begin-user-doc --> |
286 | * <!-- end-user-doc --> |
287 | * @generated |
288 | */ |
289 | public QVTTemplateFactory getQVTTemplateFactory() { |
290 | return (QVTTemplateFactory)getEFactoryInstance(); |
291 | } |
292 | |
293 | /** |
294 | * <!-- begin-user-doc --> |
295 | * <!-- end-user-doc --> |
296 | * @generated |
297 | */ |
298 | private boolean isCreated = false; |
299 | |
300 | /** |
301 | * Creates the meta-model objects for the package. This method is |
302 | * guarded to have no affect on any invocation but its first. |
303 | * <!-- begin-user-doc --> |
304 | * <!-- end-user-doc --> |
305 | * @generated |
306 | */ |
307 | public void createPackageContents() { |
308 | if (isCreated) return; |
309 | isCreated = true; |
310 | |
311 | // Create classes and their features |
312 | collectionTemplateExpEClass = createEClass(COLLECTION_TEMPLATE_EXP); |
313 | createEReference(collectionTemplateExpEClass, COLLECTION_TEMPLATE_EXP__MEMBER); |
314 | createEReference(collectionTemplateExpEClass, COLLECTION_TEMPLATE_EXP__REFERRED_COLLECTION_TYPE); |
315 | createEReference(collectionTemplateExpEClass, COLLECTION_TEMPLATE_EXP__REST); |
316 | |
317 | objectTemplateExpEClass = createEClass(OBJECT_TEMPLATE_EXP); |
318 | createEReference(objectTemplateExpEClass, OBJECT_TEMPLATE_EXP__PART); |
319 | createEReference(objectTemplateExpEClass, OBJECT_TEMPLATE_EXP__REFERRED_CLASS); |
320 | |
321 | propertyTemplateItemEClass = createEClass(PROPERTY_TEMPLATE_ITEM); |
322 | createEAttribute(propertyTemplateItemEClass, PROPERTY_TEMPLATE_ITEM__IS_OPPOSITE); |
323 | createEReference(propertyTemplateItemEClass, PROPERTY_TEMPLATE_ITEM__OBJ_CONTAINER); |
324 | createEReference(propertyTemplateItemEClass, PROPERTY_TEMPLATE_ITEM__REFERRED_PROPERTY); |
325 | createEReference(propertyTemplateItemEClass, PROPERTY_TEMPLATE_ITEM__VALUE); |
326 | |
327 | templateExpEClass = createEClass(TEMPLATE_EXP); |
328 | createEReference(templateExpEClass, TEMPLATE_EXP__BINDS_TO); |
329 | createEReference(templateExpEClass, TEMPLATE_EXP__WHERE); |
330 | } |
331 | |
332 | /** |
333 | * <!-- begin-user-doc --> |
334 | * <!-- end-user-doc --> |
335 | * @generated |
336 | */ |
337 | private boolean isInitialized = false; |
338 | |
339 | /** |
340 | * Complete the initialization of the package and its meta-model. This |
341 | * method is guarded to have no affect on any invocation but its first. |
342 | * <!-- begin-user-doc --> |
343 | * <!-- end-user-doc --> |
344 | * @generated |
345 | */ |
346 | public void initializePackageContents() { |
347 | if (isInitialized) return; |
348 | isInitialized = true; |
349 | |
350 | // Initialize package |
351 | setName(eNAME); |
352 | setNsPrefix(eNS_PREFIX); |
353 | setNsURI(eNS_URI); |
354 | |
355 | // Obtain other dependent packages |
356 | EssentialOCLPackage theEssentialOCLPackage = (EssentialOCLPackage)EPackage.Registry.INSTANCE.getEPackage(EssentialOCLPackage.eNS_URI); |
357 | EMOFPackage theEMOFPackage = (EMOFPackage)EPackage.Registry.INSTANCE.getEPackage(EMOFPackage.eNS_URI); |
358 | |
359 | // Create type parameters |
360 | |
361 | // Set bounds for type parameters |
362 | |
363 | // Add supertypes to classes |
364 | collectionTemplateExpEClass.getESuperTypes().add(this.getTemplateExp()); |
365 | objectTemplateExpEClass.getESuperTypes().add(this.getTemplateExp()); |
366 | propertyTemplateItemEClass.getESuperTypes().add(theEMOFPackage.getElement()); |
367 | templateExpEClass.getESuperTypes().add(theEssentialOCLPackage.getLiteralExp()); |
368 | |
369 | // Initialize classes and features; add operations and parameters |
370 | initEClass(collectionTemplateExpEClass, CollectionTemplateExp.class, "CollectionTemplateExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
371 | initEReference(getCollectionTemplateExp_Member(), theEssentialOCLPackage.getOclExpression(), null, "member", null, 0, -1, CollectionTemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
372 | initEReference(getCollectionTemplateExp_ReferredCollectionType(), theEssentialOCLPackage.getCollectionType(), null, "referredCollectionType", null, 1, 1, CollectionTemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
373 | initEReference(getCollectionTemplateExp_Rest(), theEssentialOCLPackage.getVariable(), null, "rest", null, 0, 1, CollectionTemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
374 | |
375 | initEClass(objectTemplateExpEClass, ObjectTemplateExp.class, "ObjectTemplateExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
376 | initEReference(getObjectTemplateExp_Part(), this.getPropertyTemplateItem(), this.getPropertyTemplateItem_ObjContainer(), "part", null, 0, -1, ObjectTemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
377 | initEReference(getObjectTemplateExp_ReferredClass(), theEMOFPackage.getClass_(), null, "referredClass", null, 1, 1, ObjectTemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
378 | |
379 | initEClass(propertyTemplateItemEClass, PropertyTemplateItem.class, "PropertyTemplateItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
380 | initEAttribute(getPropertyTemplateItem_IsOpposite(), theEMOFPackage.getBoolean(), "isOpposite", "false", 0, 1, PropertyTemplateItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
381 | initEReference(getPropertyTemplateItem_ObjContainer(), this.getObjectTemplateExp(), this.getObjectTemplateExp_Part(), "objContainer", null, 1, 1, PropertyTemplateItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
382 | initEReference(getPropertyTemplateItem_ReferredProperty(), theEMOFPackage.getProperty(), null, "referredProperty", null, 1, 1, PropertyTemplateItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
383 | initEReference(getPropertyTemplateItem_Value(), theEssentialOCLPackage.getOclExpression(), null, "value", null, 1, 1, PropertyTemplateItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
384 | |
385 | initEClass(templateExpEClass, TemplateExp.class, "TemplateExp", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
386 | initEReference(getTemplateExp_BindsTo(), theEssentialOCLPackage.getVariable(), null, "bindsTo", null, 0, 1, TemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
387 | initEReference(getTemplateExp_Where(), theEssentialOCLPackage.getOclExpression(), null, "where", null, 0, 1, TemplateExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); |
388 | |
389 | // Create resource |
390 | createResource(eNS_URI); |
391 | |
392 | // Create annotations |
393 | // http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName |
394 | createEmofAnnotations(); |
395 | } |
396 | |
397 | /** |
398 | * Initializes the annotations for <b>http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName</b>. |
399 | * <!-- begin-user-doc --> |
400 | * <!-- end-user-doc --> |
401 | * @generated |
402 | */ |
403 | protected void createEmofAnnotations() { |
404 | String source = "http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"; |
405 | addAnnotation |
406 | (getCollectionTemplateExp_Member(), |
407 | source, |
408 | new String[] { |
409 | "body", "listContainer" |
410 | }); |
411 | addAnnotation |
412 | (getCollectionTemplateExp_Rest(), |
413 | source, |
414 | new String[] { |
415 | "body", "matchingExp" |
416 | }); |
417 | addAnnotation |
418 | (getPropertyTemplateItem_ReferredProperty(), |
419 | source, |
420 | new String[] { |
421 | "body", "propertyItem" |
422 | }); |
423 | addAnnotation |
424 | (getPropertyTemplateItem_Value(), |
425 | source, |
426 | new String[] { |
427 | "body", "propertyItem" |
428 | }); |
429 | addAnnotation |
430 | (getTemplateExp_Where(), |
431 | source, |
432 | new String[] { |
433 | "body", "owner" |
434 | }); |
435 | } |
436 | |
437 | } //QVTTemplatePackageImpl |