blob: 677a6d2258aefb27d0359685e8c3f5d5930d3114 [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2002-2007 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
*
* </copyright>
*
* $Id: EOperationImpl.java,v 1.19.2.1 2007/12/14 23:03:42 emerks Exp $
*/
package org.eclipse.emf.ecore.impl;
import java.lang.reflect.Array;
import java.util.AbstractSequentialList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.notify.impl.NotificationImpl;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EGenericType;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EParameter;
import org.eclipse.emf.ecore.ETypeParameter;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.util.DelegatingEcoreEList;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
// import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>EOperation</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.emf.ecore.impl.EOperationImpl#getEContainingClass <em>EContaining Class</em>}</li>
* <li>{@link org.eclipse.emf.ecore.impl.EOperationImpl#getETypeParameters <em>EType Parameters</em>}</li>
* <li>{@link org.eclipse.emf.ecore.impl.EOperationImpl#getEParameters <em>EParameters</em>}</li>
* <li>{@link org.eclipse.emf.ecore.impl.EOperationImpl#getEExceptions <em>EExceptions</em>}</li>
* <li>{@link org.eclipse.emf.ecore.impl.EOperationImpl#getEGenericExceptions <em>EGeneric Exceptions</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class EOperationImpl extends ETypedElementImpl implements EOperation
{
/**
* The cached value of the '{@link #getETypeParameters() <em>EType Parameters</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getETypeParameters()
* @generated
* @ordered
*/
protected EList<ETypeParameter> eTypeParameters;
/**
* The cached value of the '{@link #getEParameters() <em>EParameters</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEParameters()
* @generated
* @ordered
*/
protected EList<EParameter> eParameters;
/**
* The cached value of the '{@link #getEExceptions() <em>EExceptions</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEExceptions()
* @generated
* @ordered
*/
protected EList<EClassifier> eExceptions;
/**
* The cached value of the '{@link #getEGenericExceptions() <em>EGeneric Exceptions</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEGenericExceptions()
* @generated
* @ordered
*/
protected EList<EGenericType> eGenericExceptions;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EOperationImpl()
{
super();
}
@Override
protected void freeze()
{
if (eParameters != null)
{
for (int i = 0, size = eParameters.size(); i < size; ++i)
{
freeze(eParameters.get(i));
}
}
super.freeze();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass()
{
return EcorePackage.Literals.EOPERATION;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated modifiable
*/
public EClass getEContainingClass()
{
return (eContainerFeatureID == EcorePackage.EOPERATION__ECONTAINING_CLASS) ? (EClass)eContainer : null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<EParameter> getEParameters()
{
if (eParameters == null)
{
eParameters = new EObjectContainmentWithInverseEList<EParameter>(EParameter.class, this, EcorePackage.EOPERATION__EPARAMETERS, EcorePackage.EPARAMETER__EOPERATION);
}
return eParameters;
}
public EList<EClassifier> getEExceptions()
{
if (eExceptions == null)
{
eExceptions =
new DelegatingEcoreEList<EClassifier>(this)
{
private static final long serialVersionUID = 1L;
@Override
protected List<EClassifier> delegateList()
{
return null;
}
@Override
protected List<EClassifier> delegateBasicList()
{
return
new AbstractSequentialList<EClassifier>()
{
@Override
public ListIterator<EClassifier> listIterator(int index)
{
return basicListIterator();
}
@Override
public int size()
{
return delegateSize();
}
};
}
@Override
protected Iterator<EClassifier> delegateIterator()
{
return iterator();
}
@Override
protected ListIterator<EClassifier> delegateListIterator()
{
return listIterator();
}
protected EGenericType wrap(EClassifier eClassifier)
{
EGenericType eGenericType = EcoreFactory.eINSTANCE.createEGenericType();
eGenericType.setEClassifier(eClassifier);
return eGenericType;
}
protected EClassifier unwrap(EGenericType eGenericType)
{
EClassifier result = ((EGenericTypeImpl)eGenericType).basicGetERawType();
if (result != null)
{
return result;
}
else
{
return EcorePackage.Literals.EJAVA_OBJECT;
}
}
@Override
protected void delegateAdd(int index, EClassifier eClassifier)
{
getEGenericExceptions().add(index, wrap(eClassifier));
}
@Override
protected void delegateClear()
{
getEGenericExceptions().clear();
}
@Override
protected void delegateAdd(EClassifier eClassifier)
{
getEGenericExceptions().add(wrap(eClassifier));
}
@Override
protected boolean delegateContains(Object object)
{
for (EClassifier eClassifier : this)
{
if (object == eClassifier)
{
return true;
}
}
return false;
}
@Override
protected boolean delegateContainsAll(Collection<?> collection)
{
for (Object object : collection)
{
if (!delegateContains(object))
{
return false;
}
}
return true;
}
@Override
protected boolean delegateEquals(Object object)
{
if (object instanceof List)
{
List<?> list = (List<?>)object;
if (list.size() == delegateSize())
{
for (Iterator<?> i = list.iterator(), j = iterator(); i.hasNext(); )
{
if (i.next() != j.next())
{
return false;
}
}
return true;
}
}
return false;
}
@Override
protected EClassifier delegateGet(int index)
{
EGenericType eGenericType = getEGenericExceptions().get(index);
return unwrap(eGenericType);
}
@Override
protected int delegateHashCode()
{
int hashCode = 1;
for (EGenericType eGenericType : getEGenericExceptions())
{
Object object = unwrap(eGenericType);
hashCode = 31 * hashCode + (object == null ? 0 : object.hashCode());
}
return hashCode;
}
@Override
protected int delegateIndexOf(Object object)
{
int index = 0;
for (EGenericType eGenericType : getEGenericExceptions())
{
if (object == unwrap(eGenericType))
{
return index;
}
++index;
}
return -1;
}
@Override
protected boolean delegateIsEmpty()
{
return getEGenericExceptions().isEmpty();
}
@Override
protected int delegateLastIndexOf(Object object)
{
EList<EGenericType> eGenericExceptions = getEGenericExceptions();
for (int i = eGenericExceptions.size() - 1; i >= 0; --i)
{
if (unwrap(eGenericExceptions.get(i)) == object)
{
return i;
}
}
return -1;
}
@Override
protected EClassifier delegateRemove(int index)
{
EGenericType eGenericType = getEGenericExceptions().remove(index);
return unwrap(eGenericType);
}
@Override
protected EClassifier delegateSet(int index, EClassifier eClassifier)
{
EGenericType eGenericType = getEGenericExceptions().get(index);
EClassifier result = unwrap(eGenericType);
// If this is just a proxy being resolved...
//
if (resolveProxy(result) == eClassifier)
{
// Force the raw type to be resolved so we don't resolve this endlessly.
//
eGenericType.getERawType();
}
else
{
// Update the classifier and hence the raw type as normal.
//
eGenericType.setEClassifier(eClassifier);
}
return result;
}
@Override
protected int delegateSize()
{
return getEGenericExceptions().size();
}
@Override
protected Object[] delegateToArray()
{
int size = delegateSize();
Object[] result = new Object[size];
int index = 0;
for (EGenericType eGenericType : getEGenericExceptions())
{
result[index++] = unwrap(eGenericType);
}
return result;
}
@Override
protected <T> T[] delegateToArray(T[] array)
{
int size = delegateSize();
if (array.length < size)
{
@SuppressWarnings("unchecked") T[] newArray = (T[])Array.newInstance(array.getClass().getComponentType(), size);
array = newArray;
}
if (array.length > size)
{
array[size] = null;
}
int index = 0;
for (EGenericType eGenericType : getEGenericExceptions())
{
@SuppressWarnings("unchecked") T rawType = (T)unwrap(eGenericType);
array[index++] = rawType;
}
return array;
}
@Override
protected String delegateToString()
{
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("[");
EList<EGenericType> eGenericExceptions = getEGenericExceptions();
for (int i = 0, size = delegateSize(); i < size; )
{
stringBuffer.append(String.valueOf(unwrap(eGenericExceptions.get(i))));
if (++i < size)
{
stringBuffer.append(", ");
}
}
stringBuffer.append("]");
return stringBuffer.toString();
}
@Override
protected boolean isInstance(Object object)
{
return object instanceof EClassifier;
}
@Override
public int getFeatureID()
{
return EcorePackage.EOPERATION__EEXCEPTIONS;
}
@Override
protected boolean useEquals()
{
return true;
}
@Override
protected boolean canContainNull()
{
return false;
}
@Override
protected boolean isUnique()
{
return true;
}
@Override
protected boolean hasInverse()
{
return false;
}
@Override
protected boolean hasManyInverse()
{
return false;
}
@Override
protected boolean hasNavigableInverse()
{
return false;
}
@Override
protected boolean isEObject()
{
return true;
}
@Override
protected boolean isContainment()
{
return false;
}
@Override
protected boolean hasProxies()
{
return true;
}
@Override
protected boolean hasInstanceClass()
{
return true;
}
@Override
public boolean isSet()
{
return isSetEExceptions();
}
@Override
protected NotificationImpl createNotification(int eventType, Object oldObject, Object newObject, int index, boolean wasSet)
{
// The notification for this list is being thrown by the
// delegating list
//
return null;
}
@Override
protected void dispatchNotification(Notification notification)
{
// Do nothing
}
};
}
return eExceptions;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void unsetEExceptions()
{
if (eExceptions != null) ((InternalEList.Unsettable<?>)eExceptions).unset();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public boolean isSetEExceptions()
{
return eExceptions != null && !eExceptions.isEmpty() && !isSetEGenericExceptions();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public EList<EGenericType> getEGenericExceptions()
{
if (eGenericExceptions == null)
{
eGenericExceptions =
new EObjectContainmentEList.Unsettable<EGenericType>(EGenericType.class, this, EcorePackage.EOPERATION__EGENERIC_EXCEPTIONS)
{
private static final long serialVersionUID = 1L;
@Override
public boolean isSet()
{
for (EGenericType eGenericType : this)
{
if (eGenericType.getETypeParameter() != null || !eGenericType.getETypeArguments().isEmpty())
{
return true;
}
}
return false;
}
protected EClassifier unwrap(EGenericType eGenericType)
{
EClassifier result = eGenericType.getERawType();
if (result != null)
{
return result;
}
else
{
return EcorePackage.Literals.EJAVA_OBJECT;
}
}
@Override
protected boolean hasShadow()
{
return true;
}
@Override
protected NotificationChain shadowAdd(EGenericType eGenericType, NotificationChain notifications)
{
ENotificationImpl notification =
new ENotificationImpl
(owner, Notification.ADD, EcorePackage.EOPERATION__EEXCEPTIONS, null, unwrap(eGenericType), indexOf(eGenericType), false);
if (notifications == null)
{
notifications = notification;
}
else
{
notifications.add(notification);
}
return notifications;
}
@Override
protected NotificationChain shadowRemove(EGenericType eGenericType, NotificationChain notifications)
{
ENotificationImpl notification =
new ENotificationImpl
(owner, Notification.REMOVE, EcorePackage.EOPERATION__EEXCEPTIONS, unwrap(eGenericType), null, indexOf(eGenericType), false);
if (notifications == null)
{
notifications = notification;
}
else
{
notifications.add(notification);
}
return notifications;
}
@Override
protected NotificationChain shadowSet(EGenericType oldEGenericType, EGenericType newEGenericType, NotificationChain notifications)
{
ENotificationImpl notification =
new ENotificationImpl
(owner,
Notification.SET,
EcorePackage.EOPERATION__EEXCEPTIONS,
unwrap(oldEGenericType),
unwrap(newEGenericType),
indexOf(oldEGenericType),
false);
if (notifications == null)
{
notifications = notification;
}
else
{
notifications.add(notification);
}
return notifications;
}
@Override
public EGenericType move(int targetIndex, int sourceIndex)
{
EGenericType result = super.move(targetIndex, sourceIndex);
if (isNotificationRequired())
{
dispatchNotification
(new ENotificationImpl
(EOperationImpl.this,
Notification.MOVE,
EcorePackage.Literals.EOPERATION__EEXCEPTIONS,
new Integer(sourceIndex),
unwrap(result),
targetIndex));
}
return result;
}
@Override
public void unset()
{
// Don't really unset it.
clear();
}
@Override
protected NotificationImpl createNotification(int eventType, Object oldObject, Object newObject, int index, boolean wasSet)
{
switch (eventType)
{
case Notification.ADD:
{
return super.createNotification(eventType, oldObject, newObject, index, size > 1);
}
case Notification.ADD_MANY:
{
return super.createNotification(eventType, oldObject, newObject, index, size - ((List<?>)newObject).size() > 0);
}
default:
{
return super.createNotification(eventType, oldObject, newObject, index, true);
}
}
}
};
// Force this to be initialized as well.
getEExceptions();
}
return eGenericExceptions;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void unsetEGenericExceptions()
{
if (eGenericExceptions != null) ((InternalEList.Unsettable<?>)eGenericExceptions).unset();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isSetEGenericExceptions()
{
return eGenericExceptions != null && ((InternalEList.Unsettable<?>)eGenericExceptions).isSet();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ETypeParameter> getETypeParameters()
{
if (eTypeParameters == null)
{
eTypeParameters = new EObjectContainmentEList.Resolving<ETypeParameter>(ETypeParameter.class, this, EcorePackage.EOPERATION__ETYPE_PARAMETERS);
}
return eTypeParameters;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
switch (featureID)
{
case EcorePackage.EOPERATION__EANNOTATIONS:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getEAnnotations()).basicAdd(otherEnd, msgs);
case EcorePackage.EOPERATION__ECONTAINING_CLASS:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
return eBasicSetContainer(otherEnd, EcorePackage.EOPERATION__ECONTAINING_CLASS, msgs);
case EcorePackage.EOPERATION__EPARAMETERS:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getEParameters()).basicAdd(otherEnd, msgs);
}
return eDynamicInverseAdd(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
switch (featureID)
{
case EcorePackage.EOPERATION__EANNOTATIONS:
return ((InternalEList<?>)getEAnnotations()).basicRemove(otherEnd, msgs);
case EcorePackage.EOPERATION__EGENERIC_TYPE:
return basicUnsetEGenericType(msgs);
case EcorePackage.EOPERATION__ECONTAINING_CLASS:
return eBasicSetContainer(null, EcorePackage.EOPERATION__ECONTAINING_CLASS, msgs);
case EcorePackage.EOPERATION__ETYPE_PARAMETERS:
return ((InternalEList<?>)getETypeParameters()).basicRemove(otherEnd, msgs);
case EcorePackage.EOPERATION__EPARAMETERS:
return ((InternalEList<?>)getEParameters()).basicRemove(otherEnd, msgs);
case EcorePackage.EOPERATION__EGENERIC_EXCEPTIONS:
return ((InternalEList<?>)getEGenericExceptions()).basicRemove(otherEnd, msgs);
}
return eDynamicInverseRemove(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
{
switch (eContainerFeatureID)
{
case EcorePackage.EOPERATION__ECONTAINING_CLASS:
return eInternalContainer().eInverseRemove(this, EcorePackage.ECLASS__EOPERATIONS, EClass.class, msgs);
}
return eDynamicBasicRemoveFromContainer(msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType)
{
switch (featureID)
{
case EcorePackage.EOPERATION__EANNOTATIONS:
return getEAnnotations();
case EcorePackage.EOPERATION__NAME:
return getName();
case EcorePackage.EOPERATION__ORDERED:
return isOrdered() ? Boolean.TRUE : Boolean.FALSE;
case EcorePackage.EOPERATION__UNIQUE:
return isUnique() ? Boolean.TRUE : Boolean.FALSE;
case EcorePackage.EOPERATION__LOWER_BOUND:
return new Integer(getLowerBound());
case EcorePackage.EOPERATION__UPPER_BOUND:
return new Integer(getUpperBound());
case EcorePackage.EOPERATION__MANY:
return isMany() ? Boolean.TRUE : Boolean.FALSE;
case EcorePackage.EOPERATION__REQUIRED:
return isRequired() ? Boolean.TRUE : Boolean.FALSE;
case EcorePackage.EOPERATION__ETYPE:
if (resolve) return getEType();
return basicGetEType();
case EcorePackage.EOPERATION__EGENERIC_TYPE:
return getEGenericType();
case EcorePackage.EOPERATION__ECONTAINING_CLASS:
return getEContainingClass();
case EcorePackage.EOPERATION__ETYPE_PARAMETERS:
return getETypeParameters();
case EcorePackage.EOPERATION__EPARAMETERS:
return getEParameters();
case EcorePackage.EOPERATION__EEXCEPTIONS:
return getEExceptions();
case EcorePackage.EOPERATION__EGENERIC_EXCEPTIONS:
return getEGenericExceptions();
}
return eDynamicGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
switch (featureID)
{
case EcorePackage.EOPERATION__EANNOTATIONS:
getEAnnotations().clear();
getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue);
return;
case EcorePackage.EOPERATION__NAME:
setName((String)newValue);
return;
case EcorePackage.EOPERATION__ORDERED:
setOrdered(((Boolean)newValue).booleanValue());
return;
case EcorePackage.EOPERATION__UNIQUE:
setUnique(((Boolean)newValue).booleanValue());
return;
case EcorePackage.EOPERATION__LOWER_BOUND:
setLowerBound(((Integer)newValue).intValue());
return;
case EcorePackage.EOPERATION__UPPER_BOUND:
setUpperBound(((Integer)newValue).intValue());
return;
case EcorePackage.EOPERATION__ETYPE:
setEType((EClassifier)newValue);
return;
case EcorePackage.EOPERATION__EGENERIC_TYPE:
setEGenericType((EGenericType)newValue);
return;
case EcorePackage.EOPERATION__ETYPE_PARAMETERS:
getETypeParameters().clear();
getETypeParameters().addAll((Collection<? extends ETypeParameter>)newValue);
return;
case EcorePackage.EOPERATION__EPARAMETERS:
getEParameters().clear();
getEParameters().addAll((Collection<? extends EParameter>)newValue);
return;
case EcorePackage.EOPERATION__EEXCEPTIONS:
getEExceptions().clear();
getEExceptions().addAll((Collection<? extends EClassifier>)newValue);
return;
case EcorePackage.EOPERATION__EGENERIC_EXCEPTIONS:
getEGenericExceptions().clear();
getEGenericExceptions().addAll((Collection<? extends EGenericType>)newValue);
return;
}
eDynamicSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID)
{
switch (featureID)
{
case EcorePackage.EOPERATION__EANNOTATIONS:
getEAnnotations().clear();
return;
case EcorePackage.EOPERATION__NAME:
setName(NAME_EDEFAULT);
return;
case EcorePackage.EOPERATION__ORDERED:
setOrdered(ORDERED_EDEFAULT);
return;
case EcorePackage.EOPERATION__UNIQUE:
setUnique(UNIQUE_EDEFAULT);
return;
case EcorePackage.EOPERATION__LOWER_BOUND:
setLowerBound(LOWER_BOUND_EDEFAULT);
return;
case EcorePackage.EOPERATION__UPPER_BOUND:
setUpperBound(UPPER_BOUND_EDEFAULT);
return;
case EcorePackage.EOPERATION__ETYPE:
unsetEType();
return;
case EcorePackage.EOPERATION__EGENERIC_TYPE:
unsetEGenericType();
return;
case EcorePackage.EOPERATION__ETYPE_PARAMETERS:
getETypeParameters().clear();
return;
case EcorePackage.EOPERATION__EPARAMETERS:
getEParameters().clear();
return;
case EcorePackage.EOPERATION__EEXCEPTIONS:
unsetEExceptions();
return;
case EcorePackage.EOPERATION__EGENERIC_EXCEPTIONS:
unsetEGenericExceptions();
return;
}
eDynamicUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID)
{
switch (featureID)
{
case EcorePackage.EOPERATION__EANNOTATIONS:
return eAnnotations != null && !eAnnotations.isEmpty();
case EcorePackage.EOPERATION__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case EcorePackage.EOPERATION__ORDERED:
return ((eFlags & ORDERED_EFLAG) != 0) != ORDERED_EDEFAULT;
case EcorePackage.EOPERATION__UNIQUE:
return ((eFlags & UNIQUE_EFLAG) != 0) != UNIQUE_EDEFAULT;
case EcorePackage.EOPERATION__LOWER_BOUND:
return lowerBound != LOWER_BOUND_EDEFAULT;
case EcorePackage.EOPERATION__UPPER_BOUND:
return upperBound != UPPER_BOUND_EDEFAULT;
case EcorePackage.EOPERATION__MANY:
return isMany() != MANY_EDEFAULT;
case EcorePackage.EOPERATION__REQUIRED:
return isRequired() != REQUIRED_EDEFAULT;
case EcorePackage.EOPERATION__ETYPE:
return isSetEType();
case EcorePackage.EOPERATION__EGENERIC_TYPE:
return isSetEGenericType();
case EcorePackage.EOPERATION__ECONTAINING_CLASS:
return getEContainingClass() != null;
case EcorePackage.EOPERATION__ETYPE_PARAMETERS:
return eTypeParameters != null && !eTypeParameters.isEmpty();
case EcorePackage.EOPERATION__EPARAMETERS:
return eParameters != null && !eParameters.isEmpty();
case EcorePackage.EOPERATION__EEXCEPTIONS:
return isSetEExceptions();
case EcorePackage.EOPERATION__EGENERIC_EXCEPTIONS:
return isSetEGenericExceptions();
}
return eDynamicIsSet(featureID);
}
}