EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.pcm.core.impl]

COVERAGE SUMMARY FOR SOURCE FILE [PCMRandomVariableImpl.java]

nameclass, %method, %block, %line, %
PCMRandomVariableImpl.java0%   (0/1)0%   (0/63)0%   (0/2437)0%   (0/527)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class PCMRandomVariableImpl0%   (0/1)0%   (0/63)0%   (0/2437)0%   (0/527)
<static initializer> 0%   (0/1)0%   (0/3)0%   (0/2)
PCMRandomVariableImpl (): void 0%   (0/1)0%   (0/3)0%   (0/2)
SpecificationMustNotBeNULL (DiagnosticChain, Map): boolean 0%   (0/1)0%   (0/62)0%   (0/17)
basicGetExpression (): Expression 0%   (0/1)0%   (0/56)0%   (0/13)
basicSetAssemblyEventConnector__FilterCondition (AssemblyEventConnector, Noti... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetClosedWorkload_PCMRandomVariable (ClosedWorkload, NotificationChain):... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable (C... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetCommunicationLinkResourceSpecification_latency_PCMRandomVariable (Com... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetDelay_TimeSpecification (Delay, NotificationChain): NotificationChain 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetEventChannelSinkConnector__FilterCondition (EventChannelSinkConnector... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetGuardedBranchTransition_PCMRandomVariable (GuardedBranchTransition, N... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetInfrastructureCall__PCMRandomVariable (InfrastructureCall, Notificati... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetLoopAction_PCMRandomVariable (LoopAction, NotificationChain): Notific... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetLoop_LoopIteration (Loop, NotificationChain): NotificationChain 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetOpenWorkload_PCMRandomVariable (OpenWorkload, NotificationChain): Not... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetParametricResourceDemand_PCMRandomVariable (ParametricResourceDemand,... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetPassiveResource_capacity_PCMRandomVariable (PassiveResource, Notifica... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetProcessingResourceSpecification_processingRate_PCMRandomVariable (Pro... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetResourceCall__PCMRandomVariable (ResourceCall, NotificationChain): No... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetSpecifiedExecutionTime_PCMRandomVariable (SpecifiedExecutionTime, Not... 0%   (0/1)0%   (0/9)0%   (0/2)
basicSetVariableCharacterisation_Specification (VariableCharacterisation, Not... 0%   (0/1)0%   (0/9)0%   (0/2)
eBasicRemoveFromContainerFeature (NotificationChain): NotificationChain 0%   (0/1)0%   (0/143)0%   (0/19)
eGet (int, boolean, boolean): Object 0%   (0/1)0%   (0/59)0%   (0/19)
eInverseAdd (InternalEObject, int, NotificationChain): NotificationChain 0%   (0/1)0%   (0/229)0%   (0/53)
eInverseRemove (InternalEObject, int, NotificationChain): NotificationChain 0%   (0/1)0%   (0/93)0%   (0/19)
eIsSet (int): boolean 0%   (0/1)0%   (0/125)0%   (0/19)
eSet (int, Object): void 0%   (0/1)0%   (0/92)0%   (0/37)
eStaticClass (): EClass 0%   (0/1)0%   (0/2)0%   (0/1)
eUnset (int): void 0%   (0/1)0%   (0/74)0%   (0/37)
getAssemblyEventConnector__FilterCondition (): AssemblyEventConnector 0%   (0/1)0%   (0/10)0%   (0/2)
getClosedWorkload_PCMRandomVariable (): ClosedWorkload 0%   (0/1)0%   (0/10)0%   (0/2)
getCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable (): Com... 0%   (0/1)0%   (0/10)0%   (0/2)
getCommunicationLinkResourceSpecification_latency_PCMRandomVariable (): Commu... 0%   (0/1)0%   (0/10)0%   (0/2)
getDelay_TimeSpecification (): Delay 0%   (0/1)0%   (0/10)0%   (0/2)
getEventChannelSinkConnector__FilterCondition (): EventChannelSinkConnector 0%   (0/1)0%   (0/10)0%   (0/2)
getGuardedBranchTransition_PCMRandomVariable (): GuardedBranchTransition 0%   (0/1)0%   (0/10)0%   (0/2)
getInfrastructureCall__PCMRandomVariable (): InfrastructureCall 0%   (0/1)0%   (0/10)0%   (0/2)
getLoopAction_PCMRandomVariable (): LoopAction 0%   (0/1)0%   (0/10)0%   (0/2)
getLoop_LoopIteration (): Loop 0%   (0/1)0%   (0/10)0%   (0/2)
getOpenWorkload_PCMRandomVariable (): OpenWorkload 0%   (0/1)0%   (0/10)0%   (0/2)
getParametricResourceDemand_PCMRandomVariable (): ParametricResourceDemand 0%   (0/1)0%   (0/10)0%   (0/2)
getPassiveResource_capacity_PCMRandomVariable (): PassiveResource 0%   (0/1)0%   (0/10)0%   (0/2)
getProcessingResourceSpecification_processingRate_PCMRandomVariable (): Proce... 0%   (0/1)0%   (0/10)0%   (0/2)
getResourceCall__PCMRandomVariable (): ResourceCall 0%   (0/1)0%   (0/10)0%   (0/2)
getSpecifiedExecutionTime_PCMRandomVariable (): SpecifiedExecutionTime 0%   (0/1)0%   (0/10)0%   (0/2)
getVariableCharacterisation_Specification (): VariableCharacterisation 0%   (0/1)0%   (0/10)0%   (0/2)
setAssemblyEventConnector__FilterCondition (AssemblyEventConnector): void 0%   (0/1)0%   (0/69)0%   (0/13)
setClosedWorkload_PCMRandomVariable (ClosedWorkload): void 0%   (0/1)0%   (0/69)0%   (0/13)
setCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable (Commun... 0%   (0/1)0%   (0/69)0%   (0/13)
setCommunicationLinkResourceSpecification_latency_PCMRandomVariable (Communic... 0%   (0/1)0%   (0/69)0%   (0/13)
setDelay_TimeSpecification (Delay): void 0%   (0/1)0%   (0/69)0%   (0/13)
setEventChannelSinkConnector__FilterCondition (EventChannelSinkConnector): void 0%   (0/1)0%   (0/69)0%   (0/13)
setGuardedBranchTransition_PCMRandomVariable (GuardedBranchTransition): void 0%   (0/1)0%   (0/69)0%   (0/13)
setInfrastructureCall__PCMRandomVariable (InfrastructureCall): void 0%   (0/1)0%   (0/69)0%   (0/13)
setLoopAction_PCMRandomVariable (LoopAction): void 0%   (0/1)0%   (0/69)0%   (0/13)
setLoop_LoopIteration (Loop): void 0%   (0/1)0%   (0/69)0%   (0/13)
setOpenWorkload_PCMRandomVariable (OpenWorkload): void 0%   (0/1)0%   (0/69)0%   (0/13)
setParametricResourceDemand_PCMRandomVariable (ParametricResourceDemand): void 0%   (0/1)0%   (0/69)0%   (0/13)
setPassiveResource_capacity_PCMRandomVariable (PassiveResource): void 0%   (0/1)0%   (0/69)0%   (0/13)
setProcessingResourceSpecification_processingRate_PCMRandomVariable (Processi... 0%   (0/1)0%   (0/69)0%   (0/13)
setResourceCall__PCMRandomVariable (ResourceCall): void 0%   (0/1)0%   (0/69)0%   (0/13)
setSpecifiedExecutionTime_PCMRandomVariable (SpecifiedExecutionTime): void 0%   (0/1)0%   (0/69)0%   (0/13)
setVariableCharacterisation_Specification (VariableCharacterisation): void 0%   (0/1)0%   (0/69)0%   (0/13)

1/**
2 * Copyright 2005-2009 by SDQ, IPD, University of Karlsruhe, Germany
3 *
4 * $Id$
5 */
6package de.uka.ipd.sdq.pcm.core.impl;
7 
8import java.util.Map;
9 
10import org.antlr.runtime.ANTLRStringStream;
11import org.antlr.runtime.CommonTokenStream;
12import org.antlr.runtime.RecognitionException;
13import org.eclipse.emf.common.notify.Notification;
14import org.eclipse.emf.common.notify.NotificationChain;
15import org.eclipse.emf.common.util.BasicDiagnostic;
16import org.eclipse.emf.common.util.Diagnostic;
17import org.eclipse.emf.common.util.DiagnosticChain;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.emf.ecore.InternalEObject;
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.plugin.EcorePlugin;
22import org.eclipse.emf.ecore.util.EObjectValidator;
23import org.eclipse.emf.ecore.util.EcoreUtil;
24import org.eclipse.ocl.ParserException;
25import org.eclipse.ocl.ecore.Constraint;
26import org.eclipse.ocl.ecore.OCL;
27 
28import de.uka.ipd.sdq.pcm.core.CorePackage;
29import de.uka.ipd.sdq.pcm.core.PCMRandomVariable;
30import de.uka.ipd.sdq.pcm.core.composition.AssemblyEventConnector;
31import de.uka.ipd.sdq.pcm.core.composition.CompositionPackage;
32import de.uka.ipd.sdq.pcm.core.composition.EventChannelSinkConnector;
33import de.uka.ipd.sdq.pcm.core.util.CoreValidator;
34import de.uka.ipd.sdq.pcm.parameter.ParameterPackage;
35import de.uka.ipd.sdq.pcm.parameter.VariableCharacterisation;
36import de.uka.ipd.sdq.pcm.qosannotations.qos_performance.Qos_performancePackage;
37import de.uka.ipd.sdq.pcm.qosannotations.qos_performance.SpecifiedExecutionTime;
38import de.uka.ipd.sdq.pcm.repository.PassiveResource;
39import de.uka.ipd.sdq.pcm.repository.RepositoryPackage;
40import de.uka.ipd.sdq.pcm.resourceenvironment.CommunicationLinkResourceSpecification;
41import de.uka.ipd.sdq.pcm.resourceenvironment.ProcessingResourceSpecification;
42import de.uka.ipd.sdq.pcm.resourceenvironment.ResourceenvironmentPackage;
43import de.uka.ipd.sdq.pcm.seff.GuardedBranchTransition;
44import de.uka.ipd.sdq.pcm.seff.LoopAction;
45import de.uka.ipd.sdq.pcm.seff.SeffPackage;
46import de.uka.ipd.sdq.pcm.seff.seff_performance.InfrastructureCall;
47import de.uka.ipd.sdq.pcm.seff.seff_performance.ParametricResourceDemand;
48import de.uka.ipd.sdq.pcm.seff.seff_performance.ResourceCall;
49import de.uka.ipd.sdq.pcm.seff.seff_performance.Seff_performancePackage;
50import de.uka.ipd.sdq.pcm.stochasticexpressions.parser.MyPCMStoExLexer;
51import de.uka.ipd.sdq.pcm.stochasticexpressions.parser.MyPCMStoExParser;
52import de.uka.ipd.sdq.pcm.usagemodel.ClosedWorkload;
53import de.uka.ipd.sdq.pcm.usagemodel.Delay;
54import de.uka.ipd.sdq.pcm.usagemodel.Loop;
55import de.uka.ipd.sdq.pcm.usagemodel.OpenWorkload;
56import de.uka.ipd.sdq.pcm.usagemodel.UsagemodelPackage;
57import de.uka.ipd.sdq.stoex.Expression;
58import de.uka.ipd.sdq.stoex.impl.RandomVariableImpl;
59 
60/**
61 * <!-- begin-user-doc -->
62 * An implementation of the model object '<em><b>PCM Random Variable</b></em>'.
63 * <!-- end-user-doc -->
64 * <p>
65 * The following features are implemented:
66 * <ul>
67 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getClosedWorkload_PCMRandomVariable <em>Closed Workload PCM Random Variable</em>}</li>
68 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getPassiveResource_capacity_PCMRandomVariable <em>Passive Resource capacity PCM Random Variable</em>}</li>
69 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getVariableCharacterisation_Specification <em>Variable Characterisation Specification</em>}</li>
70 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getInfrastructureCall__PCMRandomVariable <em>Infrastructure Call PCM Random Variable</em>}</li>
71 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getResourceCall__PCMRandomVariable <em>Resource Call PCM Random Variable</em>}</li>
72 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getParametricResourceDemand_PCMRandomVariable <em>Parametric Resource Demand PCM Random Variable</em>}</li>
73 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getLoopAction_PCMRandomVariable <em>Loop Action PCM Random Variable</em>}</li>
74 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getGuardedBranchTransition_PCMRandomVariable <em>Guarded Branch Transition PCM Random Variable</em>}</li>
75 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getSpecifiedExecutionTime_PCMRandomVariable <em>Specified Execution Time PCM Random Variable</em>}</li>
76 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getEventChannelSinkConnector__FilterCondition <em>Event Channel Sink Connector Filter Condition</em>}</li>
77 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getAssemblyEventConnector__FilterCondition <em>Assembly Event Connector Filter Condition</em>}</li>
78 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getLoop_LoopIteration <em>Loop Loop Iteration</em>}</li>
79 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getOpenWorkload_PCMRandomVariable <em>Open Workload PCM Random Variable</em>}</li>
80 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getDelay_TimeSpecification <em>Delay Time Specification</em>}</li>
81 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable <em>Communication Link Resource Specifcation throughput PCM Random Variable</em>}</li>
82 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getProcessingResourceSpecification_processingRate_PCMRandomVariable <em>Processing Resource Specification processing Rate PCM Random Variable</em>}</li>
83 *   <li>{@link de.uka.ipd.sdq.pcm.core.impl.PCMRandomVariableImpl#getCommunicationLinkResourceSpecification_latency_PCMRandomVariable <em>Communication Link Resource Specification latency PCM Random Variable</em>}</li>
84 * </ul>
85 * </p>
86 *
87 * @generated
88 */
89public class PCMRandomVariableImpl extends RandomVariableImpl implements PCMRandomVariable {
90        /**
91         * <!-- begin-user-doc -->
92         * <!-- end-user-doc -->
93         * @generated
94         */
95        public static final String copyright = "Copyright 2005-2009 by SDQ, IPD, University of Karlsruhe, Germany";
96 
97        /**
98         * <!-- begin-user-doc -->
99         * <!-- end-user-doc -->
100         * @generated
101         */
102        protected PCMRandomVariableImpl() {
103                super();
104        }
105 
106        /**
107         * <!-- begin-user-doc -->
108         * <!-- end-user-doc -->
109         * @generated
110         */
111        @Override
112        protected EClass eStaticClass() {
113                return CorePackage.Literals.PCM_RANDOM_VARIABLE;
114        }
115 
116        /**
117         * <!-- begin-user-doc -->
118         * <!-- end-user-doc -->
119         * @generated
120         */
121        public VariableCharacterisation getVariableCharacterisation_Specification() {
122                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION) return null;
123                return (VariableCharacterisation)eContainer();
124        }
125 
126        /**
127         * <!-- begin-user-doc -->
128         * <!-- end-user-doc -->
129         * @generated
130         */
131        public NotificationChain basicSetVariableCharacterisation_Specification(VariableCharacterisation newVariableCharacterisation_Specification, NotificationChain msgs) {
132                msgs = eBasicSetContainer((InternalEObject)newVariableCharacterisation_Specification, CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION, msgs);
133                return msgs;
134        }
135 
136        /**
137         * <!-- begin-user-doc -->
138         * <!-- end-user-doc -->
139         * @generated
140         */
141        public void setVariableCharacterisation_Specification(VariableCharacterisation newVariableCharacterisation_Specification) {
142                if (newVariableCharacterisation_Specification != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION && newVariableCharacterisation_Specification != null)) {
143                        if (EcoreUtil.isAncestor(this, newVariableCharacterisation_Specification))
144                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
145                        NotificationChain msgs = null;
146                        if (eInternalContainer() != null)
147                                msgs = eBasicRemoveFromContainer(msgs);
148                        if (newVariableCharacterisation_Specification != null)
149                                msgs = ((InternalEObject)newVariableCharacterisation_Specification).eInverseAdd(this, ParameterPackage.VARIABLE_CHARACTERISATION__SPECIFICATION_VARIABLE_CHARACTERISATION, VariableCharacterisation.class, msgs);
150                        msgs = basicSetVariableCharacterisation_Specification(newVariableCharacterisation_Specification, msgs);
151                        if (msgs != null) msgs.dispatch();
152                }
153                else if (eNotificationRequired())
154                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION, newVariableCharacterisation_Specification, newVariableCharacterisation_Specification));
155        }
156 
157        /**
158         * <!-- begin-user-doc -->
159         * <!-- end-user-doc -->
160         * @generated
161         */
162        public PassiveResource getPassiveResource_capacity_PCMRandomVariable() {
163                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE) return null;
164                return (PassiveResource)eContainer();
165        }
166 
167        /**
168         * <!-- begin-user-doc -->
169         * <!-- end-user-doc -->
170         * @generated
171         */
172        public NotificationChain basicSetPassiveResource_capacity_PCMRandomVariable(PassiveResource newPassiveResource_capacity_PCMRandomVariable, NotificationChain msgs) {
173                msgs = eBasicSetContainer((InternalEObject)newPassiveResource_capacity_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE, msgs);
174                return msgs;
175        }
176 
177        /**
178         * <!-- begin-user-doc -->
179         * <!-- end-user-doc -->
180         * @generated
181         */
182        public void setPassiveResource_capacity_PCMRandomVariable(PassiveResource newPassiveResource_capacity_PCMRandomVariable) {
183                if (newPassiveResource_capacity_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE && newPassiveResource_capacity_PCMRandomVariable != null)) {
184                        if (EcoreUtil.isAncestor(this, newPassiveResource_capacity_PCMRandomVariable))
185                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
186                        NotificationChain msgs = null;
187                        if (eInternalContainer() != null)
188                                msgs = eBasicRemoveFromContainer(msgs);
189                        if (newPassiveResource_capacity_PCMRandomVariable != null)
190                                msgs = ((InternalEObject)newPassiveResource_capacity_PCMRandomVariable).eInverseAdd(this, RepositoryPackage.PASSIVE_RESOURCE__CAPACITY_PASSIVE_RESOURCE, PassiveResource.class, msgs);
191                        msgs = basicSetPassiveResource_capacity_PCMRandomVariable(newPassiveResource_capacity_PCMRandomVariable, msgs);
192                        if (msgs != null) msgs.dispatch();
193                }
194                else if (eNotificationRequired())
195                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE, newPassiveResource_capacity_PCMRandomVariable, newPassiveResource_capacity_PCMRandomVariable));
196        }
197 
198        /**
199         * <!-- begin-user-doc -->
200         * <!-- end-user-doc -->
201         * @generated
202         */
203        public ParametricResourceDemand getParametricResourceDemand_PCMRandomVariable() {
204                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE) return null;
205                return (ParametricResourceDemand)eContainer();
206        }
207 
208        /**
209         * <!-- begin-user-doc -->
210         * <!-- end-user-doc -->
211         * @generated
212         */
213        public NotificationChain basicSetParametricResourceDemand_PCMRandomVariable(ParametricResourceDemand newParametricResourceDemand_PCMRandomVariable, NotificationChain msgs) {
214                msgs = eBasicSetContainer((InternalEObject)newParametricResourceDemand_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE, msgs);
215                return msgs;
216        }
217 
218        /**
219         * <!-- begin-user-doc -->
220         * <!-- end-user-doc -->
221         * @generated
222         */
223        public void setParametricResourceDemand_PCMRandomVariable(ParametricResourceDemand newParametricResourceDemand_PCMRandomVariable) {
224                if (newParametricResourceDemand_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE && newParametricResourceDemand_PCMRandomVariable != null)) {
225                        if (EcoreUtil.isAncestor(this, newParametricResourceDemand_PCMRandomVariable))
226                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
227                        NotificationChain msgs = null;
228                        if (eInternalContainer() != null)
229                                msgs = eBasicRemoveFromContainer(msgs);
230                        if (newParametricResourceDemand_PCMRandomVariable != null)
231                                msgs = ((InternalEObject)newParametricResourceDemand_PCMRandomVariable).eInverseAdd(this, Seff_performancePackage.PARAMETRIC_RESOURCE_DEMAND__SPECIFICATION_PARAMETERIC_RESOURCE_DEMAND, ParametricResourceDemand.class, msgs);
232                        msgs = basicSetParametricResourceDemand_PCMRandomVariable(newParametricResourceDemand_PCMRandomVariable, msgs);
233                        if (msgs != null) msgs.dispatch();
234                }
235                else if (eNotificationRequired())
236                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE, newParametricResourceDemand_PCMRandomVariable, newParametricResourceDemand_PCMRandomVariable));
237        }
238 
239        /**
240         * <!-- begin-user-doc -->
241         * <!-- end-user-doc -->
242         * @generated
243         */
244        public LoopAction getLoopAction_PCMRandomVariable() {
245                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE) return null;
246                return (LoopAction)eContainer();
247        }
248 
249        /**
250         * <!-- begin-user-doc -->
251         * <!-- end-user-doc -->
252         * @generated
253         */
254        public NotificationChain basicSetLoopAction_PCMRandomVariable(LoopAction newLoopAction_PCMRandomVariable, NotificationChain msgs) {
255                msgs = eBasicSetContainer((InternalEObject)newLoopAction_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE, msgs);
256                return msgs;
257        }
258 
259        /**
260         * <!-- begin-user-doc -->
261         * <!-- end-user-doc -->
262         * @generated
263         */
264        public void setLoopAction_PCMRandomVariable(LoopAction newLoopAction_PCMRandomVariable) {
265                if (newLoopAction_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE && newLoopAction_PCMRandomVariable != null)) {
266                        if (EcoreUtil.isAncestor(this, newLoopAction_PCMRandomVariable))
267                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
268                        NotificationChain msgs = null;
269                        if (eInternalContainer() != null)
270                                msgs = eBasicRemoveFromContainer(msgs);
271                        if (newLoopAction_PCMRandomVariable != null)
272                                msgs = ((InternalEObject)newLoopAction_PCMRandomVariable).eInverseAdd(this, SeffPackage.LOOP_ACTION__ITERATION_COUNT_LOOP_ACTION, LoopAction.class, msgs);
273                        msgs = basicSetLoopAction_PCMRandomVariable(newLoopAction_PCMRandomVariable, msgs);
274                        if (msgs != null) msgs.dispatch();
275                }
276                else if (eNotificationRequired())
277                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE, newLoopAction_PCMRandomVariable, newLoopAction_PCMRandomVariable));
278        }
279 
280        /**
281         * <!-- begin-user-doc -->
282         * <!-- end-user-doc -->
283         * @generated
284         */
285        public GuardedBranchTransition getGuardedBranchTransition_PCMRandomVariable() {
286                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE) return null;
287                return (GuardedBranchTransition)eContainer();
288        }
289 
290        /**
291         * <!-- begin-user-doc -->
292         * <!-- end-user-doc -->
293         * @generated
294         */
295        public NotificationChain basicSetGuardedBranchTransition_PCMRandomVariable(GuardedBranchTransition newGuardedBranchTransition_PCMRandomVariable, NotificationChain msgs) {
296                msgs = eBasicSetContainer((InternalEObject)newGuardedBranchTransition_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE, msgs);
297                return msgs;
298        }
299 
300        /**
301         * <!-- begin-user-doc -->
302         * <!-- end-user-doc -->
303         * @generated
304         */
305        public void setGuardedBranchTransition_PCMRandomVariable(GuardedBranchTransition newGuardedBranchTransition_PCMRandomVariable) {
306                if (newGuardedBranchTransition_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE && newGuardedBranchTransition_PCMRandomVariable != null)) {
307                        if (EcoreUtil.isAncestor(this, newGuardedBranchTransition_PCMRandomVariable))
308                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
309                        NotificationChain msgs = null;
310                        if (eInternalContainer() != null)
311                                msgs = eBasicRemoveFromContainer(msgs);
312                        if (newGuardedBranchTransition_PCMRandomVariable != null)
313                                msgs = ((InternalEObject)newGuardedBranchTransition_PCMRandomVariable).eInverseAdd(this, SeffPackage.GUARDED_BRANCH_TRANSITION__BRANCH_CONDITION_GUARDED_BRANCH_TRANSITION, GuardedBranchTransition.class, msgs);
314                        msgs = basicSetGuardedBranchTransition_PCMRandomVariable(newGuardedBranchTransition_PCMRandomVariable, msgs);
315                        if (msgs != null) msgs.dispatch();
316                }
317                else if (eNotificationRequired())
318                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE, newGuardedBranchTransition_PCMRandomVariable, newGuardedBranchTransition_PCMRandomVariable));
319        }
320 
321        /**
322         * <!-- begin-user-doc -->
323         * <!-- end-user-doc -->
324         * @generated
325         */
326        public Loop getLoop_LoopIteration() {
327                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION) return null;
328                return (Loop)eContainer();
329        }
330 
331        /**
332         * <!-- begin-user-doc -->
333         * <!-- end-user-doc -->
334         * @generated
335         */
336        public NotificationChain basicSetLoop_LoopIteration(Loop newLoop_LoopIteration, NotificationChain msgs) {
337                msgs = eBasicSetContainer((InternalEObject)newLoop_LoopIteration, CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION, msgs);
338                return msgs;
339        }
340 
341        /**
342         * <!-- begin-user-doc -->
343         * <!-- end-user-doc -->
344         * @generated
345         */
346        public void setLoop_LoopIteration(Loop newLoop_LoopIteration) {
347                if (newLoop_LoopIteration != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION && newLoop_LoopIteration != null)) {
348                        if (EcoreUtil.isAncestor(this, newLoop_LoopIteration))
349                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
350                        NotificationChain msgs = null;
351                        if (eInternalContainer() != null)
352                                msgs = eBasicRemoveFromContainer(msgs);
353                        if (newLoop_LoopIteration != null)
354                                msgs = ((InternalEObject)newLoop_LoopIteration).eInverseAdd(this, UsagemodelPackage.LOOP__LOOP_ITERATION_LOOP, Loop.class, msgs);
355                        msgs = basicSetLoop_LoopIteration(newLoop_LoopIteration, msgs);
356                        if (msgs != null) msgs.dispatch();
357                }
358                else if (eNotificationRequired())
359                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION, newLoop_LoopIteration, newLoop_LoopIteration));
360        }
361 
362        /**
363         * <!-- begin-user-doc -->
364         * <!-- end-user-doc -->
365         * @generated
366         */
367        public SpecifiedExecutionTime getSpecifiedExecutionTime_PCMRandomVariable() {
368                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE) return null;
369                return (SpecifiedExecutionTime)eContainer();
370        }
371 
372        /**
373         * <!-- begin-user-doc -->
374         * <!-- end-user-doc -->
375         * @generated
376         */
377        public NotificationChain basicSetSpecifiedExecutionTime_PCMRandomVariable(SpecifiedExecutionTime newSpecifiedExecutionTime_PCMRandomVariable, NotificationChain msgs) {
378                msgs = eBasicSetContainer((InternalEObject)newSpecifiedExecutionTime_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE, msgs);
379                return msgs;
380        }
381 
382        /**
383         * <!-- begin-user-doc -->
384         * <!-- end-user-doc -->
385         * @generated
386         */
387        public void setSpecifiedExecutionTime_PCMRandomVariable(SpecifiedExecutionTime newSpecifiedExecutionTime_PCMRandomVariable) {
388                if (newSpecifiedExecutionTime_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE && newSpecifiedExecutionTime_PCMRandomVariable != null)) {
389                        if (EcoreUtil.isAncestor(this, newSpecifiedExecutionTime_PCMRandomVariable))
390                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
391                        NotificationChain msgs = null;
392                        if (eInternalContainer() != null)
393                                msgs = eBasicRemoveFromContainer(msgs);
394                        if (newSpecifiedExecutionTime_PCMRandomVariable != null)
395                                msgs = ((InternalEObject)newSpecifiedExecutionTime_PCMRandomVariable).eInverseAdd(this, Qos_performancePackage.SPECIFIED_EXECUTION_TIME__SPECIFICATION_SPECIFIED_EXECUTION_TIME, SpecifiedExecutionTime.class, msgs);
396                        msgs = basicSetSpecifiedExecutionTime_PCMRandomVariable(newSpecifiedExecutionTime_PCMRandomVariable, msgs);
397                        if (msgs != null) msgs.dispatch();
398                }
399                else if (eNotificationRequired())
400                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE, newSpecifiedExecutionTime_PCMRandomVariable, newSpecifiedExecutionTime_PCMRandomVariable));
401        }
402 
403        /**
404         * <!-- begin-user-doc -->
405         * <!-- end-user-doc -->
406         * @generated
407         */
408        public AssemblyEventConnector getAssemblyEventConnector__FilterCondition() {
409                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION) return null;
410                return (AssemblyEventConnector)eContainer();
411        }
412 
413        /**
414         * <!-- begin-user-doc -->
415         * <!-- end-user-doc -->
416         * @generated
417         */
418        public NotificationChain basicSetAssemblyEventConnector__FilterCondition(AssemblyEventConnector newAssemblyEventConnector__FilterCondition, NotificationChain msgs) {
419                msgs = eBasicSetContainer((InternalEObject)newAssemblyEventConnector__FilterCondition, CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION, msgs);
420                return msgs;
421        }
422 
423        /**
424         * <!-- begin-user-doc -->
425         * <!-- end-user-doc -->
426         * @generated
427         */
428        public void setAssemblyEventConnector__FilterCondition(AssemblyEventConnector newAssemblyEventConnector__FilterCondition) {
429                if (newAssemblyEventConnector__FilterCondition != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION && newAssemblyEventConnector__FilterCondition != null)) {
430                        if (EcoreUtil.isAncestor(this, newAssemblyEventConnector__FilterCondition))
431                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
432                        NotificationChain msgs = null;
433                        if (eInternalContainer() != null)
434                                msgs = eBasicRemoveFromContainer(msgs);
435                        if (newAssemblyEventConnector__FilterCondition != null)
436                                msgs = ((InternalEObject)newAssemblyEventConnector__FilterCondition).eInverseAdd(this, CompositionPackage.ASSEMBLY_EVENT_CONNECTOR__FILTER_CONDITION_ASSEMBLY_EVENT_CONNECTOR, AssemblyEventConnector.class, msgs);
437                        msgs = basicSetAssemblyEventConnector__FilterCondition(newAssemblyEventConnector__FilterCondition, msgs);
438                        if (msgs != null) msgs.dispatch();
439                }
440                else if (eNotificationRequired())
441                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION, newAssemblyEventConnector__FilterCondition, newAssemblyEventConnector__FilterCondition));
442        }
443 
444        /**
445         * <!-- begin-user-doc -->
446         * <!-- end-user-doc -->
447         * @generated
448         */
449        public EventChannelSinkConnector getEventChannelSinkConnector__FilterCondition() {
450                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION) return null;
451                return (EventChannelSinkConnector)eContainer();
452        }
453 
454        /**
455         * <!-- begin-user-doc -->
456         * <!-- end-user-doc -->
457         * @generated
458         */
459        public NotificationChain basicSetEventChannelSinkConnector__FilterCondition(EventChannelSinkConnector newEventChannelSinkConnector__FilterCondition, NotificationChain msgs) {
460                msgs = eBasicSetContainer((InternalEObject)newEventChannelSinkConnector__FilterCondition, CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION, msgs);
461                return msgs;
462        }
463 
464        /**
465         * <!-- begin-user-doc -->
466         * <!-- end-user-doc -->
467         * @generated
468         */
469        public void setEventChannelSinkConnector__FilterCondition(EventChannelSinkConnector newEventChannelSinkConnector__FilterCondition) {
470                if (newEventChannelSinkConnector__FilterCondition != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION && newEventChannelSinkConnector__FilterCondition != null)) {
471                        if (EcoreUtil.isAncestor(this, newEventChannelSinkConnector__FilterCondition))
472                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
473                        NotificationChain msgs = null;
474                        if (eInternalContainer() != null)
475                                msgs = eBasicRemoveFromContainer(msgs);
476                        if (newEventChannelSinkConnector__FilterCondition != null)
477                                msgs = ((InternalEObject)newEventChannelSinkConnector__FilterCondition).eInverseAdd(this, CompositionPackage.EVENT_CHANNEL_SINK_CONNECTOR__FILTER_CONDITION_EVENT_CHANNEL_SINK_CONNECTOR, EventChannelSinkConnector.class, msgs);
478                        msgs = basicSetEventChannelSinkConnector__FilterCondition(newEventChannelSinkConnector__FilterCondition, msgs);
479                        if (msgs != null) msgs.dispatch();
480                }
481                else if (eNotificationRequired())
482                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION, newEventChannelSinkConnector__FilterCondition, newEventChannelSinkConnector__FilterCondition));
483        }
484 
485        /**
486         * <!-- begin-user-doc -->
487         * <!-- end-user-doc -->
488         * @generated
489         */
490        public InfrastructureCall getInfrastructureCall__PCMRandomVariable() {
491                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE) return null;
492                return (InfrastructureCall)eContainer();
493        }
494 
495        /**
496         * <!-- begin-user-doc -->
497         * <!-- end-user-doc -->
498         * @generated
499         */
500        public NotificationChain basicSetInfrastructureCall__PCMRandomVariable(InfrastructureCall newInfrastructureCall__PCMRandomVariable, NotificationChain msgs) {
501                msgs = eBasicSetContainer((InternalEObject)newInfrastructureCall__PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE, msgs);
502                return msgs;
503        }
504 
505        /**
506         * <!-- begin-user-doc -->
507         * <!-- end-user-doc -->
508         * @generated
509         */
510        public void setInfrastructureCall__PCMRandomVariable(InfrastructureCall newInfrastructureCall__PCMRandomVariable) {
511                if (newInfrastructureCall__PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE && newInfrastructureCall__PCMRandomVariable != null)) {
512                        if (EcoreUtil.isAncestor(this, newInfrastructureCall__PCMRandomVariable))
513                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
514                        NotificationChain msgs = null;
515                        if (eInternalContainer() != null)
516                                msgs = eBasicRemoveFromContainer(msgs);
517                        if (newInfrastructureCall__PCMRandomVariable != null)
518                                msgs = ((InternalEObject)newInfrastructureCall__PCMRandomVariable).eInverseAdd(this, Seff_performancePackage.INFRASTRUCTURE_CALL__NUMBER_OF_CALLS_INFRASTRUCTURE_CALL, InfrastructureCall.class, msgs);
519                        msgs = basicSetInfrastructureCall__PCMRandomVariable(newInfrastructureCall__PCMRandomVariable, msgs);
520                        if (msgs != null) msgs.dispatch();
521                }
522                else if (eNotificationRequired())
523                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE, newInfrastructureCall__PCMRandomVariable, newInfrastructureCall__PCMRandomVariable));
524        }
525 
526        /**
527         * <!-- begin-user-doc -->
528         * <!-- end-user-doc -->
529         * @generated
530         */
531        public ResourceCall getResourceCall__PCMRandomVariable() {
532                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE) return null;
533                return (ResourceCall)eContainer();
534        }
535 
536        /**
537         * <!-- begin-user-doc -->
538         * <!-- end-user-doc -->
539         * @generated
540         */
541        public NotificationChain basicSetResourceCall__PCMRandomVariable(ResourceCall newResourceCall__PCMRandomVariable, NotificationChain msgs) {
542                msgs = eBasicSetContainer((InternalEObject)newResourceCall__PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE, msgs);
543                return msgs;
544        }
545 
546        /**
547         * <!-- begin-user-doc -->
548         * <!-- end-user-doc -->
549         * @generated
550         */
551        public void setResourceCall__PCMRandomVariable(ResourceCall newResourceCall__PCMRandomVariable) {
552                if (newResourceCall__PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE && newResourceCall__PCMRandomVariable != null)) {
553                        if (EcoreUtil.isAncestor(this, newResourceCall__PCMRandomVariable))
554                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
555                        NotificationChain msgs = null;
556                        if (eInternalContainer() != null)
557                                msgs = eBasicRemoveFromContainer(msgs);
558                        if (newResourceCall__PCMRandomVariable != null)
559                                msgs = ((InternalEObject)newResourceCall__PCMRandomVariable).eInverseAdd(this, Seff_performancePackage.RESOURCE_CALL__NUMBER_OF_CALLS_RESOURCE_CALL, ResourceCall.class, msgs);
560                        msgs = basicSetResourceCall__PCMRandomVariable(newResourceCall__PCMRandomVariable, msgs);
561                        if (msgs != null) msgs.dispatch();
562                }
563                else if (eNotificationRequired())
564                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE, newResourceCall__PCMRandomVariable, newResourceCall__PCMRandomVariable));
565        }
566 
567        /**
568         * <!-- begin-user-doc -->
569         * <!-- end-user-doc -->
570         * @generated
571         */
572        public OpenWorkload getOpenWorkload_PCMRandomVariable() {
573                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE) return null;
574                return (OpenWorkload)eContainer();
575        }
576 
577        /**
578         * <!-- begin-user-doc -->
579         * <!-- end-user-doc -->
580         * @generated
581         */
582        public NotificationChain basicSetOpenWorkload_PCMRandomVariable(OpenWorkload newOpenWorkload_PCMRandomVariable, NotificationChain msgs) {
583                msgs = eBasicSetContainer((InternalEObject)newOpenWorkload_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE, msgs);
584                return msgs;
585        }
586 
587        /**
588         * <!-- begin-user-doc -->
589         * <!-- end-user-doc -->
590         * @generated
591         */
592        public void setOpenWorkload_PCMRandomVariable(OpenWorkload newOpenWorkload_PCMRandomVariable) {
593                if (newOpenWorkload_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE && newOpenWorkload_PCMRandomVariable != null)) {
594                        if (EcoreUtil.isAncestor(this, newOpenWorkload_PCMRandomVariable))
595                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
596                        NotificationChain msgs = null;
597                        if (eInternalContainer() != null)
598                                msgs = eBasicRemoveFromContainer(msgs);
599                        if (newOpenWorkload_PCMRandomVariable != null)
600                                msgs = ((InternalEObject)newOpenWorkload_PCMRandomVariable).eInverseAdd(this, UsagemodelPackage.OPEN_WORKLOAD__INTER_ARRIVAL_TIME_OPEN_WORKLOAD, OpenWorkload.class, msgs);
601                        msgs = basicSetOpenWorkload_PCMRandomVariable(newOpenWorkload_PCMRandomVariable, msgs);
602                        if (msgs != null) msgs.dispatch();
603                }
604                else if (eNotificationRequired())
605                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE, newOpenWorkload_PCMRandomVariable, newOpenWorkload_PCMRandomVariable));
606        }
607 
608        /**
609         * <!-- begin-user-doc -->
610         * <!-- end-user-doc -->
611         * @generated
612         */
613        public ClosedWorkload getClosedWorkload_PCMRandomVariable() {
614                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE) return null;
615                return (ClosedWorkload)eContainer();
616        }
617 
618        /**
619         * <!-- begin-user-doc -->
620         * <!-- end-user-doc -->
621         * @generated
622         */
623        public NotificationChain basicSetClosedWorkload_PCMRandomVariable(ClosedWorkload newClosedWorkload_PCMRandomVariable, NotificationChain msgs) {
624                msgs = eBasicSetContainer((InternalEObject)newClosedWorkload_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE, msgs);
625                return msgs;
626        }
627 
628        /**
629         * <!-- begin-user-doc -->
630         * <!-- end-user-doc -->
631         * @generated
632         */
633        public void setClosedWorkload_PCMRandomVariable(ClosedWorkload newClosedWorkload_PCMRandomVariable) {
634                if (newClosedWorkload_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE && newClosedWorkload_PCMRandomVariable != null)) {
635                        if (EcoreUtil.isAncestor(this, newClosedWorkload_PCMRandomVariable))
636                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
637                        NotificationChain msgs = null;
638                        if (eInternalContainer() != null)
639                                msgs = eBasicRemoveFromContainer(msgs);
640                        if (newClosedWorkload_PCMRandomVariable != null)
641                                msgs = ((InternalEObject)newClosedWorkload_PCMRandomVariable).eInverseAdd(this, UsagemodelPackage.CLOSED_WORKLOAD__THINK_TIME_CLOSED_WORKLOAD, ClosedWorkload.class, msgs);
642                        msgs = basicSetClosedWorkload_PCMRandomVariable(newClosedWorkload_PCMRandomVariable, msgs);
643                        if (msgs != null) msgs.dispatch();
644                }
645                else if (eNotificationRequired())
646                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE, newClosedWorkload_PCMRandomVariable, newClosedWorkload_PCMRandomVariable));
647        }
648 
649        /**
650         * <!-- begin-user-doc -->
651         * <!-- end-user-doc -->
652         * @generated
653         */
654        public Delay getDelay_TimeSpecification() {
655                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION) return null;
656                return (Delay)eContainer();
657        }
658 
659        /**
660         * <!-- begin-user-doc -->
661         * <!-- end-user-doc -->
662         * @generated
663         */
664        public NotificationChain basicSetDelay_TimeSpecification(Delay newDelay_TimeSpecification, NotificationChain msgs) {
665                msgs = eBasicSetContainer((InternalEObject)newDelay_TimeSpecification, CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION, msgs);
666                return msgs;
667        }
668 
669        /**
670         * <!-- begin-user-doc -->
671         * <!-- end-user-doc -->
672         * @generated
673         */
674        public void setDelay_TimeSpecification(Delay newDelay_TimeSpecification) {
675                if (newDelay_TimeSpecification != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION && newDelay_TimeSpecification != null)) {
676                        if (EcoreUtil.isAncestor(this, newDelay_TimeSpecification))
677                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
678                        NotificationChain msgs = null;
679                        if (eInternalContainer() != null)
680                                msgs = eBasicRemoveFromContainer(msgs);
681                        if (newDelay_TimeSpecification != null)
682                                msgs = ((InternalEObject)newDelay_TimeSpecification).eInverseAdd(this, UsagemodelPackage.DELAY__TIME_SPECIFICATION_DELAY, Delay.class, msgs);
683                        msgs = basicSetDelay_TimeSpecification(newDelay_TimeSpecification, msgs);
684                        if (msgs != null) msgs.dispatch();
685                }
686                else if (eNotificationRequired())
687                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION, newDelay_TimeSpecification, newDelay_TimeSpecification));
688        }
689 
690        /**
691         * <!-- begin-user-doc -->
692         * <!-- end-user-doc -->
693         * @generated
694         */
695        public CommunicationLinkResourceSpecification getCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable() {
696                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE) return null;
697                return (CommunicationLinkResourceSpecification)eContainer();
698        }
699 
700        /**
701         * <!-- begin-user-doc -->
702         * <!-- end-user-doc -->
703         * @generated
704         */
705        public NotificationChain basicSetCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable(CommunicationLinkResourceSpecification newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable, NotificationChain msgs) {
706                msgs = eBasicSetContainer((InternalEObject)newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE, msgs);
707                return msgs;
708        }
709 
710        /**
711         * <!-- begin-user-doc -->
712         * <!-- end-user-doc -->
713         * @generated
714         */
715        public void setCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable(CommunicationLinkResourceSpecification newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable) {
716                if (newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE && newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable != null)) {
717                        if (EcoreUtil.isAncestor(this, newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable))
718                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
719                        NotificationChain msgs = null;
720                        if (eInternalContainer() != null)
721                                msgs = eBasicRemoveFromContainer(msgs);
722                        if (newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable != null)
723                                msgs = ((InternalEObject)newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable).eInverseAdd(this, ResourceenvironmentPackage.COMMUNICATION_LINK_RESOURCE_SPECIFICATION__THROUGHPUT_COMMUNICATION_LINK_RESOURCE_SPECIFICATION, CommunicationLinkResourceSpecification.class, msgs);
724                        msgs = basicSetCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable(newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable, msgs);
725                        if (msgs != null) msgs.dispatch();
726                }
727                else if (eNotificationRequired())
728                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE, newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable, newCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable));
729        }
730 
731        /**
732         * <!-- begin-user-doc -->
733         * <!-- end-user-doc -->
734         * @generated
735         */
736        public ProcessingResourceSpecification getProcessingResourceSpecification_processingRate_PCMRandomVariable() {
737                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE) return null;
738                return (ProcessingResourceSpecification)eContainer();
739        }
740 
741        /**
742         * <!-- begin-user-doc -->
743         * <!-- end-user-doc -->
744         * @generated
745         */
746        public NotificationChain basicSetProcessingResourceSpecification_processingRate_PCMRandomVariable(ProcessingResourceSpecification newProcessingResourceSpecification_processingRate_PCMRandomVariable, NotificationChain msgs) {
747                msgs = eBasicSetContainer((InternalEObject)newProcessingResourceSpecification_processingRate_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE, msgs);
748                return msgs;
749        }
750 
751        /**
752         * <!-- begin-user-doc -->
753         * <!-- end-user-doc -->
754         * @generated
755         */
756        public void setProcessingResourceSpecification_processingRate_PCMRandomVariable(ProcessingResourceSpecification newProcessingResourceSpecification_processingRate_PCMRandomVariable) {
757                if (newProcessingResourceSpecification_processingRate_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE && newProcessingResourceSpecification_processingRate_PCMRandomVariable != null)) {
758                        if (EcoreUtil.isAncestor(this, newProcessingResourceSpecification_processingRate_PCMRandomVariable))
759                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
760                        NotificationChain msgs = null;
761                        if (eInternalContainer() != null)
762                                msgs = eBasicRemoveFromContainer(msgs);
763                        if (newProcessingResourceSpecification_processingRate_PCMRandomVariable != null)
764                                msgs = ((InternalEObject)newProcessingResourceSpecification_processingRate_PCMRandomVariable).eInverseAdd(this, ResourceenvironmentPackage.PROCESSING_RESOURCE_SPECIFICATION__PROCESSING_RATE_PROCESSING_RESOURCE_SPECIFICATION, ProcessingResourceSpecification.class, msgs);
765                        msgs = basicSetProcessingResourceSpecification_processingRate_PCMRandomVariable(newProcessingResourceSpecification_processingRate_PCMRandomVariable, msgs);
766                        if (msgs != null) msgs.dispatch();
767                }
768                else if (eNotificationRequired())
769                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE, newProcessingResourceSpecification_processingRate_PCMRandomVariable, newProcessingResourceSpecification_processingRate_PCMRandomVariable));
770        }
771 
772        /**
773         * <!-- begin-user-doc -->
774         * <!-- end-user-doc -->
775         * @generated
776         */
777        public CommunicationLinkResourceSpecification getCommunicationLinkResourceSpecification_latency_PCMRandomVariable() {
778                if (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE) return null;
779                return (CommunicationLinkResourceSpecification)eContainer();
780        }
781 
782        /**
783         * <!-- begin-user-doc -->
784         * <!-- end-user-doc -->
785         * @generated
786         */
787        public NotificationChain basicSetCommunicationLinkResourceSpecification_latency_PCMRandomVariable(CommunicationLinkResourceSpecification newCommunicationLinkResourceSpecification_latency_PCMRandomVariable, NotificationChain msgs) {
788                msgs = eBasicSetContainer((InternalEObject)newCommunicationLinkResourceSpecification_latency_PCMRandomVariable, CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE, msgs);
789                return msgs;
790        }
791 
792        /**
793         * <!-- begin-user-doc -->
794         * <!-- end-user-doc -->
795         * @generated
796         */
797        public void setCommunicationLinkResourceSpecification_latency_PCMRandomVariable(CommunicationLinkResourceSpecification newCommunicationLinkResourceSpecification_latency_PCMRandomVariable) {
798                if (newCommunicationLinkResourceSpecification_latency_PCMRandomVariable != eInternalContainer() || (eContainerFeatureID() != CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE && newCommunicationLinkResourceSpecification_latency_PCMRandomVariable != null)) {
799                        if (EcoreUtil.isAncestor(this, newCommunicationLinkResourceSpecification_latency_PCMRandomVariable))
800                                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
801                        NotificationChain msgs = null;
802                        if (eInternalContainer() != null)
803                                msgs = eBasicRemoveFromContainer(msgs);
804                        if (newCommunicationLinkResourceSpecification_latency_PCMRandomVariable != null)
805                                msgs = ((InternalEObject)newCommunicationLinkResourceSpecification_latency_PCMRandomVariable).eInverseAdd(this, ResourceenvironmentPackage.COMMUNICATION_LINK_RESOURCE_SPECIFICATION__LATENCY_COMMUNICATION_LINK_RESOURCE_SPECIFICATION, CommunicationLinkResourceSpecification.class, msgs);
806                        msgs = basicSetCommunicationLinkResourceSpecification_latency_PCMRandomVariable(newCommunicationLinkResourceSpecification_latency_PCMRandomVariable, msgs);
807                        if (msgs != null) msgs.dispatch();
808                }
809                else if (eNotificationRequired())
810                        eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE, newCommunicationLinkResourceSpecification_latency_PCMRandomVariable, newCommunicationLinkResourceSpecification_latency_PCMRandomVariable));
811        }
812 
813        /**
814         * The cached OCL expression body for the '{@link #SpecificationMustNotBeNULL(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Specification Must Not Be NULL</em>}' operation.
815         * <!-- begin-user-doc -->
816         * <!-- end-user-doc -->
817         * @see #SpecificationMustNotBeNULL(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
818         * @generated
819         * @ordered
820         */
821        protected static final String SPECIFICATION_MUST_NOT_BE_NULL__DIAGNOSTIC_CHAIN_MAP__EOCL_EXP = "not self.specification.oclIsUndefined() and self.specification <> ''";
822        /**
823         * The cached OCL invariant for the '{@link #SpecificationMustNotBeNULL(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Specification Must Not Be NULL</em>}' invariant operation.
824         * <!-- begin-user-doc -->
825         * <!-- end-user-doc -->
826         * @see #SpecificationMustNotBeNULL(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
827         * @generated
828         * @ordered
829         */
830        protected static Constraint SPECIFICATION_MUST_NOT_BE_NULL__DIAGNOSTIC_CHAIN_MAP__EOCL_INV;
831 
832        /**
833         * <!-- begin-user-doc -->
834         * <!-- end-user-doc -->
835         * @generated
836         */
837        public boolean SpecificationMustNotBeNULL(DiagnosticChain diagnostics, Map<Object, Object> context) {
838                if (SPECIFICATION_MUST_NOT_BE_NULL__DIAGNOSTIC_CHAIN_MAP__EOCL_INV == null) {
839                        OCL.Helper helper = EOCL_ENV.createOCLHelper();
840                        helper.setContext(CorePackage.Literals.PCM_RANDOM_VARIABLE);
841                        try {
842                                SPECIFICATION_MUST_NOT_BE_NULL__DIAGNOSTIC_CHAIN_MAP__EOCL_INV = helper.createInvariant(SPECIFICATION_MUST_NOT_BE_NULL__DIAGNOSTIC_CHAIN_MAP__EOCL_EXP);
843                        }
844                        catch (ParserException pe) {
845                                throw new UnsupportedOperationException(pe.getLocalizedMessage());
846                        }
847                }
848                if (!EOCL_ENV.createQuery(SPECIFICATION_MUST_NOT_BE_NULL__DIAGNOSTIC_CHAIN_MAP__EOCL_INV).check(this)) {
849                        if (diagnostics != null) {
850                                diagnostics.add
851                                        (new BasicDiagnostic
852                                                (Diagnostic.ERROR,
853                                                 CoreValidator.DIAGNOSTIC_SOURCE,
854                                                 CoreValidator.PCM_RANDOM_VARIABLE__SPECIFICATION_MUST_NOT_BE_NULL,
855                                                 EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SpecificationMustNotBeNULL", EObjectValidator.getObjectLabel(this, context) }),
856                                                 new Object [] { this }));
857                        }
858                        return false;
859                }
860                return true;
861        }
862 
863        /**
864         * <!-- begin-user-doc -->
865         * <!-- end-user-doc -->
866         * @generated
867         */
868        @Override
869        public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
870                switch (featureID) {
871                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
872                                if (eInternalContainer() != null)
873                                        msgs = eBasicRemoveFromContainer(msgs);
874                                return basicSetClosedWorkload_PCMRandomVariable((ClosedWorkload)otherEnd, msgs);
875                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
876                                if (eInternalContainer() != null)
877                                        msgs = eBasicRemoveFromContainer(msgs);
878                                return basicSetPassiveResource_capacity_PCMRandomVariable((PassiveResource)otherEnd, msgs);
879                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
880                                if (eInternalContainer() != null)
881                                        msgs = eBasicRemoveFromContainer(msgs);
882                                return basicSetVariableCharacterisation_Specification((VariableCharacterisation)otherEnd, msgs);
883                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
884                                if (eInternalContainer() != null)
885                                        msgs = eBasicRemoveFromContainer(msgs);
886                                return basicSetInfrastructureCall__PCMRandomVariable((InfrastructureCall)otherEnd, msgs);
887                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
888                                if (eInternalContainer() != null)
889                                        msgs = eBasicRemoveFromContainer(msgs);
890                                return basicSetResourceCall__PCMRandomVariable((ResourceCall)otherEnd, msgs);
891                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
892                                if (eInternalContainer() != null)
893                                        msgs = eBasicRemoveFromContainer(msgs);
894                                return basicSetParametricResourceDemand_PCMRandomVariable((ParametricResourceDemand)otherEnd, msgs);
895                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
896                                if (eInternalContainer() != null)
897                                        msgs = eBasicRemoveFromContainer(msgs);
898                                return basicSetLoopAction_PCMRandomVariable((LoopAction)otherEnd, msgs);
899                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
900                                if (eInternalContainer() != null)
901                                        msgs = eBasicRemoveFromContainer(msgs);
902                                return basicSetGuardedBranchTransition_PCMRandomVariable((GuardedBranchTransition)otherEnd, msgs);
903                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
904                                if (eInternalContainer() != null)
905                                        msgs = eBasicRemoveFromContainer(msgs);
906                                return basicSetSpecifiedExecutionTime_PCMRandomVariable((SpecifiedExecutionTime)otherEnd, msgs);
907                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
908                                if (eInternalContainer() != null)
909                                        msgs = eBasicRemoveFromContainer(msgs);
910                                return basicSetEventChannelSinkConnector__FilterCondition((EventChannelSinkConnector)otherEnd, msgs);
911                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
912                                if (eInternalContainer() != null)
913                                        msgs = eBasicRemoveFromContainer(msgs);
914                                return basicSetAssemblyEventConnector__FilterCondition((AssemblyEventConnector)otherEnd, msgs);
915                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
916                                if (eInternalContainer() != null)
917                                        msgs = eBasicRemoveFromContainer(msgs);
918                                return basicSetLoop_LoopIteration((Loop)otherEnd, msgs);
919                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
920                                if (eInternalContainer() != null)
921                                        msgs = eBasicRemoveFromContainer(msgs);
922                                return basicSetOpenWorkload_PCMRandomVariable((OpenWorkload)otherEnd, msgs);
923                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
924                                if (eInternalContainer() != null)
925                                        msgs = eBasicRemoveFromContainer(msgs);
926                                return basicSetDelay_TimeSpecification((Delay)otherEnd, msgs);
927                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
928                                if (eInternalContainer() != null)
929                                        msgs = eBasicRemoveFromContainer(msgs);
930                                return basicSetCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable((CommunicationLinkResourceSpecification)otherEnd, msgs);
931                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
932                                if (eInternalContainer() != null)
933                                        msgs = eBasicRemoveFromContainer(msgs);
934                                return basicSetProcessingResourceSpecification_processingRate_PCMRandomVariable((ProcessingResourceSpecification)otherEnd, msgs);
935                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
936                                if (eInternalContainer() != null)
937                                        msgs = eBasicRemoveFromContainer(msgs);
938                                return basicSetCommunicationLinkResourceSpecification_latency_PCMRandomVariable((CommunicationLinkResourceSpecification)otherEnd, msgs);
939                }
940                return super.eInverseAdd(otherEnd, featureID, msgs);
941        }
942 
943        /**
944         * <!-- begin-user-doc -->
945         * <!-- end-user-doc -->
946         * @generated
947         */
948        @Override
949        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
950                switch (featureID) {
951                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
952                                return basicSetClosedWorkload_PCMRandomVariable(null, msgs);
953                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
954                                return basicSetPassiveResource_capacity_PCMRandomVariable(null, msgs);
955                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
956                                return basicSetVariableCharacterisation_Specification(null, msgs);
957                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
958                                return basicSetInfrastructureCall__PCMRandomVariable(null, msgs);
959                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
960                                return basicSetResourceCall__PCMRandomVariable(null, msgs);
961                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
962                                return basicSetParametricResourceDemand_PCMRandomVariable(null, msgs);
963                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
964                                return basicSetLoopAction_PCMRandomVariable(null, msgs);
965                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
966                                return basicSetGuardedBranchTransition_PCMRandomVariable(null, msgs);
967                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
968                                return basicSetSpecifiedExecutionTime_PCMRandomVariable(null, msgs);
969                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
970                                return basicSetEventChannelSinkConnector__FilterCondition(null, msgs);
971                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
972                                return basicSetAssemblyEventConnector__FilterCondition(null, msgs);
973                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
974                                return basicSetLoop_LoopIteration(null, msgs);
975                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
976                                return basicSetOpenWorkload_PCMRandomVariable(null, msgs);
977                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
978                                return basicSetDelay_TimeSpecification(null, msgs);
979                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
980                                return basicSetCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable(null, msgs);
981                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
982                                return basicSetProcessingResourceSpecification_processingRate_PCMRandomVariable(null, msgs);
983                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
984                                return basicSetCommunicationLinkResourceSpecification_latency_PCMRandomVariable(null, msgs);
985                }
986                return super.eInverseRemove(otherEnd, featureID, msgs);
987        }
988 
989        /**
990         * <!-- begin-user-doc -->
991         * <!-- end-user-doc -->
992         * @generated
993         */
994        @Override
995        public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
996                switch (eContainerFeatureID()) {
997                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
998                                return eInternalContainer().eInverseRemove(this, UsagemodelPackage.CLOSED_WORKLOAD__THINK_TIME_CLOSED_WORKLOAD, ClosedWorkload.class, msgs);
999                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
1000                                return eInternalContainer().eInverseRemove(this, RepositoryPackage.PASSIVE_RESOURCE__CAPACITY_PASSIVE_RESOURCE, PassiveResource.class, msgs);
1001                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
1002                                return eInternalContainer().eInverseRemove(this, ParameterPackage.VARIABLE_CHARACTERISATION__SPECIFICATION_VARIABLE_CHARACTERISATION, VariableCharacterisation.class, msgs);
1003                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
1004                                return eInternalContainer().eInverseRemove(this, Seff_performancePackage.INFRASTRUCTURE_CALL__NUMBER_OF_CALLS_INFRASTRUCTURE_CALL, InfrastructureCall.class, msgs);
1005                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
1006                                return eInternalContainer().eInverseRemove(this, Seff_performancePackage.RESOURCE_CALL__NUMBER_OF_CALLS_RESOURCE_CALL, ResourceCall.class, msgs);
1007                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
1008                                return eInternalContainer().eInverseRemove(this, Seff_performancePackage.PARAMETRIC_RESOURCE_DEMAND__SPECIFICATION_PARAMETERIC_RESOURCE_DEMAND, ParametricResourceDemand.class, msgs);
1009                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
1010                                return eInternalContainer().eInverseRemove(this, SeffPackage.LOOP_ACTION__ITERATION_COUNT_LOOP_ACTION, LoopAction.class, msgs);
1011                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
1012                                return eInternalContainer().eInverseRemove(this, SeffPackage.GUARDED_BRANCH_TRANSITION__BRANCH_CONDITION_GUARDED_BRANCH_TRANSITION, GuardedBranchTransition.class, msgs);
1013                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
1014                                return eInternalContainer().eInverseRemove(this, Qos_performancePackage.SPECIFIED_EXECUTION_TIME__SPECIFICATION_SPECIFIED_EXECUTION_TIME, SpecifiedExecutionTime.class, msgs);
1015                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
1016                                return eInternalContainer().eInverseRemove(this, CompositionPackage.EVENT_CHANNEL_SINK_CONNECTOR__FILTER_CONDITION_EVENT_CHANNEL_SINK_CONNECTOR, EventChannelSinkConnector.class, msgs);
1017                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
1018                                return eInternalContainer().eInverseRemove(this, CompositionPackage.ASSEMBLY_EVENT_CONNECTOR__FILTER_CONDITION_ASSEMBLY_EVENT_CONNECTOR, AssemblyEventConnector.class, msgs);
1019                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
1020                                return eInternalContainer().eInverseRemove(this, UsagemodelPackage.LOOP__LOOP_ITERATION_LOOP, Loop.class, msgs);
1021                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
1022                                return eInternalContainer().eInverseRemove(this, UsagemodelPackage.OPEN_WORKLOAD__INTER_ARRIVAL_TIME_OPEN_WORKLOAD, OpenWorkload.class, msgs);
1023                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
1024                                return eInternalContainer().eInverseRemove(this, UsagemodelPackage.DELAY__TIME_SPECIFICATION_DELAY, Delay.class, msgs);
1025                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
1026                                return eInternalContainer().eInverseRemove(this, ResourceenvironmentPackage.COMMUNICATION_LINK_RESOURCE_SPECIFICATION__THROUGHPUT_COMMUNICATION_LINK_RESOURCE_SPECIFICATION, CommunicationLinkResourceSpecification.class, msgs);
1027                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
1028                                return eInternalContainer().eInverseRemove(this, ResourceenvironmentPackage.PROCESSING_RESOURCE_SPECIFICATION__PROCESSING_RATE_PROCESSING_RESOURCE_SPECIFICATION, ProcessingResourceSpecification.class, msgs);
1029                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
1030                                return eInternalContainer().eInverseRemove(this, ResourceenvironmentPackage.COMMUNICATION_LINK_RESOURCE_SPECIFICATION__LATENCY_COMMUNICATION_LINK_RESOURCE_SPECIFICATION, CommunicationLinkResourceSpecification.class, msgs);
1031                }
1032                return super.eBasicRemoveFromContainerFeature(msgs);
1033        }
1034 
1035        /**
1036         * <!-- begin-user-doc -->
1037         * <!-- end-user-doc -->
1038         * @generated
1039         */
1040        @Override
1041        public Object eGet(int featureID, boolean resolve, boolean coreType) {
1042                switch (featureID) {
1043                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
1044                                return getClosedWorkload_PCMRandomVariable();
1045                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
1046                                return getPassiveResource_capacity_PCMRandomVariable();
1047                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
1048                                return getVariableCharacterisation_Specification();
1049                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
1050                                return getInfrastructureCall__PCMRandomVariable();
1051                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
1052                                return getResourceCall__PCMRandomVariable();
1053                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
1054                                return getParametricResourceDemand_PCMRandomVariable();
1055                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
1056                                return getLoopAction_PCMRandomVariable();
1057                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
1058                                return getGuardedBranchTransition_PCMRandomVariable();
1059                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
1060                                return getSpecifiedExecutionTime_PCMRandomVariable();
1061                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
1062                                return getEventChannelSinkConnector__FilterCondition();
1063                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
1064                                return getAssemblyEventConnector__FilterCondition();
1065                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
1066                                return getLoop_LoopIteration();
1067                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
1068                                return getOpenWorkload_PCMRandomVariable();
1069                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
1070                                return getDelay_TimeSpecification();
1071                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
1072                                return getCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable();
1073                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
1074                                return getProcessingResourceSpecification_processingRate_PCMRandomVariable();
1075                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
1076                                return getCommunicationLinkResourceSpecification_latency_PCMRandomVariable();
1077                }
1078                return super.eGet(featureID, resolve, coreType);
1079        }
1080 
1081        /**
1082         * <!-- begin-user-doc -->
1083         * <!-- end-user-doc -->
1084         * @generated
1085         */
1086        @Override
1087        public void eSet(int featureID, Object newValue) {
1088                switch (featureID) {
1089                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
1090                                setClosedWorkload_PCMRandomVariable((ClosedWorkload)newValue);
1091                                return;
1092                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
1093                                setPassiveResource_capacity_PCMRandomVariable((PassiveResource)newValue);
1094                                return;
1095                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
1096                                setVariableCharacterisation_Specification((VariableCharacterisation)newValue);
1097                                return;
1098                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
1099                                setInfrastructureCall__PCMRandomVariable((InfrastructureCall)newValue);
1100                                return;
1101                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
1102                                setResourceCall__PCMRandomVariable((ResourceCall)newValue);
1103                                return;
1104                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
1105                                setParametricResourceDemand_PCMRandomVariable((ParametricResourceDemand)newValue);
1106                                return;
1107                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
1108                                setLoopAction_PCMRandomVariable((LoopAction)newValue);
1109                                return;
1110                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
1111                                setGuardedBranchTransition_PCMRandomVariable((GuardedBranchTransition)newValue);
1112                                return;
1113                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
1114                                setSpecifiedExecutionTime_PCMRandomVariable((SpecifiedExecutionTime)newValue);
1115                                return;
1116                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
1117                                setEventChannelSinkConnector__FilterCondition((EventChannelSinkConnector)newValue);
1118                                return;
1119                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
1120                                setAssemblyEventConnector__FilterCondition((AssemblyEventConnector)newValue);
1121                                return;
1122                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
1123                                setLoop_LoopIteration((Loop)newValue);
1124                                return;
1125                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
1126                                setOpenWorkload_PCMRandomVariable((OpenWorkload)newValue);
1127                                return;
1128                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
1129                                setDelay_TimeSpecification((Delay)newValue);
1130                                return;
1131                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
1132                                setCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable((CommunicationLinkResourceSpecification)newValue);
1133                                return;
1134                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
1135                                setProcessingResourceSpecification_processingRate_PCMRandomVariable((ProcessingResourceSpecification)newValue);
1136                                return;
1137                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
1138                                setCommunicationLinkResourceSpecification_latency_PCMRandomVariable((CommunicationLinkResourceSpecification)newValue);
1139                                return;
1140                }
1141                super.eSet(featureID, newValue);
1142        }
1143 
1144        /**
1145         * <!-- begin-user-doc -->
1146         * <!-- end-user-doc -->
1147         * @generated
1148         */
1149        @Override
1150        public void eUnset(int featureID) {
1151                switch (featureID) {
1152                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
1153                                setClosedWorkload_PCMRandomVariable((ClosedWorkload)null);
1154                                return;
1155                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
1156                                setPassiveResource_capacity_PCMRandomVariable((PassiveResource)null);
1157                                return;
1158                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
1159                                setVariableCharacterisation_Specification((VariableCharacterisation)null);
1160                                return;
1161                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
1162                                setInfrastructureCall__PCMRandomVariable((InfrastructureCall)null);
1163                                return;
1164                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
1165                                setResourceCall__PCMRandomVariable((ResourceCall)null);
1166                                return;
1167                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
1168                                setParametricResourceDemand_PCMRandomVariable((ParametricResourceDemand)null);
1169                                return;
1170                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
1171                                setLoopAction_PCMRandomVariable((LoopAction)null);
1172                                return;
1173                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
1174                                setGuardedBranchTransition_PCMRandomVariable((GuardedBranchTransition)null);
1175                                return;
1176                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
1177                                setSpecifiedExecutionTime_PCMRandomVariable((SpecifiedExecutionTime)null);
1178                                return;
1179                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
1180                                setEventChannelSinkConnector__FilterCondition((EventChannelSinkConnector)null);
1181                                return;
1182                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
1183                                setAssemblyEventConnector__FilterCondition((AssemblyEventConnector)null);
1184                                return;
1185                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
1186                                setLoop_LoopIteration((Loop)null);
1187                                return;
1188                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
1189                                setOpenWorkload_PCMRandomVariable((OpenWorkload)null);
1190                                return;
1191                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
1192                                setDelay_TimeSpecification((Delay)null);
1193                                return;
1194                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
1195                                setCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable((CommunicationLinkResourceSpecification)null);
1196                                return;
1197                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
1198                                setProcessingResourceSpecification_processingRate_PCMRandomVariable((ProcessingResourceSpecification)null);
1199                                return;
1200                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
1201                                setCommunicationLinkResourceSpecification_latency_PCMRandomVariable((CommunicationLinkResourceSpecification)null);
1202                                return;
1203                }
1204                super.eUnset(featureID);
1205        }
1206 
1207        /**
1208         * <!-- begin-user-doc -->
1209         * <!-- end-user-doc -->
1210         * @generated
1211         */
1212        @Override
1213        public boolean eIsSet(int featureID) {
1214                switch (featureID) {
1215                        case CorePackage.PCM_RANDOM_VARIABLE__CLOSED_WORKLOAD_PCM_RANDOM_VARIABLE:
1216                                return getClosedWorkload_PCMRandomVariable() != null;
1217                        case CorePackage.PCM_RANDOM_VARIABLE__PASSIVE_RESOURCE_CAPACITY_PCM_RANDOM_VARIABLE:
1218                                return getPassiveResource_capacity_PCMRandomVariable() != null;
1219                        case CorePackage.PCM_RANDOM_VARIABLE__VARIABLE_CHARACTERISATION_SPECIFICATION:
1220                                return getVariableCharacterisation_Specification() != null;
1221                        case CorePackage.PCM_RANDOM_VARIABLE__INFRASTRUCTURE_CALL_PCM_RANDOM_VARIABLE:
1222                                return getInfrastructureCall__PCMRandomVariable() != null;
1223                        case CorePackage.PCM_RANDOM_VARIABLE__RESOURCE_CALL_PCM_RANDOM_VARIABLE:
1224                                return getResourceCall__PCMRandomVariable() != null;
1225                        case CorePackage.PCM_RANDOM_VARIABLE__PARAMETRIC_RESOURCE_DEMAND_PCM_RANDOM_VARIABLE:
1226                                return getParametricResourceDemand_PCMRandomVariable() != null;
1227                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_ACTION_PCM_RANDOM_VARIABLE:
1228                                return getLoopAction_PCMRandomVariable() != null;
1229                        case CorePackage.PCM_RANDOM_VARIABLE__GUARDED_BRANCH_TRANSITION_PCM_RANDOM_VARIABLE:
1230                                return getGuardedBranchTransition_PCMRandomVariable() != null;
1231                        case CorePackage.PCM_RANDOM_VARIABLE__SPECIFIED_EXECUTION_TIME_PCM_RANDOM_VARIABLE:
1232                                return getSpecifiedExecutionTime_PCMRandomVariable() != null;
1233                        case CorePackage.PCM_RANDOM_VARIABLE__EVENT_CHANNEL_SINK_CONNECTOR_FILTER_CONDITION:
1234                                return getEventChannelSinkConnector__FilterCondition() != null;
1235                        case CorePackage.PCM_RANDOM_VARIABLE__ASSEMBLY_EVENT_CONNECTOR_FILTER_CONDITION:
1236                                return getAssemblyEventConnector__FilterCondition() != null;
1237                        case CorePackage.PCM_RANDOM_VARIABLE__LOOP_LOOP_ITERATION:
1238                                return getLoop_LoopIteration() != null;
1239                        case CorePackage.PCM_RANDOM_VARIABLE__OPEN_WORKLOAD_PCM_RANDOM_VARIABLE:
1240                                return getOpenWorkload_PCMRandomVariable() != null;
1241                        case CorePackage.PCM_RANDOM_VARIABLE__DELAY_TIME_SPECIFICATION:
1242                                return getDelay_TimeSpecification() != null;
1243                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFCATION_THROUGHPUT_PCM_RANDOM_VARIABLE:
1244                                return getCommunicationLinkResourceSpecifcation_throughput_PCMRandomVariable() != null;
1245                        case CorePackage.PCM_RANDOM_VARIABLE__PROCESSING_RESOURCE_SPECIFICATION_PROCESSING_RATE_PCM_RANDOM_VARIABLE:
1246                                return getProcessingResourceSpecification_processingRate_PCMRandomVariable() != null;
1247                        case CorePackage.PCM_RANDOM_VARIABLE__COMMUNICATION_LINK_RESOURCE_SPECIFICATION_LATENCY_PCM_RANDOM_VARIABLE:
1248                                return getCommunicationLinkResourceSpecification_latency_PCMRandomVariable() != null;
1249                }
1250                return super.eIsSet(featureID);
1251        }
1252 
1253        /**
1254         * The cached environment for evaluating OCL expressions.
1255         * <!-- begin-user-doc -->
1256         * <!-- end-user-doc -->
1257         * @generated
1258         * @ordered
1259         */
1260        protected static final OCL EOCL_ENV = OCL.newInstance();
1261        /** Cached version of specification to decide if re-parsing is required. 
1262         * @generated NOT
1263         */
1264        private String lastParsedSpecification;
1265        /** Cached version of parsed specification to return if no re-parsing is required. 
1266         * @generated NOT
1267         */
1268        private Expression lastParseExpression;
1269        
1270        /**
1271         * Get the basic stochastic expression derived from the specification.
1272         * This overrides the RandomVariable implementation of this method and takes use of the parser and lexer
1273         * for our stochastic expression language.
1274         * 
1275         * @return The prepared Expression parsed from the specification string.
1276         * 
1277         * @generated not
1278         */
1279        @Override
1280        public Expression basicGetExpression() {
1281                if (specification == null)
1282                        return null;
1283                if (lastParseExpression == null || !lastParsedSpecification.equals(specification)) {
1284                        // re-parsing required
1285                        MyPCMStoExLexer lexer = new MyPCMStoExLexer(new ANTLRStringStream(this.getSpecification()));
1286                        MyPCMStoExParser parser = new MyPCMStoExParser(new CommonTokenStream(lexer));
1287                        Expression e;
1288                        try {
1289                                e = parser.expression();
1290                        } catch (RecognitionException e1) {
1291                                e = null;
1292                        }
1293                        if (parser.hasErrors()) {
1294                                e = null;
1295                        }
1296                        lastParseExpression = e;
1297                        lastParsedSpecification = new String(specification);
1298                } else {
1299                        // old parsed result can be returned
1300                }
1301                return lastParseExpression;
1302        }
1303 
1304} //PCMRandomVariableImpl

[all classes][de.uka.ipd.sdq.pcm.core.impl]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov