1 | /** |
2 | * Copyright 2005-2009 by SDQ, IPD, University of Karlsruhe, Germany |
3 | * |
4 | * $Id$ |
5 | */ |
6 | package de.uka.ipd.sdq.pcm.system.impl; |
7 | |
8 | import org.eclipse.emf.ecore.EClass; |
9 | import org.eclipse.emf.ecore.EGenericType; |
10 | import org.eclipse.emf.ecore.EOperation; |
11 | import org.eclipse.emf.ecore.EPackage; |
12 | import org.eclipse.emf.ecore.EReference; |
13 | import org.eclipse.emf.ecore.EValidator; |
14 | import org.eclipse.emf.ecore.impl.EPackageImpl; |
15 | |
16 | import de.uka.ipd.sdq.identifier.IdentifierPackage; |
17 | import de.uka.ipd.sdq.pcm.PcmPackage; |
18 | import de.uka.ipd.sdq.pcm.allocation.AllocationPackage; |
19 | import de.uka.ipd.sdq.pcm.allocation.impl.AllocationPackageImpl; |
20 | import de.uka.ipd.sdq.pcm.core.CorePackage; |
21 | import de.uka.ipd.sdq.pcm.core.composition.CompositionPackage; |
22 | import de.uka.ipd.sdq.pcm.core.composition.impl.CompositionPackageImpl; |
23 | import de.uka.ipd.sdq.pcm.core.entity.EntityPackage; |
24 | import de.uka.ipd.sdq.pcm.core.entity.impl.EntityPackageImpl; |
25 | import de.uka.ipd.sdq.pcm.core.impl.CorePackageImpl; |
26 | import de.uka.ipd.sdq.pcm.impl.PcmPackageImpl; |
27 | import de.uka.ipd.sdq.pcm.parameter.ParameterPackage; |
28 | import de.uka.ipd.sdq.pcm.parameter.impl.ParameterPackageImpl; |
29 | import de.uka.ipd.sdq.pcm.protocol.ProtocolPackage; |
30 | import de.uka.ipd.sdq.pcm.protocol.impl.ProtocolPackageImpl; |
31 | import de.uka.ipd.sdq.pcm.qosannotations.QosannotationsPackage; |
32 | import de.uka.ipd.sdq.pcm.qosannotations.impl.QosannotationsPackageImpl; |
33 | import de.uka.ipd.sdq.pcm.qosannotations.qos_performance.Qos_performancePackage; |
34 | import de.uka.ipd.sdq.pcm.qosannotations.qos_performance.impl.Qos_performancePackageImpl; |
35 | import de.uka.ipd.sdq.pcm.qosannotations.qos_reliability.Qos_reliabilityPackage; |
36 | import de.uka.ipd.sdq.pcm.qosannotations.qos_reliability.impl.Qos_reliabilityPackageImpl; |
37 | import de.uka.ipd.sdq.pcm.reliability.ReliabilityPackage; |
38 | import de.uka.ipd.sdq.pcm.reliability.impl.ReliabilityPackageImpl; |
39 | import de.uka.ipd.sdq.pcm.repository.RepositoryPackage; |
40 | import de.uka.ipd.sdq.pcm.repository.impl.RepositoryPackageImpl; |
41 | import de.uka.ipd.sdq.pcm.resourceenvironment.ResourceenvironmentPackage; |
42 | import de.uka.ipd.sdq.pcm.resourceenvironment.impl.ResourceenvironmentPackageImpl; |
43 | import de.uka.ipd.sdq.pcm.resourcetype.ResourcetypePackage; |
44 | import de.uka.ipd.sdq.pcm.resourcetype.impl.ResourcetypePackageImpl; |
45 | import de.uka.ipd.sdq.pcm.seff.SeffPackage; |
46 | import de.uka.ipd.sdq.pcm.seff.impl.SeffPackageImpl; |
47 | import de.uka.ipd.sdq.pcm.seff.seff_performance.Seff_performancePackage; |
48 | import de.uka.ipd.sdq.pcm.seff.seff_performance.impl.Seff_performancePackageImpl; |
49 | import de.uka.ipd.sdq.pcm.seff.seff_reliability.Seff_reliabilityPackage; |
50 | import de.uka.ipd.sdq.pcm.seff.seff_reliability.impl.Seff_reliabilityPackageImpl; |
51 | import de.uka.ipd.sdq.pcm.subsystem.SubsystemPackage; |
52 | import de.uka.ipd.sdq.pcm.subsystem.impl.SubsystemPackageImpl; |
53 | import de.uka.ipd.sdq.pcm.system.SystemFactory; |
54 | import de.uka.ipd.sdq.pcm.system.SystemPackage; |
55 | import de.uka.ipd.sdq.pcm.system.util.SystemValidator; |
56 | import de.uka.ipd.sdq.pcm.usagemodel.UsagemodelPackage; |
57 | import de.uka.ipd.sdq.pcm.usagemodel.impl.UsagemodelPackageImpl; |
58 | import de.uka.ipd.sdq.stoex.StoexPackage; |
59 | |
60 | /** |
61 | * <!-- begin-user-doc --> |
62 | * An implementation of the model <b>Package</b>. |
63 | * <!-- end-user-doc --> |
64 | * @generated |
65 | */ |
66 | public class SystemPackageImpl extends EPackageImpl implements SystemPackage { |
67 | /** |
68 | * <!-- begin-user-doc --> |
69 | * <!-- end-user-doc --> |
70 | * @generated |
71 | */ |
72 | public static final String copyright = "Copyright 2005-2009 by SDQ, IPD, University of Karlsruhe, Germany"; |
73 | |
74 | /** |
75 | * <!-- begin-user-doc --> |
76 | * <!-- end-user-doc --> |
77 | * @generated |
78 | */ |
79 | private EClass systemEClass = null; |
80 | |
81 | /** |
82 | * Creates an instance of the model <b>Package</b>, registered with |
83 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package |
84 | * package URI value. |
85 | * <p>Note: the correct way to create the package is via the static |
86 | * factory method {@link #init init()}, which also performs |
87 | * initialization of the package, or returns the registered package, |
88 | * if one already exists. |
89 | * <!-- begin-user-doc --> |
90 | * <!-- end-user-doc --> |
91 | * @see org.eclipse.emf.ecore.EPackage.Registry |
92 | * @see de.uka.ipd.sdq.pcm.system.SystemPackage#eNS_URI |
93 | * @see #init() |
94 | * @generated |
95 | */ |
96 | private SystemPackageImpl() { |
97 | super(eNS_URI, SystemFactory.eINSTANCE); |
98 | } |
99 | |
100 | /** |
101 | * <!-- begin-user-doc --> |
102 | * <!-- end-user-doc --> |
103 | * @generated |
104 | */ |
105 | private static boolean isInited = false; |
106 | |
107 | /** |
108 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. |
109 | * |
110 | * <p>This method is used to initialize {@link SystemPackage#eINSTANCE} when that field is accessed. |
111 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. |
112 | * <!-- begin-user-doc --> |
113 | * <!-- end-user-doc --> |
114 | * @see #eNS_URI |
115 | * @see #createPackageContents() |
116 | * @see #initializePackageContents() |
117 | * @generated |
118 | */ |
119 | public static SystemPackage init() { |
120 | if (isInited) return (SystemPackage)EPackage.Registry.INSTANCE.getEPackage(SystemPackage.eNS_URI); |
121 | |
122 | // Obtain or create and register package |
123 | SystemPackageImpl theSystemPackage = (SystemPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SystemPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SystemPackageImpl()); |
124 | |
125 | isInited = true; |
126 | |
127 | // Initialize simple dependencies |
128 | IdentifierPackage.eINSTANCE.eClass(); |
129 | StoexPackage.eINSTANCE.eClass(); |
130 | |
131 | // Obtain or create and register interdependencies |
132 | PcmPackageImpl thePcmPackage = (PcmPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(PcmPackage.eNS_URI) instanceof PcmPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(PcmPackage.eNS_URI) : PcmPackage.eINSTANCE); |
133 | CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE); |
134 | EntityPackageImpl theEntityPackage = (EntityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(EntityPackage.eNS_URI) instanceof EntityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(EntityPackage.eNS_URI) : EntityPackage.eINSTANCE); |
135 | CompositionPackageImpl theCompositionPackage = (CompositionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CompositionPackage.eNS_URI) instanceof CompositionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CompositionPackage.eNS_URI) : CompositionPackage.eINSTANCE); |
136 | UsagemodelPackageImpl theUsagemodelPackage = (UsagemodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(UsagemodelPackage.eNS_URI) instanceof UsagemodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(UsagemodelPackage.eNS_URI) : UsagemodelPackage.eINSTANCE); |
137 | RepositoryPackageImpl theRepositoryPackage = (RepositoryPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(RepositoryPackage.eNS_URI) instanceof RepositoryPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(RepositoryPackage.eNS_URI) : RepositoryPackage.eINSTANCE); |
138 | ResourcetypePackageImpl theResourcetypePackage = (ResourcetypePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcetypePackage.eNS_URI) instanceof ResourcetypePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcetypePackage.eNS_URI) : ResourcetypePackage.eINSTANCE); |
139 | ProtocolPackageImpl theProtocolPackage = (ProtocolPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ProtocolPackage.eNS_URI) instanceof ProtocolPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ProtocolPackage.eNS_URI) : ProtocolPackage.eINSTANCE); |
140 | ParameterPackageImpl theParameterPackage = (ParameterPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ParameterPackage.eNS_URI) instanceof ParameterPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ParameterPackage.eNS_URI) : ParameterPackage.eINSTANCE); |
141 | ReliabilityPackageImpl theReliabilityPackage = (ReliabilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ReliabilityPackage.eNS_URI) instanceof ReliabilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ReliabilityPackage.eNS_URI) : ReliabilityPackage.eINSTANCE); |
142 | SeffPackageImpl theSeffPackage = (SeffPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SeffPackage.eNS_URI) instanceof SeffPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SeffPackage.eNS_URI) : SeffPackage.eINSTANCE); |
143 | Seff_performancePackageImpl theSeff_performancePackage = (Seff_performancePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(Seff_performancePackage.eNS_URI) instanceof Seff_performancePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(Seff_performancePackage.eNS_URI) : Seff_performancePackage.eINSTANCE); |
144 | Seff_reliabilityPackageImpl theSeff_reliabilityPackage = (Seff_reliabilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(Seff_reliabilityPackage.eNS_URI) instanceof Seff_reliabilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(Seff_reliabilityPackage.eNS_URI) : Seff_reliabilityPackage.eINSTANCE); |
145 | QosannotationsPackageImpl theQosannotationsPackage = (QosannotationsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(QosannotationsPackage.eNS_URI) instanceof QosannotationsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(QosannotationsPackage.eNS_URI) : QosannotationsPackage.eINSTANCE); |
146 | Qos_performancePackageImpl theQos_performancePackage = (Qos_performancePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(Qos_performancePackage.eNS_URI) instanceof Qos_performancePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(Qos_performancePackage.eNS_URI) : Qos_performancePackage.eINSTANCE); |
147 | Qos_reliabilityPackageImpl theQos_reliabilityPackage = (Qos_reliabilityPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(Qos_reliabilityPackage.eNS_URI) instanceof Qos_reliabilityPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(Qos_reliabilityPackage.eNS_URI) : Qos_reliabilityPackage.eINSTANCE); |
148 | ResourceenvironmentPackageImpl theResourceenvironmentPackage = (ResourceenvironmentPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourceenvironmentPackage.eNS_URI) instanceof ResourceenvironmentPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourceenvironmentPackage.eNS_URI) : ResourceenvironmentPackage.eINSTANCE); |
149 | AllocationPackageImpl theAllocationPackage = (AllocationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AllocationPackage.eNS_URI) instanceof AllocationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AllocationPackage.eNS_URI) : AllocationPackage.eINSTANCE); |
150 | SubsystemPackageImpl theSubsystemPackage = (SubsystemPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SubsystemPackage.eNS_URI) instanceof SubsystemPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SubsystemPackage.eNS_URI) : SubsystemPackage.eINSTANCE); |
151 | |
152 | // Create package meta-data objects |
153 | theSystemPackage.createPackageContents(); |
154 | thePcmPackage.createPackageContents(); |
155 | theCorePackage.createPackageContents(); |
156 | theEntityPackage.createPackageContents(); |
157 | theCompositionPackage.createPackageContents(); |
158 | theUsagemodelPackage.createPackageContents(); |
159 | theRepositoryPackage.createPackageContents(); |
160 | theResourcetypePackage.createPackageContents(); |
161 | theProtocolPackage.createPackageContents(); |
162 | theParameterPackage.createPackageContents(); |
163 | theReliabilityPackage.createPackageContents(); |
164 | theSeffPackage.createPackageContents(); |
165 | theSeff_performancePackage.createPackageContents(); |
166 | theSeff_reliabilityPackage.createPackageContents(); |
167 | theQosannotationsPackage.createPackageContents(); |
168 | theQos_performancePackage.createPackageContents(); |
169 | theQos_reliabilityPackage.createPackageContents(); |
170 | theResourceenvironmentPackage.createPackageContents(); |
171 | theAllocationPackage.createPackageContents(); |
172 | theSubsystemPackage.createPackageContents(); |
173 | |
174 | // Initialize created meta-data |
175 | theSystemPackage.initializePackageContents(); |
176 | thePcmPackage.initializePackageContents(); |
177 | theCorePackage.initializePackageContents(); |
178 | theEntityPackage.initializePackageContents(); |
179 | theCompositionPackage.initializePackageContents(); |
180 | theUsagemodelPackage.initializePackageContents(); |
181 | theRepositoryPackage.initializePackageContents(); |
182 | theResourcetypePackage.initializePackageContents(); |
183 | theProtocolPackage.initializePackageContents(); |
184 | theParameterPackage.initializePackageContents(); |
185 | theReliabilityPackage.initializePackageContents(); |
186 | theSeffPackage.initializePackageContents(); |
187 | theSeff_performancePackage.initializePackageContents(); |
188 | theSeff_reliabilityPackage.initializePackageContents(); |
189 | theQosannotationsPackage.initializePackageContents(); |
190 | theQos_performancePackage.initializePackageContents(); |
191 | theQos_reliabilityPackage.initializePackageContents(); |
192 | theResourceenvironmentPackage.initializePackageContents(); |
193 | theAllocationPackage.initializePackageContents(); |
194 | theSubsystemPackage.initializePackageContents(); |
195 | |
196 | // Register package validator |
197 | EValidator.Registry.INSTANCE.put |
198 | (theSystemPackage, |
199 | new EValidator.Descriptor() { |
200 | public EValidator getEValidator() { |
201 | return SystemValidator.INSTANCE; |
202 | } |
203 | }); |
204 | |
205 | // Mark meta-data to indicate it can't be changed |
206 | theSystemPackage.freeze(); |
207 | |
208 | |
209 | // Update the registry and return the package |
210 | EPackage.Registry.INSTANCE.put(SystemPackage.eNS_URI, theSystemPackage); |
211 | return theSystemPackage; |
212 | } |
213 | |
214 | /** |
215 | * <!-- begin-user-doc --> |
216 | * <!-- end-user-doc --> |
217 | * @generated |
218 | */ |
219 | public EClass getSystem() { |
220 | return systemEClass; |
221 | } |
222 | |
223 | /** |
224 | * <!-- begin-user-doc --> |
225 | * <!-- end-user-doc --> |
226 | * @generated |
227 | */ |
228 | public EReference getSystem_QosAnnotations_System() { |
229 | return (EReference)systemEClass.getEStructuralFeatures().get(0); |
230 | } |
231 | |
232 | /** |
233 | * <!-- begin-user-doc --> |
234 | * <!-- end-user-doc --> |
235 | * @generated |
236 | */ |
237 | public SystemFactory getSystemFactory() { |
238 | return (SystemFactory)getEFactoryInstance(); |
239 | } |
240 | |
241 | /** |
242 | * <!-- begin-user-doc --> |
243 | * <!-- end-user-doc --> |
244 | * @generated |
245 | */ |
246 | private boolean isCreated = false; |
247 | |
248 | /** |
249 | * Creates the meta-model objects for the package. This method is |
250 | * guarded to have no affect on any invocation but its first. |
251 | * <!-- begin-user-doc --> |
252 | * <!-- end-user-doc --> |
253 | * @generated |
254 | */ |
255 | public void createPackageContents() { |
256 | if (isCreated) return; |
257 | isCreated = true; |
258 | |
259 | // Create classes and their features |
260 | systemEClass = createEClass(SYSTEM); |
261 | createEReference(systemEClass, SYSTEM__QOS_ANNOTATIONS_SYSTEM); |
262 | } |
263 | |
264 | /** |
265 | * <!-- begin-user-doc --> |
266 | * <!-- end-user-doc --> |
267 | * @generated |
268 | */ |
269 | private boolean isInitialized = false; |
270 | |
271 | /** |
272 | * Complete the initialization of the package and its meta-model. This |
273 | * method is guarded to have no affect on any invocation but its first. |
274 | * <!-- begin-user-doc --> |
275 | * <!-- end-user-doc --> |
276 | * @generated |
277 | */ |
278 | public void initializePackageContents() { |
279 | if (isInitialized) return; |
280 | isInitialized = true; |
281 | |
282 | // Initialize package |
283 | setName(eNAME); |
284 | setNsPrefix(eNS_PREFIX); |
285 | setNsURI(eNS_URI); |
286 | |
287 | // Obtain other dependent packages |
288 | EntityPackage theEntityPackage = (EntityPackage)EPackage.Registry.INSTANCE.getEPackage(EntityPackage.eNS_URI); |
289 | QosannotationsPackage theQosannotationsPackage = (QosannotationsPackage)EPackage.Registry.INSTANCE.getEPackage(QosannotationsPackage.eNS_URI); |
290 | |
291 | // Create type parameters |
292 | |
293 | // Set bounds for type parameters |
294 | |
295 | // Add supertypes to classes |
296 | systemEClass.getESuperTypes().add(theEntityPackage.getEntity()); |
297 | systemEClass.getESuperTypes().add(theEntityPackage.getComposedProvidingRequiringEntity()); |
298 | |
299 | // Initialize classes and features; add operations and parameters |
300 | initEClass(systemEClass, de.uka.ipd.sdq.pcm.system.System.class, "System", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
301 | initEReference(getSystem_QosAnnotations_System(), theQosannotationsPackage.getQoSAnnotations(), theQosannotationsPackage.getQoSAnnotations_System_QoSAnnotations(), "qosAnnotations_System", null, 0, -1, de.uka.ipd.sdq.pcm.system.System.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
302 | |
303 | EOperation op = addEOperation(systemEClass, ecorePackage.getEBoolean(), "SystemMustHaveAtLeastOneProvidedRole", 0, 1, IS_UNIQUE, IS_ORDERED); |
304 | addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); |
305 | EGenericType g1 = createEGenericType(ecorePackage.getEMap()); |
306 | EGenericType g2 = createEGenericType(ecorePackage.getEJavaObject()); |
307 | g1.getETypeArguments().add(g2); |
308 | g2 = createEGenericType(ecorePackage.getEJavaObject()); |
309 | g1.getETypeArguments().add(g2); |
310 | addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); |
311 | } |
312 | |
313 | } //SystemPackageImpl |