/** */ package org.etsi.mts.tdl.impl; import java.lang.reflect.InvocationTargetException; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.WrappedException; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.etsi.mts.tdl.Assignment; import org.etsi.mts.tdl.AtomicBehaviour; import org.etsi.mts.tdl.Behaviour; import org.etsi.mts.tdl.ComponentInstance; import org.etsi.mts.tdl.DataUse; import org.etsi.mts.tdl.VariableUse; import org.etsi.mts.tdl.tdlPackage; /** * * An implementation of the model object 'Assignment'. * *

* The following features are implemented: *

* * * @generated */ public class AssignmentImpl extends AtomicBehaviourImpl implements Assignment { /** * The cached value of the '{@link #getVariable() Variable}' containment reference. * * * @see #getVariable() * @generated * @ordered */ protected VariableUse variable; /** * The cached value of the '{@link #getExpression() Expression}' containment reference. * * * @see #getExpression() * @generated * @ordered */ protected DataUse expression; /** * * * @generated */ protected AssignmentImpl() { super(); } /** * * * @generated */ @Override protected EClass eStaticClass() { return tdlPackage.Literals.ASSIGNMENT; } /** * * * @generated */ @Override public VariableUse getVariable() { return variable; } /** * * * @generated */ public NotificationChain basicSetVariable(VariableUse newVariable, NotificationChain msgs) { VariableUse oldVariable = variable; variable = newVariable; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__VARIABLE, oldVariable, newVariable); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * * * @generated */ @Override public void setVariable(VariableUse newVariable) { if (newVariable != variable) { NotificationChain msgs = null; if (variable != null) msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__VARIABLE, null, msgs); if (newVariable != null) msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__VARIABLE, null, msgs); msgs = basicSetVariable(newVariable, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__VARIABLE, newVariable, newVariable)); } /** * * * @generated */ @Override public DataUse getExpression() { return expression; } /** * * * @generated */ public NotificationChain basicSetExpression(DataUse newExpression, NotificationChain msgs) { DataUse oldExpression = expression; expression = newExpression; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__EXPRESSION, oldExpression, newExpression); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * * * @generated */ @Override public void setExpression(DataUse newExpression) { if (newExpression != expression) { NotificationChain msgs = null; if (expression != null) msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__EXPRESSION, null, msgs); if (newExpression != null) msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__EXPRESSION, null, msgs); msgs = basicSetExpression(newExpression, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__EXPRESSION, newExpression, newExpression)); } /** * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. * * * @see #getParticipatingComponents() * @generated * @ordered */ protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); /** * * * @generated */ @SuppressWarnings("unchecked") @Override public EList getParticipatingComponents() { try { return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); } catch (InvocationTargetException ite) { throw new WrappedException(ite); } } /** * * * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case tdlPackage.ASSIGNMENT__VARIABLE: return basicSetVariable(null, msgs); case tdlPackage.ASSIGNMENT__EXPRESSION: return basicSetExpression(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case tdlPackage.ASSIGNMENT__VARIABLE: return getVariable(); case tdlPackage.ASSIGNMENT__EXPRESSION: return getExpression(); } return super.eGet(featureID, resolve, coreType); } /** * * * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case tdlPackage.ASSIGNMENT__VARIABLE: setVariable((VariableUse)newValue); return; case tdlPackage.ASSIGNMENT__EXPRESSION: setExpression((DataUse)newValue); return; } super.eSet(featureID, newValue); } /** * * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case tdlPackage.ASSIGNMENT__VARIABLE: setVariable((VariableUse)null); return; case tdlPackage.ASSIGNMENT__EXPRESSION: setExpression((DataUse)null); return; } super.eUnset(featureID); } /** * * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case tdlPackage.ASSIGNMENT__VARIABLE: return variable != null; case tdlPackage.ASSIGNMENT__EXPRESSION: return expression != null; } return super.eIsSet(featureID); } /** * * * @generated */ @Override public int eDerivedOperationID(int baseOperationID, Class baseClass) { if (baseClass == Behaviour.class) { switch (baseOperationID) { case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS; default: return super.eDerivedOperationID(baseOperationID, baseClass); } } if (baseClass == AtomicBehaviour.class) { switch (baseOperationID) { case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS; default: return super.eDerivedOperationID(baseOperationID, baseClass); } } return super.eDerivedOperationID(baseOperationID, baseClass); } /** * * * @generated */ @Override public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { switch (operationID) { case tdlPackage.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS: return getParticipatingComponents(); } return super.eInvoke(operationID, arguments); } } //AssignmentImpl