/* * Copyright (c) 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - initial API and implementation * * $Id: ConnectableElementTemplateParameterImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ */ package org.eclipse.uml2.uml.internal.impl; import java.util.List; 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.EStructuralFeature; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.uml2.uml.ConnectableElement; import org.eclipse.uml2.uml.ConnectableElementTemplateParameter; import org.eclipse.uml2.uml.ParameterableElement; import org.eclipse.uml2.uml.UMLPackage; /** * * An implementation of the model object 'Connectable Element Template Parameter'. * *

* The following features are implemented: *

*

* * @generated */ public class ConnectableElementTemplateParameterImpl extends TemplateParameterImpl implements ConnectableElementTemplateParameter { /** * * * @generated */ protected ConnectableElementTemplateParameterImpl() { super(); } /** * * * @generated */ protected EClass eStaticClass() { return UMLPackage.eINSTANCE.getConnectableElementTemplateParameter(); } /** * * * @generated */ public ParameterableElement getParameteredElement() { ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); if (parameteredElement != null && parameteredElement.eIsProxy()) { ParameterableElement oldParameteredElement = parameteredElement; parameteredElement = (ParameterableElement) eResolveProxy((InternalEObject) parameteredElement); if (parameteredElement != oldParameteredElement) { eVirtualSet( UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, parameteredElement); if (eNotificationRequired()) eNotify(new ENotificationImpl( this, Notification.RESOLVE, UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, oldParameteredElement, parameteredElement)); } } return parameteredElement; } /** * * * @generated */ public ParameterableElement basicGetParameteredElement() { return (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); } /** * * * @generated */ public NotificationChain basicSetParameteredElement( ParameterableElement newParameteredElement, NotificationChain msgs) { Object oldParameteredElement = eVirtualSet( UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, newParameteredElement); if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, oldParameteredElement == EVIRTUAL_NO_VALUE ? null : oldParameteredElement, newParameteredElement); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * * * @generated */ public void setParameteredElement(ParameterableElement newParameteredElement) { ParameterableElement parameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT); if (newParameteredElement != parameteredElement) { NotificationChain msgs = null; if (parameteredElement != null) msgs = ((InternalEObject) parameteredElement).eInverseRemove( this, UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, ConnectableElement.class, msgs); if (newParameteredElement != null) msgs = ((InternalEObject) newParameteredElement).eInverseAdd( this, UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, ConnectableElement.class, msgs); msgs = basicSetParameteredElement(newParameteredElement, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl( this, Notification.SET, UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, newParameteredElement, newParameteredElement)); } /** * * * @generated */ public boolean isSetParameteredElement() { return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; } /** * * * @generated */ public Object eGet(EStructuralFeature eFeature, boolean resolve) { switch (eDerivedStructuralFeatureID(eFeature)) { case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__EANNOTATIONS : return getEAnnotations(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_ELEMENT : return getOwnedElements(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNER : if (resolve) return getOwner(); return basicGetOwner(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT : return getOwnedComments(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__SIGNATURE : return getSignature(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : return getOwnedParameteredElement(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT : if (resolve) return getDefault(); return basicGetDefault(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT : return getOwnedDefault(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : if (resolve) return getParameteredElement(); return basicGetParameteredElement(); } return eDynamicGet(eFeature, resolve); } /** * * * @generated */ public boolean eIsSet(EStructuralFeature eFeature) { switch (eDerivedStructuralFeatureID(eFeature)) { case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__EANNOTATIONS : return eAnnotations != null && !eAnnotations.isEmpty(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_ELEMENT : return isSetOwnedElements(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNER : return isSetOwner(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT : List ownedComment = (List) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_COMMENT); return ownedComment != null && !ownedComment.isEmpty(); case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__SIGNATURE : return getSignature() != null; case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT : return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT) != null; case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT : return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__DEFAULT) != null; case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT : return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__OWNED_DEFAULT) != null; case UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT : return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null; } return eDynamicIsSet(eFeature); } } //ConnectableElementTemplateParameterImpl