/** */ package org.eclipse.viatra.dse.examples.simplifiedbpmn.impl; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceType; import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceTypeVariant; import org.eclipse.viatra.dse.examples.simplifiedbpmn.SimplifiedbpmnPackage; import org.eclipse.viatra.dse.examples.simplifiedbpmn.Task; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Task</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.viatra.dse.examples.simplifiedbpmn.impl.TaskImpl#getExecutionTime <em>Execution Time</em>}</li> * <li>{@link org.eclipse.viatra.dse.examples.simplifiedbpmn.impl.TaskImpl#getResourceNeeded <em>Resource Needed</em>}</li> * <li>{@link org.eclipse.viatra.dse.examples.simplifiedbpmn.impl.TaskImpl#getVariant <em>Variant</em>}</li> * </ul> * </p> * * @generated */ public class TaskImpl extends BaseElementImpl implements Task { /** * The default value of the '{@link #getExecutionTime() <em>Execution Time</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getExecutionTime() * @generated * @ordered */ protected static final int EXECUTION_TIME_EDEFAULT = 0; /** * The cached value of the '{@link #getExecutionTime() <em>Execution Time</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getExecutionTime() * @generated * @ordered */ protected int executionTime = EXECUTION_TIME_EDEFAULT; /** * The cached value of the '{@link #getResourceNeeded() <em>Resource Needed</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getResourceNeeded() * @generated * @ordered */ protected ResourceType resourceNeeded; /** * The cached value of the '{@link #getVariant() <em>Variant</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getVariant() * @generated * @ordered */ protected ResourceTypeVariant variant; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TaskImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return SimplifiedbpmnPackage.Literals.TASK; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getExecutionTime() { return executionTime; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setExecutionTime(int newExecutionTime) { int oldExecutionTime = executionTime; executionTime = newExecutionTime; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimplifiedbpmnPackage.TASK__EXECUTION_TIME, oldExecutionTime, executionTime)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ResourceType getResourceNeeded() { if (resourceNeeded != null && resourceNeeded.eIsProxy()) { InternalEObject oldResourceNeeded = (InternalEObject)resourceNeeded; resourceNeeded = (ResourceType)eResolveProxy(oldResourceNeeded); if (resourceNeeded != oldResourceNeeded) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED, oldResourceNeeded, resourceNeeded)); } } return resourceNeeded; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ResourceType basicGetResourceNeeded() { return resourceNeeded; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetResourceNeeded(ResourceType newResourceNeeded, NotificationChain msgs) { ResourceType oldResourceNeeded = resourceNeeded; resourceNeeded = newResourceNeeded; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED, oldResourceNeeded, newResourceNeeded); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setResourceNeeded(ResourceType newResourceNeeded) { if (newResourceNeeded != resourceNeeded) { NotificationChain msgs = null; if (resourceNeeded != null) msgs = ((InternalEObject)resourceNeeded).eInverseRemove(this, SimplifiedbpmnPackage.RESOURCE_TYPE__USED_BY_TASKS, ResourceType.class, msgs); if (newResourceNeeded != null) msgs = ((InternalEObject)newResourceNeeded).eInverseAdd(this, SimplifiedbpmnPackage.RESOURCE_TYPE__USED_BY_TASKS, ResourceType.class, msgs); msgs = basicSetResourceNeeded(newResourceNeeded, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED, newResourceNeeded, newResourceNeeded)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ResourceTypeVariant getVariant() { if (variant != null && variant.eIsProxy()) { InternalEObject oldVariant = (InternalEObject)variant; variant = (ResourceTypeVariant)eResolveProxy(oldVariant); if (variant != oldVariant) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, SimplifiedbpmnPackage.TASK__VARIANT, oldVariant, variant)); } } return variant; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ResourceTypeVariant basicGetVariant() { return variant; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setVariant(ResourceTypeVariant newVariant) { ResourceTypeVariant oldVariant = variant; variant = newVariant; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimplifiedbpmnPackage.TASK__VARIANT, oldVariant, variant)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED: if (resourceNeeded != null) msgs = ((InternalEObject)resourceNeeded).eInverseRemove(this, SimplifiedbpmnPackage.RESOURCE_TYPE__USED_BY_TASKS, ResourceType.class, msgs); return basicSetResourceNeeded((ResourceType)otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED: return basicSetResourceNeeded(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case SimplifiedbpmnPackage.TASK__EXECUTION_TIME: return getExecutionTime(); case SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED: if (resolve) return getResourceNeeded(); return basicGetResourceNeeded(); case SimplifiedbpmnPackage.TASK__VARIANT: if (resolve) return getVariant(); return basicGetVariant(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case SimplifiedbpmnPackage.TASK__EXECUTION_TIME: setExecutionTime((Integer)newValue); return; case SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED: setResourceNeeded((ResourceType)newValue); return; case SimplifiedbpmnPackage.TASK__VARIANT: setVariant((ResourceTypeVariant)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case SimplifiedbpmnPackage.TASK__EXECUTION_TIME: setExecutionTime(EXECUTION_TIME_EDEFAULT); return; case SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED: setResourceNeeded((ResourceType)null); return; case SimplifiedbpmnPackage.TASK__VARIANT: setVariant((ResourceTypeVariant)null); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case SimplifiedbpmnPackage.TASK__EXECUTION_TIME: return executionTime != EXECUTION_TIME_EDEFAULT; case SimplifiedbpmnPackage.TASK__RESOURCE_NEEDED: return resourceNeeded != null; case SimplifiedbpmnPackage.TASK__VARIANT: return variant != null; } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (executionTime: "); result.append(executionTime); result.append(')'); return result.toString(); } } //TaskImpl