diff options
Diffstat (limited to 'plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java')
-rw-r--r-- | plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java | 2030 |
1 files changed, 2030 insertions, 0 deletions
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java new file mode 100644 index 00000000..fbab9232 --- /dev/null +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java @@ -0,0 +1,2030 @@ +/* + * 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: OperationImpl.java,v 1.1 2005/11/14 22:26:03 khussey Exp $ + */ +package org.eclipse.uml2.uml.internal.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.DiagnosticChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.uml2.common.util.CacheAdapter; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.common.util.SubsetEObjectEList; +import org.eclipse.uml2.common.util.SupersetEObjectContainmentWithInverseEList; + +import org.eclipse.uml2.uml.CallConcurrencyKind; +import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.DataType; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.OperationTemplateParameter; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.RedefinableElement; +import org.eclipse.uml2.uml.StringExpression; +import org.eclipse.uml2.uml.TemplateBinding; +import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.TemplateSignature; +import org.eclipse.uml2.uml.TemplateableElement; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLFactory; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.OperationOperations; +import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations; +import org.eclipse.uml2.uml.internal.operations.TemplateableElementOperations; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Operation</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateParameter <em>Template Parameter</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedElements <em>Owned Element</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateBindings <em>Template Binding</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getFeaturingClassifiers <em>Featuring Classifier</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedElements <em>Redefined Element</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedRules <em>Owned Rule</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isQuery <em>Is Query</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isOrdered <em>Is Ordered</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isUnique <em>Is Unique</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getLower <em>Lower</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getUpper <em>Upper</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getClass_ <em>Class </em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getPreconditions <em>Precondition</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getPostconditions <em>Postcondition</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedOperations <em>Redefined Operation</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getDatatype <em>Datatype</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getBodyCondition <em>Body Condition</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getType <em>Type</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getInterface <em>Interface</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedParameters <em>Owned Parameter</em>}</li> + * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRaisedExceptions <em>Raised Exception</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class OperationImpl + extends BehavioralFeatureImpl + implements Operation { + + /** + * A bit field representing the indices of non-primitive feature values. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int eVirtualIndexBits1 = 0; + + /** + * The default value of the '{@link #isQuery() <em>Is Query</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isQuery() + * @generated + * @ordered + */ + protected static final boolean IS_QUERY_EDEFAULT = false; + + /** + * The flag representing the value of the '{@link #isQuery() <em>Is Query</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isQuery() + * @generated + * @ordered + */ + protected static final int IS_QUERY_EFLAG = 1 << 11; + + /** + * The default value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_ORDERED_EDEFAULT = false; + + /** + * The default value of the '{@link #isUnique() <em>Is Unique</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isUnique() + * @generated + * @ordered + */ + protected static final boolean IS_UNIQUE_EDEFAULT = true; + + /** + * The default value of the '{@link #getLower() <em>Lower</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLower() + * @generated + * @ordered + */ + protected static final int LOWER_EDEFAULT = 1; + + /** + * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUpper() + * @generated + * @ordered + */ + protected static final int UPPER_EDEFAULT = 1; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OperationImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return UMLPackage.eINSTANCE.getOperation(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter getTemplateParameter() { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + if (templateParameter != null && templateParameter.eIsProxy()) { + TemplateParameter oldTemplateParameter = templateParameter; + templateParameter = (TemplateParameter) eResolveProxy((InternalEObject) templateParameter); + if (templateParameter != oldTemplateParameter) { + eVirtualSet(UMLPackage.OPERATION__TEMPLATE_PARAMETER, + templateParameter); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + UMLPackage.OPERATION__TEMPLATE_PARAMETER, + oldTemplateParameter, templateParameter)); + } + } + return templateParameter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + Object oldTemplateParameter = eVirtualSet( + UMLPackage.OPERATION__TEMPLATE_PARAMETER, newTemplateParameter); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, UMLPackage.OPERATION__TEMPLATE_PARAMETER, + oldTemplateParameter == EVIRTUAL_NO_VALUE + ? null + : oldTemplateParameter, newTemplateParameter); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + if (newTemplateParameter != templateParameter) { + NotificationChain msgs = null; + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + OperationTemplateParameter.class, msgs); + if (newTemplateParameter != null) + msgs = ((InternalEObject) newTemplateParameter) + .eInverseAdd( + this, + UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + OperationTemplateParameter.class, msgs); + msgs = basicSetTemplateParameter(newTemplateParameter, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__TEMPLATE_PARAMETER, newTemplateParameter, + newTemplateParameter)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetTemplateParameter() { + return eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER) != null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + if (eContainerFeatureID != UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER) + return null; + return (TemplateParameter) eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + EObject oldOwningTemplateParameter = eContainer; + if (newOwningTemplateParameter != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { + if (EcoreUtil + .isAncestor(this, (EObject) newOwningTemplateParameter)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwningTemplateParameter != null) + msgs = ((InternalEObject) newOwningTemplateParameter) + .eInverseAdd( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + msgs = eBasicSetContainer( + (InternalEObject) newOwningTemplateParameter, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter, newOwningTemplateParameter)); + + if (newOwningTemplateParameter != null + || oldOwningTemplateParameter == eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER)) { + setTemplateParameter(newOwningTemplateParameter); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getOwnedElements() { + List ownedElement = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_ELEMENT); + if (ownedElement == null) { + eVirtualSet(UMLPackage.OPERATION__OWNED_ELEMENT, + ownedElement = new DerivedUnionEObjectEList(Element.class, + this, UMLPackage.OPERATION__OWNED_ELEMENT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getElement_OwnedComment(), + UMLPackage.eINSTANCE.getNamedElement_NameExpression(), + UMLPackage.eINSTANCE.getNamespace_ElementImport(), + UMLPackage.eINSTANCE.getNamespace_PackageImport(), + UMLPackage.eINSTANCE.getNamespace_OwnedMember(), + UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding(), + UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()})); + } + return ownedElement; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getTemplateBindings() { + List templateBinding = (List) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_BINDING); + if (templateBinding == null) { + eVirtualSet(UMLPackage.OPERATION__TEMPLATE_BINDING, + templateBinding = new EObjectContainmentWithInverseEList( + TemplateBinding.class, this, + UMLPackage.OPERATION__TEMPLATE_BINDING, + UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)); + } + return templateBinding; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateBinding createTemplateBinding() { + TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE + .createTemplateBinding(); + getTemplateBindings().add(newTemplateBinding); + return newTemplateBinding; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE); + return ownedTemplateSignature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) { + Object oldOwnedTemplateSignature = eVirtualSet( + UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + oldOwnedTemplateSignature == EVIRTUAL_NO_VALUE + ? null + : oldOwnedTemplateSignature, newOwnedTemplateSignature); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE); + if (newOwnedTemplateSignature != ownedTemplateSignature) { + NotificationChain msgs = null; + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + if (newOwnedTemplateSignature != null) + msgs = ((InternalEObject) newOwnedTemplateSignature) + .eInverseAdd(this, UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE, + TemplateSignature.class, msgs); + msgs = basicSetOwnedTemplateSignature(newOwnedTemplateSignature, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature, newOwnedTemplateSignature)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass + .getEPackage().getEFactoryInstance().create(eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE + .createTemplateSignature(); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getRedefinitionContexts() { + List redefinitionContext = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINITION_CONTEXT); + if (redefinitionContext == null) { + eVirtualSet(UMLPackage.OPERATION__REDEFINITION_CONTEXT, + redefinitionContext = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.OPERATION__REDEFINITION_CONTEXT, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getOperation_Class_(), + UMLPackage.eINSTANCE.getOperation_Datatype(), + UMLPackage.eINSTANCE.getOperation_Interface()})); + } + return redefinitionContext; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getFeaturingClassifiers() { + List featuringClassifier = (List) eVirtualGet(UMLPackage.OPERATION__FEATURING_CLASSIFIER); + if (featuringClassifier == null) { + eVirtualSet(UMLPackage.OPERATION__FEATURING_CLASSIFIER, + featuringClassifier = new DerivedUnionEObjectEList( + Classifier.class, this, + UMLPackage.OPERATION__FEATURING_CLASSIFIER, + new EStructuralFeature[]{ + UMLPackage.eINSTANCE.getOperation_Class_(), + UMLPackage.eINSTANCE.getOperation_Datatype()})); + } + return featuringClassifier; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getRedefinedElements() { + List redefinedElement = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINED_ELEMENT); + if (redefinedElement == null) { + eVirtualSet(UMLPackage.OPERATION__REDEFINED_ELEMENT, + redefinedElement = new DerivedUnionEObjectEList( + RedefinableElement.class, this, + UMLPackage.OPERATION__REDEFINED_ELEMENT, + new EStructuralFeature[]{UMLPackage.eINSTANCE + .getOperation_RedefinedOperation()})); + } + return redefinedElement; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getOwnedRules() { + List ownedRule = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_RULE); + if (ownedRule == null) { + eVirtualSet(UMLPackage.OPERATION__OWNED_RULE, + ownedRule = new SupersetEObjectContainmentWithInverseEList( + Constraint.class, this, UMLPackage.OPERATION__OWNED_RULE, + new int[]{UMLPackage.OPERATION__PRECONDITION, + UMLPackage.OPERATION__POSTCONDITION, + UMLPackage.OPERATION__BODY_CONDITION}, + UMLPackage.CONSTRAINT__CONTEXT)); + } + return ownedRule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isQuery() { + return (eFlags & IS_QUERY_EFLAG) != 0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setIsQuery(boolean newIsQuery) { + boolean oldIsQuery = (eFlags & IS_QUERY_EFLAG) != 0; + if (newIsQuery) + eFlags |= IS_QUERY_EFLAG; + else + eFlags &= ~IS_QUERY_EFLAG; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__IS_QUERY, oldIsQuery, newIsQuery)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isOrdered() { + // TODO: implement this method to return the 'Is Ordered' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setIsOrdered(boolean newIsOrdered) { + // TODO: implement this method to set the 'Is Ordered' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isUnique() { + // TODO: implement this method to return the 'Is Unique' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setIsUnique(boolean newIsUnique) { + // TODO: implement this method to set the 'Is Unique' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getLower() { + // TODO: implement this method to return the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLower(int newLower) { + // TODO: implement this method to set the 'Lower' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getUpper() { + // TODO: implement this method to return the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setUpper(int newUpper) { + // TODO: implement this method to set the 'Upper' attribute + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Class getClass_() { + if (eContainerFeatureID != UMLPackage.OPERATION__CLASS_) + return null; + return (org.eclipse.uml2.uml.Class) eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setClass_(org.eclipse.uml2.uml.Class newClass_) { + if (newClass_ != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__CLASS_ && newClass_ != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newClass_)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newClass_ != null) + msgs = ((InternalEObject) newClass_).eInverseAdd(this, + UMLPackage.CLASS__OWNED_OPERATION, + org.eclipse.uml2.uml.Class.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newClass_, + UMLPackage.OPERATION__CLASS_, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__CLASS_, newClass_, newClass_)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getPreconditions() { + List precondition = (List) eVirtualGet(UMLPackage.OPERATION__PRECONDITION); + if (precondition == null) { + eVirtualSet(UMLPackage.OPERATION__PRECONDITION, + precondition = new SubsetEObjectEList(Constraint.class, this, + UMLPackage.OPERATION__PRECONDITION, + new int[]{UMLPackage.OPERATION__OWNED_RULE})); + } + return precondition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Constraint getPrecondition(String name) { + for (Iterator i = getPreconditions().iterator(); i.hasNext();) { + Constraint precondition = (Constraint) i.next(); + if (name.equals(precondition.getName())) { + return precondition; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getPostconditions() { + List postcondition = (List) eVirtualGet(UMLPackage.OPERATION__POSTCONDITION); + if (postcondition == null) { + eVirtualSet(UMLPackage.OPERATION__POSTCONDITION, + postcondition = new SubsetEObjectEList(Constraint.class, this, + UMLPackage.OPERATION__POSTCONDITION, + new int[]{UMLPackage.OPERATION__OWNED_RULE})); + } + return postcondition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Constraint getPostcondition(String name) { + for (Iterator i = getPostconditions().iterator(); i.hasNext();) { + Constraint postcondition = (Constraint) i.next(); + if (name.equals(postcondition.getName())) { + return postcondition; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getRedefinedOperations() { + List redefinedOperation = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINED_OPERATION); + if (redefinedOperation == null) { + eVirtualSet(UMLPackage.OPERATION__REDEFINED_OPERATION, + redefinedOperation = new EObjectResolvingEList(Operation.class, + this, UMLPackage.OPERATION__REDEFINED_OPERATION)); + } + return redefinedOperation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Operation getRedefinedOperation(String name) { + for (Iterator i = getRedefinedOperations().iterator(); i.hasNext();) { + Operation redefinedOperation = (Operation) i.next(); + if (name.equals(redefinedOperation.getName())) { + return redefinedOperation; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public DataType getDatatype() { + if (eContainerFeatureID != UMLPackage.OPERATION__DATATYPE) + return null; + return (DataType) eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDatatype(DataType newDatatype) { + if (newDatatype != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__DATATYPE && newDatatype != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newDatatype)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newDatatype != null) + msgs = ((InternalEObject) newDatatype) + .eInverseAdd(this, UMLPackage.DATA_TYPE__OWNED_OPERATION, + DataType.class, msgs); + msgs = eBasicSetContainer((InternalEObject) newDatatype, + UMLPackage.OPERATION__DATATYPE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__DATATYPE, newDatatype, newDatatype)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Constraint getBodyCondition() { + Constraint bodyCondition = (Constraint) eVirtualGet(UMLPackage.OPERATION__BODY_CONDITION); + return bodyCondition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBodyCondition(Constraint newBodyCondition) { + if (newBodyCondition != null + && !getOwnedRules().contains(newBodyCondition)) { + getOwnedRules().add(newBodyCondition); + } + Constraint bodyCondition = newBodyCondition; + Object oldBodyCondition = eVirtualSet( + UMLPackage.OPERATION__BODY_CONDITION, bodyCondition); + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__BODY_CONDITION, + oldBodyCondition == EVIRTUAL_NO_VALUE + ? null + : oldBodyCondition, bodyCondition)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Type getType() { + Type type = basicGetType(); + return type == null + ? null + : (type.eIsProxy() + ? (Type) eResolveProxy((InternalEObject) type) + : type); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Type basicGetType() { + // TODO: implement this method to return the 'Type' reference + // -> do not perform proxy resolution + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setType(Type newType) { + // TODO: implement this method to set the 'Type' reference + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Interface getInterface() { + if (eContainerFeatureID != UMLPackage.OPERATION__INTERFACE) + return null; + return (Interface) eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInterface(Interface newInterface) { + if (newInterface != eContainer + || (eContainerFeatureID != UMLPackage.OPERATION__INTERFACE && newInterface != null)) { + if (EcoreUtil.isAncestor(this, (EObject) newInterface)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newInterface != null) + msgs = ((InternalEObject) newInterface).eInverseAdd(this, + UMLPackage.INTERFACE__OWNED_OPERATION, Interface.class, + msgs); + msgs = eBasicSetContainer((InternalEObject) newInterface, + UMLPackage.OPERATION__INTERFACE, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.OPERATION__INTERFACE, newInterface, newInterface)); + + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER); + if (ownedParameter == null) { + eVirtualSet(UMLPackage.OPERATION__OWNED_PARAMETER, + ownedParameter = new EObjectContainmentWithInverseEList( + Parameter.class, this, + UMLPackage.OPERATION__OWNED_PARAMETER, + UMLPackage.PARAMETER__OPERATION)); + } + return ownedParameter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Parameter createOwnedParameter() { + Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter(); + getOwnedParameters().add(newOwnedParameter); + return newOwnedParameter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Parameter getOwnedParameter(String name) { + for (Iterator i = getOwnedParameters().iterator(); i.hasNext();) { + Parameter ownedParameter = (Parameter) i.next(); + if (name.equals(ownedParameter.getName())) { + return ownedParameter; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetOwnedParameters() { + List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List getRaisedExceptions() { + List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION); + if (raisedException == null) { + eVirtualSet(UMLPackage.OPERATION__RAISED_EXCEPTION, + raisedException = new EObjectResolvingEList(Type.class, this, + UMLPackage.OPERATION__RAISED_EXCEPTION)); + } + return raisedException; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Type getRaisedException(String name) { + for (Iterator i = getRaisedExceptions().iterator(); i.hasNext();) { + Type raisedException = (Type) i.next(); + if (name.equals(raisedException.getName())) { + return raisedException; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetRaisedExceptions() { + List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION); + return raisedException != null && !raisedException.isEmpty(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isCompatibleWith(ParameterableElement p) { + return ParameterableElementOperations.isCompatibleWith(this, p); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isTemplateParameter() { + return ParameterableElementOperations.isTemplateParameter(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getTemplateableElement().getEOperations() + .get(0)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getTemplateableElement().getEOperations().get(0), + result = TemplateableElementOperations + .parameterableElements(this)); + } + return result; + } + return TemplateableElementOperations.parameterableElements(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isTemplate() { + return TemplateableElementOperations.isTemplate(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateAtMostOneReturn(DiagnosticChain diagnostics, + Map context) { + return OperationOperations.validateAtMostOneReturn(this, diagnostics, + context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateOnlyBodyForQuery(DiagnosticChain diagnostics, + Map context) { + return OperationOperations.validateOnlyBodyForQuery(this, diagnostics, + context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int lowerBound() { + return OperationOperations.lowerBound(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int upperBound() { + return OperationOperations.upperBound(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List returnResult() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + List result = (List) cache.get(eResource(), this, + UMLPackage.eINSTANCE.getOperation().getEOperations().get(7)); + if (result == null) { + cache.put(eResource(), this, UMLPackage.eINSTANCE + .getOperation().getEOperations().get(7), + result = OperationOperations.returnResult(this)); + } + return result; + } + return OperationOperations.returnResult(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isConsistentWith(RedefinableElement redefinee) { + return OperationOperations.isConsistentWith(this, redefinee); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicAdd(otherEnd, + msgs); + case UMLPackage.OPERATION__METHOD : + return ((InternalEList) getMethods()).basicAdd(otherEnd, + msgs); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter) + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicAdd( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove( + this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.OPERATION__CLASS_ : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__CLASS_, msgs); + case UMLPackage.OPERATION__DATATYPE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__DATATYPE, msgs); + case UMLPackage.OPERATION__INTERFACE : + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, + UMLPackage.OPERATION__INTERFACE, msgs); + default : + return eDynamicInverseAdd(otherEnd, featureID, baseClass, + msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return ((InternalEList) getEAnnotations()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_COMMENT : + return ((InternalEList) getOwnedComments()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + return ((InternalEList) getClientDependencies()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OPERATION__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.OPERATION__ELEMENT_IMPORT : + return ((InternalEList) getElementImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + return ((InternalEList) getPackageImports()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_RULE : + return ((InternalEList) getOwnedRules()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_PARAMETER : + return ((InternalEList) getOwnedParameters()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__METHOD : + return ((InternalEList) getMethods()).basicRemove(otherEnd, + msgs); + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + return ((InternalEList) getOwnedParameterSets()) + .basicRemove(otherEnd, msgs); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return eBasicSetContainer(null, + UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER, msgs); + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return ((InternalEList) getTemplateBindings()).basicRemove( + otherEnd, msgs); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.OPERATION__CLASS_ : + return eBasicSetContainer(null, + UMLPackage.OPERATION__CLASS_, msgs); + case UMLPackage.OPERATION__DATATYPE : + return eBasicSetContainer(null, + UMLPackage.OPERATION__DATATYPE, msgs); + case UMLPackage.OPERATION__INTERFACE : + return eBasicSetContainer(null, + UMLPackage.OPERATION__INTERFACE, msgs); + default : + return eDynamicInverseRemove(otherEnd, featureID, + baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return eContainer + .eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + case UMLPackage.OPERATION__CLASS_ : + return eContainer.eInverseRemove(this, + UMLPackage.CLASS__OWNED_OPERATION, + org.eclipse.uml2.uml.Class.class, msgs); + case UMLPackage.OPERATION__DATATYPE : + return eContainer.eInverseRemove(this, + UMLPackage.DATA_TYPE__OWNED_OPERATION, DataType.class, + msgs); + case UMLPackage.OPERATION__INTERFACE : + return eContainer.eInverseRemove(this, + UMLPackage.INTERFACE__OWNED_OPERATION, Interface.class, + msgs); + default : + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE + - eContainerFeatureID, null, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.OPERATION__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.OPERATION__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.OPERATION__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.OPERATION__NAME : + return getName(); + case UMLPackage.OPERATION__VISIBILITY : + return getVisibility(); + case UMLPackage.OPERATION__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.OPERATION__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.OPERATION__NAME_EXPRESSION : + return getNameExpression(); + case UMLPackage.OPERATION__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.OPERATION__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.OPERATION__MEMBER : + return getMembers(); + case UMLPackage.OPERATION__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.OPERATION__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.OPERATION__IS_LEAF : + return isLeaf() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__REDEFINED_ELEMENT : + return getRedefinedElements(); + case UMLPackage.OPERATION__REDEFINITION_CONTEXT : + return getRedefinitionContexts(); + case UMLPackage.OPERATION__IS_STATIC : + return isStatic() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__FEATURING_CLASSIFIER : + return getFeaturingClassifiers(); + case UMLPackage.OPERATION__OWNED_PARAMETER : + return getOwnedParameters(); + case UMLPackage.OPERATION__IS_ABSTRACT : + return isAbstract() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__METHOD : + return getMethods(); + case UMLPackage.OPERATION__CONCURRENCY : + return getConcurrency(); + case UMLPackage.OPERATION__RAISED_EXCEPTION : + return getRaisedExceptions(); + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + return getOwnedParameterSets(); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter(); + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return getOwnedTemplateSignature(); + case UMLPackage.OPERATION__IS_QUERY : + return isQuery() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__IS_ORDERED : + return isOrdered() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__IS_UNIQUE : + return isUnique() + ? Boolean.TRUE + : Boolean.FALSE; + case UMLPackage.OPERATION__LOWER : + return new Integer(getLower()); + case UMLPackage.OPERATION__UPPER : + return new Integer(getUpper()); + case UMLPackage.OPERATION__CLASS_ : + return getClass_(); + case UMLPackage.OPERATION__PRECONDITION : + return getPreconditions(); + case UMLPackage.OPERATION__POSTCONDITION : + return getPostconditions(); + case UMLPackage.OPERATION__REDEFINED_OPERATION : + return getRedefinedOperations(); + case UMLPackage.OPERATION__DATATYPE : + return getDatatype(); + case UMLPackage.OPERATION__BODY_CONDITION : + return getBodyCondition(); + case UMLPackage.OPERATION__TYPE : + if (resolve) + return getType(); + return basicGetType(); + case UMLPackage.OPERATION__INTERFACE : + return getInterface(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__NAME : + setName((String) newValue); + return; + case UMLPackage.OPERATION__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + getClientDependencies().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.OPERATION__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__IS_LEAF : + setIsLeaf(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__IS_STATIC : + setIsStatic(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER : + getOwnedParameters().clear(); + getOwnedParameters().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__IS_ABSTRACT : + setIsAbstract(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__METHOD : + getMethods().clear(); + getMethods().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__CONCURRENCY : + setConcurrency((CallConcurrencyKind) newValue); + return; + case UMLPackage.OPERATION__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + getRaisedExceptions().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + getOwnedParameterSets().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.OPERATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.OPERATION__IS_QUERY : + setIsQuery(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__IS_ORDERED : + setIsOrdered(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__IS_UNIQUE : + setIsUnique(((Boolean) newValue).booleanValue()); + return; + case UMLPackage.OPERATION__LOWER : + setLower(((Integer) newValue).intValue()); + return; + case UMLPackage.OPERATION__UPPER : + setUpper(((Integer) newValue).intValue()); + return; + case UMLPackage.OPERATION__CLASS_ : + setClass_((org.eclipse.uml2.uml.Class) newValue); + return; + case UMLPackage.OPERATION__PRECONDITION : + getPreconditions().clear(); + getPreconditions().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__POSTCONDITION : + getPostconditions().clear(); + getPostconditions().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__REDEFINED_OPERATION : + getRedefinedOperations().clear(); + getRedefinedOperations().addAll((Collection) newValue); + return; + case UMLPackage.OPERATION__DATATYPE : + setDatatype((DataType) newValue); + return; + case UMLPackage.OPERATION__BODY_CONDITION : + setBodyCondition((Constraint) newValue); + return; + case UMLPackage.OPERATION__TYPE : + setType((Type) newValue); + return; + case UMLPackage.OPERATION__INTERFACE : + setInterface((Interface) newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.OPERATION__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.OPERATION__NAME : + setName(NAME_EDEFAULT); + return; + case UMLPackage.OPERATION__VISIBILITY : + setVisibility(VISIBILITY_EDEFAULT); + return; + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + getClientDependencies().clear(); + return; + case UMLPackage.OPERATION__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.OPERATION__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.OPERATION__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.OPERATION__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.OPERATION__IS_LEAF : + setIsLeaf(IS_LEAF_EDEFAULT); + return; + case UMLPackage.OPERATION__IS_STATIC : + setIsStatic(IS_STATIC_EDEFAULT); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER : + getOwnedParameters().clear(); + return; + case UMLPackage.OPERATION__IS_ABSTRACT : + setIsAbstract(IS_ABSTRACT_EDEFAULT); + return; + case UMLPackage.OPERATION__METHOD : + getMethods().clear(); + return; + case UMLPackage.OPERATION__CONCURRENCY : + setConcurrency(CONCURRENCY_EDEFAULT); + return; + case UMLPackage.OPERATION__RAISED_EXCEPTION : + getRaisedExceptions().clear(); + return; + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + getOwnedParameterSets().clear(); + return; + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.OPERATION__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.OPERATION__IS_QUERY : + setIsQuery(IS_QUERY_EDEFAULT); + return; + case UMLPackage.OPERATION__IS_ORDERED : + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLPackage.OPERATION__IS_UNIQUE : + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLPackage.OPERATION__LOWER : + setLower(LOWER_EDEFAULT); + return; + case UMLPackage.OPERATION__UPPER : + setUpper(UPPER_EDEFAULT); + return; + case UMLPackage.OPERATION__CLASS_ : + setClass_((org.eclipse.uml2.uml.Class) null); + return; + case UMLPackage.OPERATION__PRECONDITION : + getPreconditions().clear(); + return; + case UMLPackage.OPERATION__POSTCONDITION : + getPostconditions().clear(); + return; + case UMLPackage.OPERATION__REDEFINED_OPERATION : + getRedefinedOperations().clear(); + return; + case UMLPackage.OPERATION__DATATYPE : + setDatatype((DataType) null); + return; + case UMLPackage.OPERATION__BODY_CONDITION : + setBodyCondition((Constraint) null); + return; + case UMLPackage.OPERATION__TYPE : + setType((Type) null); + return; + case UMLPackage.OPERATION__INTERFACE : + setInterface((Interface) null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case UMLPackage.OPERATION__EANNOTATIONS : + return eAnnotations != null && !eAnnotations.isEmpty(); + case UMLPackage.OPERATION__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.OPERATION__OWNER : + return isSetOwner(); + case UMLPackage.OPERATION__OWNED_COMMENT : + List ownedComment = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_COMMENT); + return ownedComment != null && !ownedComment.isEmpty(); + case UMLPackage.OPERATION__NAME : + String name = eVirtualIsSet(UMLPackage.OPERATION__NAME) + ? (String) eVirtualGet(UMLPackage.OPERATION__NAME) + : NAME_EDEFAULT; + return NAME_EDEFAULT == null + ? name != null + : !NAME_EDEFAULT.equals(name); + case UMLPackage.OPERATION__VISIBILITY : + return eVirtualIsSet(UMLPackage.OPERATION__VISIBILITY) + && eVirtualGet(UMLPackage.OPERATION__VISIBILITY) != VISIBILITY_EDEFAULT; + case UMLPackage.OPERATION__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.OPERATION__CLIENT_DEPENDENCY : + List clientDependency = (List) eVirtualGet(UMLPackage.OPERATION__CLIENT_DEPENDENCY); + return clientDependency != null && !clientDependency.isEmpty(); + case UMLPackage.OPERATION__NAMESPACE : + return isSetNamespace(); + case UMLPackage.OPERATION__NAME_EXPRESSION : + return eVirtualGet(UMLPackage.OPERATION__NAME_EXPRESSION) != null; + case UMLPackage.OPERATION__ELEMENT_IMPORT : + List elementImport = (List) eVirtualGet(UMLPackage.OPERATION__ELEMENT_IMPORT); + return elementImport != null && !elementImport.isEmpty(); + case UMLPackage.OPERATION__PACKAGE_IMPORT : + List packageImport = (List) eVirtualGet(UMLPackage.OPERATION__PACKAGE_IMPORT); + return packageImport != null && !packageImport.isEmpty(); + case UMLPackage.OPERATION__OWNED_RULE : + List ownedRule = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_RULE); + return ownedRule != null && !ownedRule.isEmpty(); + case UMLPackage.OPERATION__MEMBER : + return isSetMembers(); + case UMLPackage.OPERATION__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.OPERATION__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.OPERATION__IS_LEAF : + return ((eFlags & IS_LEAF_EFLAG) != 0) != IS_LEAF_EDEFAULT; + case UMLPackage.OPERATION__REDEFINED_ELEMENT : + return isSetRedefinedElements(); + case UMLPackage.OPERATION__REDEFINITION_CONTEXT : + return isSetRedefinitionContexts(); + case UMLPackage.OPERATION__IS_STATIC : + return ((eFlags & IS_STATIC_EFLAG) != 0) != IS_STATIC_EDEFAULT; + case UMLPackage.OPERATION__FEATURING_CLASSIFIER : + return isSetFeaturingClassifiers(); + case UMLPackage.OPERATION__OWNED_PARAMETER : + List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER); + return ownedParameter != null && !ownedParameter.isEmpty(); + case UMLPackage.OPERATION__IS_ABSTRACT : + return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT; + case UMLPackage.OPERATION__METHOD : + List method = (List) eVirtualGet(UMLPackage.OPERATION__METHOD); + return method != null && !method.isEmpty(); + case UMLPackage.OPERATION__CONCURRENCY : + return eVirtualIsSet(UMLPackage.OPERATION__CONCURRENCY) + && eVirtualGet(UMLPackage.OPERATION__CONCURRENCY) != CONCURRENCY_EDEFAULT; + case UMLPackage.OPERATION__RAISED_EXCEPTION : + List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION); + return raisedException != null && !raisedException.isEmpty(); + case UMLPackage.OPERATION__OWNED_PARAMETER_SET : + List ownedParameterSet = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER_SET); + return ownedParameterSet != null + && !ownedParameterSet.isEmpty(); + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + return eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER) != null; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return getOwningTemplateParameter() != null; + case UMLPackage.OPERATION__TEMPLATE_BINDING : + List templateBinding = (List) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_BINDING); + return templateBinding != null && !templateBinding.isEmpty(); + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE) != null; + case UMLPackage.OPERATION__IS_QUERY : + return ((eFlags & IS_QUERY_EFLAG) != 0) != IS_QUERY_EDEFAULT; + case UMLPackage.OPERATION__IS_ORDERED : + return isOrdered() != IS_ORDERED_EDEFAULT; + case UMLPackage.OPERATION__IS_UNIQUE : + return isUnique() != IS_UNIQUE_EDEFAULT; + case UMLPackage.OPERATION__LOWER : + return getLower() != LOWER_EDEFAULT; + case UMLPackage.OPERATION__UPPER : + return getUpper() != UPPER_EDEFAULT; + case UMLPackage.OPERATION__CLASS_ : + return getClass_() != null; + case UMLPackage.OPERATION__PRECONDITION : + List precondition = (List) eVirtualGet(UMLPackage.OPERATION__PRECONDITION); + return precondition != null && !precondition.isEmpty(); + case UMLPackage.OPERATION__POSTCONDITION : + List postcondition = (List) eVirtualGet(UMLPackage.OPERATION__POSTCONDITION); + return postcondition != null && !postcondition.isEmpty(); + case UMLPackage.OPERATION__REDEFINED_OPERATION : + List redefinedOperation = (List) eVirtualGet(UMLPackage.OPERATION__REDEFINED_OPERATION); + return redefinedOperation != null + && !redefinedOperation.isEmpty(); + case UMLPackage.OPERATION__DATATYPE : + return getDatatype() != null; + case UMLPackage.OPERATION__BODY_CONDITION : + return eVirtualGet(UMLPackage.OPERATION__BODY_CONDITION) != null; + case UMLPackage.OPERATION__TYPE : + return basicGetType() != null; + case UMLPackage.OPERATION__INTERFACE : + return getInterface() != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.OPERATION__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + case UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.OPERATION__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.OPERATION__TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.OPERATION__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int eVirtualIndexBits(int offset) { + switch (offset) { + case 0 : + return eVirtualIndexBits0; + case 1 : + return eVirtualIndexBits1; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void eSetVirtualIndexBits(int offset, int newIndexBits) { + switch (offset) { + case 0 : + eVirtualIndexBits0 = newIndexBits; + break; + case 1 : + eVirtualIndexBits1 = newIndexBits; + break; + default : + throw new IndexOutOfBoundsException(); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isQuery: "); //$NON-NLS-1$ + result.append((eFlags & IS_QUERY_EFLAG) != 0); + result.append(')'); + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = getOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.eINSTANCE + .getParameterableElement_OwningTemplateParameter()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_TemplateBinding()) + || eIsSet(UMLPackage.eINSTANCE + .getTemplateableElement_OwnedTemplateSignature()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetRedefinitionContexts() { + return super.isSetRedefinitionContexts() + || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Interface()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Namespace basicGetNamespace() { + org.eclipse.uml2.uml.Class class_ = getClass_(); + if (class_ != null) { + return class_; + } + DataType datatype = getDatatype(); + if (datatype != null) { + return datatype; + } + return super.basicGetNamespace(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetFeaturingClassifiers() { + return super.isSetFeaturingClassifiers() + || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_()) + || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetRedefinedElements() { + return super.isSetRedefinedElements() + || eIsSet(UMLPackage.eINSTANCE.getOperation_RedefinedOperation()); + } + +} //OperationImpl |