| /** |
| * <copyright> |
| * </copyright> |
| * |
| * $Id: FromPartImpl.java,v 1.11 2011/03/30 18:54:25 rbrodt Exp $ |
| */ |
| package org.eclipse.bpel.model.impl; |
| |
| import javax.wsdl.Input; |
| |
| import org.eclipse.bpel.model.BPELPackage; |
| import org.eclipse.bpel.model.FromPart; |
| import org.eclipse.bpel.model.FromParts; |
| import org.eclipse.bpel.model.PartnerActivity; |
| import org.eclipse.bpel.model.Variable; |
| import org.eclipse.bpel.model.proxy.PartProxy; |
| import org.eclipse.bpel.model.util.BPELConstants; |
| import org.eclipse.bpel.model.util.ReconciliationHelper; |
| import org.eclipse.emf.common.notify.Notification; |
| import org.eclipse.emf.ecore.EClass; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.emf.ecore.InternalEObject; |
| import org.eclipse.emf.ecore.impl.ENotificationImpl; |
| import org.eclipse.wst.wsdl.Message; |
| import org.eclipse.wst.wsdl.Operation; |
| import org.eclipse.wst.wsdl.Part; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * An implementation of the model object '<em><b>From Part</b></em>'. |
| * <!-- end-user-doc --> |
| * <p> |
| * The following features are implemented: |
| * <ul> |
| * <li>{@link org.eclipse.bpel.model.impl.FromPartImpl#getToVariable <em>To Variable</em>}</li> |
| * <li>{@link org.eclipse.bpel.model.impl.FromPartImpl#getPart <em>Part</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @generated |
| */ |
| public class FromPartImpl extends BPELExtensibleElementImpl implements FromPart { |
| /** |
| * The cached value of the '{@link #getToVariable() <em>To Variable</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getToVariable() |
| * @generated |
| * @ordered |
| */ |
| protected Variable toVariable; |
| |
| /** |
| * The cached value of the '{@link #getPart() <em>Part</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getPart() |
| * @generated |
| * @ordered |
| */ |
| protected Part part; |
| |
| /** |
| * The deserialized value of the part name. |
| * @customized |
| */ |
| protected String partName = null; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected FromPartImpl() { |
| super(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| protected EClass eStaticClass() { |
| return BPELPackage.Literals.FROM_PART; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Variable getToVariable() { |
| if (toVariable != null && toVariable.eIsProxy()) { |
| InternalEObject oldToVariable = (InternalEObject) toVariable; |
| toVariable = (Variable) eResolveProxy(oldToVariable); |
| if (toVariable != oldToVariable) { |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.RESOLVE, |
| BPELPackage.FROM_PART__TO_VARIABLE, oldToVariable, |
| toVariable)); |
| } |
| } |
| return toVariable; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Variable basicGetToVariable() { |
| return toVariable; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| */ |
| public void setToVariable(Variable newToVariable) { |
| Variable oldToVariable = toVariable; |
| if (!isReconciling) { |
| ReconciliationHelper.replaceAttribute(this, |
| BPELConstants.AT_TO_VARIABLE, newToVariable == null ? null |
| : newToVariable.getName()); |
| } |
| toVariable = newToVariable; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, |
| BPELPackage.FROM_PART__TO_VARIABLE, oldToVariable, |
| toVariable)); |
| } |
| |
| /** |
| * Customizes {@link #getPartGen()} to lazy-resolve the part name. |
| * @customized |
| */ |
| public Part getPart() { |
| if (part == null && partName != null) { |
| EObject container = this.eContainer; |
| if (container != null && container instanceof FromParts) { |
| FromParts fromParts = (FromParts) container; |
| container = fromParts.eContainer(); |
| if (container != null && container instanceof PartnerActivity) { |
| PartnerActivity partnerActivity = (PartnerActivity) container; |
| if (partnerActivity != null) { |
| Operation operation = partnerActivity.getOperation(); |
| if (operation != null) { |
| Input input = operation.getInput(); |
| if (input != null) { |
| javax.wsdl.Message message = input.getMessage(); |
| if (message != null) { |
| // Create an part proxy with the deserialized part name. |
| part = new PartProxy(eResource(), |
| (Message) message, partName); |
| partName = null; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| return getPartGen(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Part getPartGen() { |
| if (part != null && part.eIsProxy()) { |
| InternalEObject oldPart = (InternalEObject) part; |
| part = (Part) eResolveProxy(oldPart); |
| if (part != oldPart) { |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.RESOLVE, |
| BPELPackage.FROM_PART__PART, oldPart, part)); |
| } |
| } |
| return part; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Part basicGetPart() { |
| return part; |
| } |
| |
| /** |
| * Set the deserialized value of the part name. |
| * @customized |
| */ |
| public void setPartName(String newPartName) { |
| |
| partName = newPartName; |
| } |
| |
| /** |
| * Get the deserialized value of the part name. |
| * @customized |
| */ |
| public String getPartName() { |
| |
| return partName; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| */ |
| public void setPart(Part newPart) { |
| Part oldPart = part; |
| if (!isReconciling) { |
| ReconciliationHelper.replaceAttribute(this, BPELConstants.AT_PART, |
| newPart.getName()); |
| } |
| part = newPart; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, |
| BPELPackage.FROM_PART__PART, oldPart, part)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public Object eGet(int featureID, boolean resolve, boolean coreType) { |
| switch (featureID) { |
| case BPELPackage.FROM_PART__TO_VARIABLE: |
| if (resolve) |
| return getToVariable(); |
| return basicGetToVariable(); |
| case BPELPackage.FROM_PART__PART: |
| if (resolve) |
| return getPart(); |
| return basicGetPart(); |
| } |
| 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.FROM_PART__TO_VARIABLE: |
| setToVariable((Variable) newValue); |
| return; |
| case BPELPackage.FROM_PART__PART: |
| setPart((Part) newValue); |
| return; |
| } |
| super.eSet(featureID, newValue); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void eUnset(int featureID) { |
| switch (featureID) { |
| case BPELPackage.FROM_PART__TO_VARIABLE: |
| setToVariable((Variable) null); |
| return; |
| case BPELPackage.FROM_PART__PART: |
| setPart((Part) null); |
| return; |
| } |
| super.eUnset(featureID); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public boolean eIsSet(int featureID) { |
| switch (featureID) { |
| case BPELPackage.FROM_PART__TO_VARIABLE: |
| return toVariable != null; |
| case BPELPackage.FROM_PART__PART: |
| return part != null; |
| } |
| return super.eIsSet(featureID); |
| } |
| |
| } //FromPartImpl |