/** * <copyright> * </copyright> * * $Id: ForEachImpl.java,v 1.15 2011/03/30 18:54:25 rbrodt Exp $ */ package org.eclipse.bpel.model.impl; import org.eclipse.bpel.model.Activity; import org.eclipse.bpel.model.BPELPackage; import org.eclipse.bpel.model.CompletionCondition; import org.eclipse.bpel.model.Expression; import org.eclipse.bpel.model.ForEach; import org.eclipse.bpel.model.Variable; import org.eclipse.bpel.model.util.BPELConstants; import org.eclipse.bpel.model.util.BPELUtils; import org.eclipse.bpel.model.util.ElementFactory; import org.eclipse.bpel.model.util.ReconciliationHelper; 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; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>For Each</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.bpel.model.impl.ForEachImpl#getStartCounterValue <em>Start Counter Value</em>}</li> * <li>{@link org.eclipse.bpel.model.impl.ForEachImpl#getFinalCounterValue <em>Final Counter Value</em>}</li> * <li>{@link org.eclipse.bpel.model.impl.ForEachImpl#getParallel <em>Parallel</em>}</li> * <li>{@link org.eclipse.bpel.model.impl.ForEachImpl#getCounterName <em>Counter Name</em>}</li> * <li>{@link org.eclipse.bpel.model.impl.ForEachImpl#getCompletionCondition <em>Completion Condition</em>}</li> * <li>{@link org.eclipse.bpel.model.impl.ForEachImpl#getActivity <em>Activity</em>}</li> * </ul> * </p> * * @generated */ public class ForEachImpl extends ActivityImpl implements ForEach { /** * The cached value of the '{@link #getStartCounterValue() <em>Start Counter Value</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getStartCounterValue() * @generated * @ordered */ protected Expression startCounterValue; /** * The cached value of the '{@link #getFinalCounterValue() <em>Final Counter Value</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getFinalCounterValue() * @generated * @ordered */ protected Expression finalCounterValue; /** * The default value of the '{@link #getParallel() <em>Parallel</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getParallel() * @generated * @ordered */ protected static final Boolean PARALLEL_EDEFAULT = Boolean.FALSE; /** * The cached value of the '{@link #getParallel() <em>Parallel</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getParallel() * @generated * @ordered */ protected Boolean parallel = PARALLEL_EDEFAULT; /** * The cached value of the '{@link #getCounterName() <em>Counter Name</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getCounterName() * @generated * @ordered */ protected Variable counterName; /** * The cached value of the '{@link #getCompletionCondition() <em>Completion Condition</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getCompletionCondition() * @generated * @ordered */ protected CompletionCondition completionCondition; /** * The cached value of the '{@link #getActivity() <em>Activity</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getActivity() * @generated * @ordered */ protected Activity activity; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ForEachImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return BPELPackage.Literals.FOR_EACH; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Expression getStartCounterValue() { return startCounterValue; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public NotificationChain basicSetStartCounterValue( Expression newStartCounterValue, NotificationChain msgs) { Expression oldStartCounterValue = startCounterValue; if (!isReconciling) { if (newStartCounterValue != null && newStartCounterValue.getElement() == null && !ReconciliationHelper.isLoading(this)) { newStartCounterValue.setElement(ElementFactory.getInstance() .createExpressionElement(newStartCounterValue, this, BPELConstants.ND_START_COUNTER_VALUE)); } ReconciliationHelper.replaceChild(this, oldStartCounterValue, newStartCounterValue); } startCounterValue = newStartCounterValue; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__START_COUNTER_VALUE, oldStartCounterValue, newStartCounterValue); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setStartCounterValue(Expression newStartCounterValue) { if (newStartCounterValue != startCounterValue) { NotificationChain msgs = null; if (startCounterValue != null) msgs = ((InternalEObject) startCounterValue).eInverseRemove( this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__START_COUNTER_VALUE, null, msgs); if (newStartCounterValue != null) msgs = ((InternalEObject) newStartCounterValue).eInverseAdd( this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__START_COUNTER_VALUE, null, msgs); msgs = basicSetStartCounterValue(newStartCounterValue, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__START_COUNTER_VALUE, newStartCounterValue, newStartCounterValue)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Expression getFinalCounterValue() { return finalCounterValue; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public NotificationChain basicSetFinalCounterValue( Expression newFinalCounterValue, NotificationChain msgs) { Expression oldFinalCounterValue = finalCounterValue; if (!isReconciling) { if (newFinalCounterValue != null && newFinalCounterValue.getElement() == null && !ReconciliationHelper.isLoading(this)) { newFinalCounterValue.setElement(ElementFactory.getInstance() .createExpressionElement(newFinalCounterValue, this, BPELConstants.ND_FINAL_COUNTER_VALUE)); } ReconciliationHelper.replaceChild(this, oldFinalCounterValue, newFinalCounterValue); } finalCounterValue = newFinalCounterValue; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE, oldFinalCounterValue, newFinalCounterValue); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setFinalCounterValue(Expression newFinalCounterValue) { if (newFinalCounterValue != finalCounterValue) { NotificationChain msgs = null; if (finalCounterValue != null) msgs = ((InternalEObject) finalCounterValue).eInverseRemove( this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE, null, msgs); if (newFinalCounterValue != null) msgs = ((InternalEObject) newFinalCounterValue).eInverseAdd( this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE, null, msgs); msgs = basicSetFinalCounterValue(newFinalCounterValue, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE, newFinalCounterValue, newFinalCounterValue)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Boolean getParallel() { return parallel; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public void setParallel(Boolean newParallel) { Boolean oldParallel = parallel; if (!isReconciling) { ReconciliationHelper.replaceAttribute(this, BPELConstants.AT_PARALLEL, BPELUtils.boolean2XML(newParallel)); } parallel = newParallel; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__PARALLEL, oldParallel, parallel)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Variable getCounterName() { return counterName; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public NotificationChain basicSetCounterName(Variable newCounterName, NotificationChain msgs) { Variable oldCounterName = counterName; if (!isReconciling) { ReconciliationHelper.replaceAttribute(this, BPELConstants.AT_COUNTER_NAME, newCounterName != null ? newCounterName.getName() : null); } counterName = newCounterName; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__COUNTER_NAME, oldCounterName, newCounterName); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setCounterName(Variable newCounterName) { if (newCounterName != counterName) { NotificationChain msgs = null; if (counterName != null) msgs = ((InternalEObject) counterName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__COUNTER_NAME, null, msgs); if (newCounterName != null) msgs = ((InternalEObject) newCounterName).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__COUNTER_NAME, null, msgs); msgs = basicSetCounterName(newCounterName, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__COUNTER_NAME, newCounterName, newCounterName)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public CompletionCondition getCompletionCondition() { return completionCondition; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public NotificationChain basicSetCompletionCondition( CompletionCondition newCompletionCondition, NotificationChain msgs) { CompletionCondition oldCompletionCondition = completionCondition; if (!isReconciling) { ReconciliationHelper.replaceChild(this, oldCompletionCondition, newCompletionCondition); } completionCondition = newCompletionCondition; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__COMPLETION_CONDITION, oldCompletionCondition, newCompletionCondition); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setCompletionCondition( CompletionCondition newCompletionCondition) { if (newCompletionCondition != completionCondition) { NotificationChain msgs = null; if (completionCondition != null) msgs = ((InternalEObject) completionCondition).eInverseRemove( this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__COMPLETION_CONDITION, null, msgs); if (newCompletionCondition != null) msgs = ((InternalEObject) newCompletionCondition).eInverseAdd( this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__COMPLETION_CONDITION, null, msgs); msgs = basicSetCompletionCondition(newCompletionCondition, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__COMPLETION_CONDITION, newCompletionCondition, newCompletionCondition)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Activity getActivity() { return activity; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public NotificationChain basicSetActivity(Activity newActivity, NotificationChain msgs) { Activity oldActivity = activity; if (!isReconciling) { ReconciliationHelper.replaceChild(this, oldActivity, newActivity); } activity = newActivity; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__ACTIVITY, oldActivity, newActivity); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setActivity(Activity newActivity) { if (newActivity != activity) { NotificationChain msgs = null; if (activity != null) msgs = ((InternalEObject) activity) .eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__ACTIVITY, null, msgs); if (newActivity != null) msgs = ((InternalEObject) newActivity) .eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BPELPackage.FOR_EACH__ACTIVITY, null, msgs); msgs = basicSetActivity(newActivity, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, BPELPackage.FOR_EACH__ACTIVITY, newActivity, newActivity)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case BPELPackage.FOR_EACH__START_COUNTER_VALUE: return basicSetStartCounterValue(null, msgs); case BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE: return basicSetFinalCounterValue(null, msgs); case BPELPackage.FOR_EACH__COUNTER_NAME: return basicSetCounterName(null, msgs); case BPELPackage.FOR_EACH__COMPLETION_CONDITION: return basicSetCompletionCondition(null, msgs); case BPELPackage.FOR_EACH__ACTIVITY: return basicSetActivity(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 BPELPackage.FOR_EACH__START_COUNTER_VALUE: return getStartCounterValue(); case BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE: return getFinalCounterValue(); case BPELPackage.FOR_EACH__PARALLEL: return getParallel(); case BPELPackage.FOR_EACH__COUNTER_NAME: return getCounterName(); case BPELPackage.FOR_EACH__COMPLETION_CONDITION: return getCompletionCondition(); case BPELPackage.FOR_EACH__ACTIVITY: return getActivity(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case BPELPackage.FOR_EACH__START_COUNTER_VALUE: setStartCounterValue((Expression) newValue); return; case BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE: setFinalCounterValue((Expression) newValue); return; case BPELPackage.FOR_EACH__PARALLEL: setParallel((Boolean) newValue); return; case BPELPackage.FOR_EACH__COUNTER_NAME: setCounterName((Variable) newValue); return; case BPELPackage.FOR_EACH__COMPLETION_CONDITION: setCompletionCondition((CompletionCondition) newValue); return; case BPELPackage.FOR_EACH__ACTIVITY: setActivity((Activity) newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case BPELPackage.FOR_EACH__START_COUNTER_VALUE: setStartCounterValue((Expression) null); return; case BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE: setFinalCounterValue((Expression) null); return; case BPELPackage.FOR_EACH__PARALLEL: setParallel(PARALLEL_EDEFAULT); return; case BPELPackage.FOR_EACH__COUNTER_NAME: setCounterName((Variable) null); return; case BPELPackage.FOR_EACH__COMPLETION_CONDITION: setCompletionCondition((CompletionCondition) null); return; case BPELPackage.FOR_EACH__ACTIVITY: setActivity((Activity) null); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case BPELPackage.FOR_EACH__START_COUNTER_VALUE: return startCounterValue != null; case BPELPackage.FOR_EACH__FINAL_COUNTER_VALUE: return finalCounterValue != null; case BPELPackage.FOR_EACH__PARALLEL: return PARALLEL_EDEFAULT == null ? parallel != null : !PARALLEL_EDEFAULT.equals(parallel); case BPELPackage.FOR_EACH__COUNTER_NAME: return counterName != null; case BPELPackage.FOR_EACH__COMPLETION_CONDITION: return completionCondition != null; case BPELPackage.FOR_EACH__ACTIVITY: return activity != 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(" (parallel: "); //$NON-NLS-1$ result.append(parallel); result.append(')'); return result.toString(); } } //ForEachImpl