diff options
Diffstat (limited to 'cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/PackageImpl.java')
-rw-r--r-- | cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/PackageImpl.java | 2190 |
1 files changed, 2190 insertions, 0 deletions
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/PackageImpl.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/PackageImpl.java new file mode 100644 index 00000000..49a7dead --- /dev/null +++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/PackageImpl.java @@ -0,0 +1,2190 @@ +/* + * Copyright (c) 2005, 2017 IBM Corporation, Embarcadero Technologies, CEA, 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 + * Kenn Hussey (Embarcadero Technologies) - 204200 + * Kenn Hussey - 286329, 323181, 519572 + * Kenn Hussey (CEA) - 327039, 351774, 418466, 454400, 451350, 485756, 489209 + * + */ +package org.eclipse.uml2.uml.cdo.internal.impl; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collection; +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.common.util.EList; + +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.resource.Resource; + +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.DerivedSubsetEObjectEList; +import org.eclipse.uml2.common.util.DerivedUnionEObjectEList; +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.Constraint; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.ElementImport; +import org.eclipse.uml2.uml.Enumeration; +import org.eclipse.uml2.uml.Interface; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Namespace; +import org.eclipse.uml2.uml.PackageImport; +import org.eclipse.uml2.uml.PackageMerge; +import org.eclipse.uml2.uml.PackageableElement; +import org.eclipse.uml2.uml.ParameterableElement; +import org.eclipse.uml2.uml.PrimitiveType; +import org.eclipse.uml2.uml.Profile; +import org.eclipse.uml2.uml.ProfileApplication; +import org.eclipse.uml2.uml.Stereotype; +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.UMLPackage; +import org.eclipse.uml2.uml.VisibilityKind; + +import org.eclipse.uml2.uml.internal.operations.PackageOperations; +import org.eclipse.uml2.uml.internal.operations.PackageableElementOperations; +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>Package</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwner <em>Owner</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getTemplateParameter <em>Template Parameter</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getVisibility <em>Visibility</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwnedElements <em>Owned Element</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getTemplateBindings <em>Template Binding</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getNamespace <em>Namespace</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwnedMembers <em>Owned Member</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getPackagedElements <em>Packaged Element</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getURI <em>URI</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getNestedPackages <em>Nested Package</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getNestingPackage <em>Nesting Package</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwnedStereotypes <em>Owned Stereotype</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getOwnedTypes <em>Owned Type</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getPackageMerges <em>Package Merge</em>}</li> + * <li>{@link org.eclipse.uml2.uml.cdo.internal.impl.PackageImpl#getProfileApplications <em>Profile Application</em>}</li> + * </ul> + * + * @generated + */ +public class PackageImpl + extends NamespaceImpl + implements org.eclipse.uml2.uml.Package { + + /** + * The default value of the '{@link #getURI() <em>URI</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getURI() + * @generated + * @ordered + */ + protected static final String URI_EDEFAULT = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PackageImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return UMLPackage.Literals.PACKAGE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Element getOwner() { + Element owner = basicGetOwner(); + return owner != null && owner.eIsProxy() + ? (Element) eResolveProxy((InternalEObject) owner) + : owner; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter getTemplateParameter() { + return (TemplateParameter) eDynamicGet( + UMLPackage.PACKAGE__TEMPLATE_PARAMETER - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, true, + true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter basicGetTemplateParameter() { + return (TemplateParameter) eDynamicGet( + UMLPackage.PACKAGE__TEMPLATE_PARAMETER - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + false, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetTemplateParameter( + TemplateParameter newTemplateParameter, NotificationChain msgs) { + msgs = eDynamicInverseAdd((InternalEObject) newTemplateParameter, + UMLPackage.PACKAGE__TEMPLATE_PARAMETER, msgs); + Resource.Internal eInternalResource = eInternalResource(); + if (eInternalResource == null || !eInternalResource.isLoading()) { + TemplateParameter owningTemplateParameter = basicGetOwningTemplateParameter(); + if (owningTemplateParameter != null + && owningTemplateParameter != newTemplateParameter) { + setOwningTemplateParameter(null); + } + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTemplateParameter(TemplateParameter newTemplateParameter) { + eDynamicSet( + UMLPackage.PACKAGE__TEMPLATE_PARAMETER - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, + newTemplateParameter); + Resource.Internal eInternalResource = eInternalResource(); + if (eInternalResource == null || !eInternalResource.isLoading()) { + TemplateParameter owningTemplateParameter = basicGetOwningTemplateParameter(); + if (owningTemplateParameter != null + && owningTemplateParameter != newTemplateParameter) { + setOwningTemplateParameter(null); + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter getOwningTemplateParameter() { + return (TemplateParameter) eDynamicGet( + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER + - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateParameter basicGetOwningTemplateParameter() { + return (TemplateParameter) eDynamicGet( + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER + - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + false, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter, + NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject) newOwningTemplateParameter, + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER, msgs); + Resource.Internal eInternalResource = eInternalResource(); + if (eInternalResource == null || !eInternalResource.isLoading()) { + if (newOwningTemplateParameter != null) { + if (newOwningTemplateParameter != getTemplateParameter()) { + setTemplateParameter(newOwningTemplateParameter); + } + } + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOwningTemplateParameter( + TemplateParameter newOwningTemplateParameter) { + eDynamicSet( + UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER + - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER, + newOwningTemplateParameter); + Resource.Internal eInternalResource = eInternalResource(); + if (eInternalResource == null || !eInternalResource.isLoading()) { + if (newOwningTemplateParameter != null) { + if (newOwningTemplateParameter != getTemplateParameter()) { + setTemplateParameter(newOwningTemplateParameter); + } + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public VisibilityKind getVisibility() { + return (VisibilityKind) eDynamicGet( + UMLPackage.PACKAGE__VISIBILITY - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.NAMED_ELEMENT__VISIBILITY, true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setVisibility(VisibilityKind newVisibility) { + eDynamicSet(UMLPackage.PACKAGE__VISIBILITY - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.NAMED_ELEMENT__VISIBILITY, newVisibility); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetVisibility() { + eDynamicUnset(UMLPackage.PACKAGE__VISIBILITY - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.NAMED_ELEMENT__VISIBILITY); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetVisibility() { + return eDynamicIsSet( + UMLPackage.PACKAGE__VISIBILITY - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.NAMED_ELEMENT__VISIBILITY); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EList<Element> getOwnedElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + Resource eResource = eResource(); + @SuppressWarnings("unchecked") + EList<Element> ownedElements = (EList<Element>) cache.get(eResource, + this, UMLPackage.Literals.ELEMENT__OWNED_ELEMENT); + if (ownedElements == null) { + cache.put(eResource, this, + UMLPackage.Literals.ELEMENT__OWNED_ELEMENT, + ownedElements = new DerivedUnionEObjectEList<Element>( + Element.class, this, UMLPackage.PACKAGE__OWNED_ELEMENT, + OWNED_ELEMENT_ESUBSETS)); + } + return ownedElements; + } + return new DerivedUnionEObjectEList<Element>(Element.class, this, + UMLPackage.PACKAGE__OWNED_ELEMENT, OWNED_ELEMENT_ESUBSETS); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + public EList<TemplateBinding> getTemplateBindings() { + return (EList<TemplateBinding>) eDynamicGet( + UMLPackage.PACKAGE__TEMPLATE_BINDING - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING, true, + true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateBinding createTemplateBinding(TemplateSignature signature) { + TemplateBinding newTemplateBinding = (TemplateBinding) create( + UMLPackage.Literals.TEMPLATE_BINDING); + getTemplateBindings().add(newTemplateBinding); + if (signature != null) + newTemplateBinding.setSignature(signature); + return newTemplateBinding; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateBinding getTemplateBinding(TemplateSignature signature) { + return getTemplateBinding(signature, false); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateBinding getTemplateBinding(TemplateSignature signature, + boolean createOnDemand) { + templateBindingLoop : for (TemplateBinding templateBinding : getTemplateBindings()) { + if (signature != null + && !signature.equals(templateBinding.getSignature())) + continue templateBindingLoop; + return templateBinding; + } + return createOnDemand + ? createTemplateBinding(signature) + : null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Namespace getNamespace() { + Namespace namespace = basicGetNamespace(); + return namespace != null && namespace.eIsProxy() + ? (Namespace) eResolveProxy((InternalEObject) namespace) + : namespace; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Namespace basicGetNamespace() { + org.eclipse.uml2.uml.Package nestingPackage = basicGetNestingPackage(); + if (nestingPackage != null) { + return nestingPackage; + } + return super.basicGetNamespace(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature getOwnedTemplateSignature() { + return (TemplateSignature) eDynamicGet( + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE + - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature basicGetOwnedTemplateSignature() { + return (TemplateSignature) eDynamicGet( + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE + - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + false, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature, + NotificationChain msgs) { + msgs = eDynamicInverseAdd((InternalEObject) newOwnedTemplateSignature, + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOwnedTemplateSignature( + TemplateSignature newOwnedTemplateSignature) { + eDynamicSet( + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE + - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE, + newOwnedTemplateSignature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature createOwnedTemplateSignature(EClass eClass) { + TemplateSignature newOwnedTemplateSignature = (TemplateSignature) create( + eClass); + setOwnedTemplateSignature(newOwnedTemplateSignature); + return newOwnedTemplateSignature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TemplateSignature createOwnedTemplateSignature() { + return createOwnedTemplateSignature( + UMLPackage.Literals.TEMPLATE_SIGNATURE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EList<NamedElement> getOwnedMembers() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + Resource eResource = eResource(); + @SuppressWarnings("unchecked") + EList<NamedElement> ownedMembers = (EList<NamedElement>) cache.get( + eResource, this, UMLPackage.Literals.NAMESPACE__OWNED_MEMBER); + if (ownedMembers == null) { + cache.put(eResource, this, + UMLPackage.Literals.NAMESPACE__OWNED_MEMBER, + ownedMembers = new DerivedUnionEObjectEList<NamedElement>( + NamedElement.class, this, + UMLPackage.PACKAGE__OWNED_MEMBER, + OWNED_MEMBER_ESUBSETS)); + } + return ownedMembers; + } + return new DerivedUnionEObjectEList<NamedElement>(NamedElement.class, + this, UMLPackage.PACKAGE__OWNED_MEMBER, OWNED_MEMBER_ESUBSETS); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + public EList<PackageableElement> getPackagedElements() { + return (EList<PackageableElement>) eDynamicGet( + UMLPackage.PACKAGE__PACKAGED_ELEMENT - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PACKAGE__PACKAGED_ELEMENT, true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PackageableElement createPackagedElement(String name, + EClass eClass) { + PackageableElement newPackagedElement = (PackageableElement) create( + eClass); + getPackagedElements().add(newPackagedElement); + if (name != null) + newPackagedElement.setName(name); + return newPackagedElement; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PackageableElement getPackagedElement(String name) { + return getPackagedElement(name, false, null, false); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PackageableElement getPackagedElement(String name, + boolean ignoreCase, EClass eClass, boolean createOnDemand) { + packagedElementLoop : for (PackageableElement packagedElement : getPackagedElements()) { + if (eClass != null && !eClass.isInstance(packagedElement)) + continue packagedElementLoop; + if (name != null && !(ignoreCase + ? name.equalsIgnoreCase(packagedElement.getName()) + : name.equals(packagedElement.getName()))) + continue packagedElementLoop; + return packagedElement; + } + return createOnDemand && eClass != null + ? createPackagedElement(name, eClass) + : null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getURI() { + return (String) eDynamicGet( + UMLPackage.PACKAGE__URI - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PACKAGE__URI, true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setURI(String newURI) { + eDynamicSet(UMLPackage.PACKAGE__URI - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PACKAGE__URI, newURI); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + public EList<PackageMerge> getPackageMerges() { + return (EList<PackageMerge>) eDynamicGet( + UMLPackage.PACKAGE__PACKAGE_MERGE - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PACKAGE__PACKAGE_MERGE, true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PackageMerge createPackageMerge( + org.eclipse.uml2.uml.Package mergedPackage) { + PackageMerge newPackageMerge = (PackageMerge) create( + UMLPackage.Literals.PACKAGE_MERGE); + getPackageMerges().add(newPackageMerge); + if (mergedPackage != null) + newPackageMerge.setMergedPackage(mergedPackage); + return newPackageMerge; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PackageMerge getPackageMerge( + org.eclipse.uml2.uml.Package mergedPackage) { + return getPackageMerge(mergedPackage, false); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PackageMerge getPackageMerge( + org.eclipse.uml2.uml.Package mergedPackage, + boolean createOnDemand) { + packageMergeLoop : for (PackageMerge packageMerge : getPackageMerges()) { + if (mergedPackage != null + && !mergedPackage.equals(packageMerge.getMergedPackage())) + continue packageMergeLoop; + return packageMerge; + } + return createOnDemand + ? createPackageMerge(mergedPackage) + : null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public EList<Type> getOwnedTypes() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + Resource eResource = eResource(); + @SuppressWarnings("unchecked") + EList<Type> ownedTypes = (EList<Type>) cache.get(eResource, this, + UMLPackage.Literals.PACKAGE__OWNED_TYPE); + if (ownedTypes == null) { + cache.put(eResource, this, + UMLPackage.Literals.PACKAGE__OWNED_TYPE, + ownedTypes = new DerivedSubsetEObjectEList<Type>(Type.class, + this, UMLPackage.PACKAGE__OWNED_TYPE, + OWNED_TYPE_ESUPERSETS)); + } + return ownedTypes; + } + return new DerivedSubsetEObjectEList<Type>(Type.class, this, + UMLPackage.PACKAGE__OWNED_TYPE, OWNED_TYPE_ESUPERSETS); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public EList<org.eclipse.uml2.uml.Package> getNestedPackages() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + Resource eResource = eResource(); + @SuppressWarnings("unchecked") + EList<org.eclipse.uml2.uml.Package> nestedPackages = (EList<org.eclipse.uml2.uml.Package>) cache + .get(eResource, this, + UMLPackage.Literals.PACKAGE__NESTED_PACKAGE); + if (nestedPackages == null) { + cache.put(eResource, this, + UMLPackage.Literals.PACKAGE__NESTED_PACKAGE, + nestedPackages = new DerivedSubsetEObjectEList<org.eclipse.uml2.uml.Package>( + org.eclipse.uml2.uml.Package.class, this, + UMLPackage.PACKAGE__NESTED_PACKAGE, + NESTED_PACKAGE_ESUPERSETS)); + } + return nestedPackages; + } + return new DerivedSubsetEObjectEList<org.eclipse.uml2.uml.Package>( + org.eclipse.uml2.uml.Package.class, this, + UMLPackage.PACKAGE__NESTED_PACKAGE, NESTED_PACKAGE_ESUPERSETS); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Package getNestingPackage() { + org.eclipse.uml2.uml.Package nestingPackage = basicGetNestingPackage(); + return nestingPackage != null && nestingPackage.eIsProxy() + ? (org.eclipse.uml2.uml.Package) eResolveProxy( + (InternalEObject) nestingPackage) + : nestingPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public org.eclipse.uml2.uml.Package basicGetNestingPackage() { + InternalEObject eInternalContainer = eInternalContainer(); + return eInternalContainer instanceof org.eclipse.uml2.uml.Package + ? (org.eclipse.uml2.uml.Package) eInternalContainer + : null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void setNestingPackage( + org.eclipse.uml2.uml.Package newNestingPackage) { + if (newNestingPackage != eInternalContainer()) { + if (EcoreUtil.isAncestor(this, newNestingPackage)) + throw new IllegalArgumentException( + "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newNestingPackage != null) + msgs = ((InternalEList<org.eclipse.uml2.uml.Package>) newNestingPackage + .getNestedPackages()).basicAdd(this, msgs); + msgs = eBasicSetContainer((InternalEObject) newNestingPackage, + InternalEObject.EOPPOSITE_FEATURE_BASE + - UMLPackage.PACKAGE__PACKAGED_ELEMENT, + msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + UMLPackage.PACKAGE__NESTING_PACKAGE, newNestingPackage, + newNestingPackage)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public EList<Stereotype> getOwnedStereotypes() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + Resource eResource = eResource(); + @SuppressWarnings("unchecked") + EList<Stereotype> ownedStereotypes = (EList<Stereotype>) cache.get( + eResource, this, UMLPackage.Literals.PACKAGE__OWNED_STEREOTYPE); + if (ownedStereotypes == null) { + cache.put(eResource, this, + UMLPackage.Literals.PACKAGE__OWNED_STEREOTYPE, + ownedStereotypes = new DerivedSubsetEObjectEList<Stereotype>( + Stereotype.class, this, + UMLPackage.PACKAGE__OWNED_STEREOTYPE, + OWNED_STEREOTYPE_ESUPERSETS)); + } + return ownedStereotypes; + } + return new DerivedSubsetEObjectEList<Stereotype>(Stereotype.class, this, + UMLPackage.PACKAGE__OWNED_STEREOTYPE, OWNED_STEREOTYPE_ESUPERSETS); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + public EList<ProfileApplication> getProfileApplications() { + return (EList<ProfileApplication>) eDynamicGet( + UMLPackage.PACKAGE__PROFILE_APPLICATION - ESTATIC_FEATURE_COUNT, + UMLPackage.Literals.PACKAGE__PROFILE_APPLICATION, true, true); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProfileApplication createProfileApplication() { + ProfileApplication newProfileApplication = (ProfileApplication) create( + UMLPackage.Literals.PROFILE_APPLICATION); + getProfileApplications().add(newProfileApplication); + return newProfileApplication; + } + + /** + * <!-- 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 boolean validateNamespaceNeedsVisibility(DiagnosticChain diagnostics, + Map<Object, Object> context) { + return PackageableElementOperations + .validateNamespaceNeedsVisibility(this, diagnostics, context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ParameterableElement> parameterableElements() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + @SuppressWarnings("unchecked") + EList<ParameterableElement> result = (EList<ParameterableElement>) cache + .get(this, + UMLPackage.Literals.TEMPLATEABLE_ELEMENT___PARAMETERABLE_ELEMENTS); + if (result == null) { + cache.put(this, + UMLPackage.Literals.TEMPLATEABLE_ELEMENT___PARAMETERABLE_ELEMENTS, + 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 validateElementsPublicOrPrivate(DiagnosticChain diagnostics, + Map<Object, Object> context) { + return PackageOperations.validateElementsPublicOrPrivate(this, + diagnostics, context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Class createOwnedClass(String name, + boolean isAbstract) { + return PackageOperations.createOwnedClass(this, name, isAbstract); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Enumeration createOwnedEnumeration(String name) { + return PackageOperations.createOwnedEnumeration(this, name); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PrimitiveType createOwnedPrimitiveType(String name) { + return PackageOperations.createOwnedPrimitiveType(this, name); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Stereotype createOwnedStereotype(String name, boolean isAbstract) { + return PackageOperations.createOwnedStereotype(this, name, isAbstract); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isProfileApplied(Profile profile) { + return PackageOperations.isProfileApplied(this, profile); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<EObject> applyProfile(Profile profile) { + return PackageOperations.applyProfile(this, profile); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<EObject> unapplyProfile(Profile profile) { + return PackageOperations.unapplyProfile(this, profile); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<EObject> applyProfiles(EList<Profile> profiles) { + return PackageOperations.applyProfiles(this, profiles); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Stereotype> allApplicableStereotypes() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + @SuppressWarnings("unchecked") + EList<Stereotype> result = (EList<Stereotype>) cache.get(this, + UMLPackage.Literals.PACKAGE___ALL_APPLICABLE_STEREOTYPES); + if (result == null) { + cache.put(this, + UMLPackage.Literals.PACKAGE___ALL_APPLICABLE_STEREOTYPES, + result = PackageOperations.allApplicableStereotypes(this)); + } + return result; + } + return PackageOperations.allApplicableStereotypes(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Profile containingProfile() { + return PackageOperations.containingProfile(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Profile> getAppliedProfiles() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + @SuppressWarnings("unchecked") + EList<Profile> result = (EList<Profile>) cache.get(this, + UMLPackage.Literals.PACKAGE___GET_APPLIED_PROFILES); + if (result == null) { + cache.put(this, + UMLPackage.Literals.PACKAGE___GET_APPLIED_PROFILES, + result = PackageOperations.getAppliedProfiles(this)); + } + return result; + } + return PackageOperations.getAppliedProfiles(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Profile getAppliedProfile(String qualifiedName) { + return PackageOperations.getAppliedProfile(this, qualifiedName); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Profile getAppliedProfile(String qualifiedName, boolean recurse) { + return PackageOperations.getAppliedProfile(this, qualifiedName, + recurse); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ProfileApplication> getAllProfileApplications() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + @SuppressWarnings("unchecked") + EList<ProfileApplication> result = (EList<ProfileApplication>) cache + .get(this, + UMLPackage.Literals.PACKAGE___GET_ALL_PROFILE_APPLICATIONS); + if (result == null) { + cache.put(this, + UMLPackage.Literals.PACKAGE___GET_ALL_PROFILE_APPLICATIONS, + result = PackageOperations.getAllProfileApplications(this)); + } + return result; + } + return PackageOperations.getAllProfileApplications(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProfileApplication getProfileApplication(Profile profile) { + return PackageOperations.getProfileApplication(this, profile); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProfileApplication getProfileApplication(Profile profile, + boolean recurse) { + return PackageOperations.getProfileApplication(this, profile, recurse); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Interface createOwnedInterface(String name) { + return PackageOperations.createOwnedInterface(this, name); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isModelLibrary() { + return PackageOperations.isModelLibrary(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Profile> getAllAppliedProfiles() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + @SuppressWarnings("unchecked") + EList<Profile> result = (EList<Profile>) cache.get(this, + UMLPackage.Literals.PACKAGE___GET_ALL_APPLIED_PROFILES); + if (result == null) { + cache.put(this, + UMLPackage.Literals.PACKAGE___GET_ALL_APPLIED_PROFILES, + result = PackageOperations.getAllAppliedProfiles(this)); + } + return result; + } + return PackageOperations.getAllAppliedProfiles(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<PackageableElement> visibleMembers() { + CacheAdapter cache = getCacheAdapter(); + if (cache != null) { + @SuppressWarnings("unchecked") + EList<PackageableElement> result = (EList<PackageableElement>) cache + .get(this, UMLPackage.Literals.PACKAGE___VISIBLE_MEMBERS); + if (result == null) { + cache.put(this, UMLPackage.Literals.PACKAGE___VISIBLE_MEMBERS, + result = PackageOperations.visibleMembers(this)); + } + return result; + } + return PackageOperations.visibleMembers(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean makesVisible(NamedElement el) { + return PackageOperations.makesVisible(this, el); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean mustBeOwned() { + return PackageOperations.mustBeOwned(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, + int featureID, NotificationChain msgs) { + switch (featureID) { + case UMLPackage.PACKAGE__EANNOTATIONS : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getEAnnotations()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_RULE : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getOwnedRules()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getElementImports()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getPackageImports()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetOwningTemplateParameter( + (TemplateParameter) otherEnd, msgs); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + TemplateParameter templateParameter = basicGetTemplateParameter(); + if (templateParameter != null) + msgs = ((InternalEObject) templateParameter).eInverseRemove( + this, + UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, + TemplateParameter.class, msgs); + return basicSetTemplateParameter((TemplateParameter) otherEnd, + msgs); + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getTemplateBindings()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + TemplateSignature ownedTemplateSignature = basicGetOwnedTemplateSignature(); + if (ownedTemplateSignature != null) + msgs = ((InternalEObject) ownedTemplateSignature) + .eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, + null, msgs); + return basicSetOwnedTemplateSignature( + (TemplateSignature) otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getPackageMerges()) + .basicAdd(otherEnd, msgs); + case UMLPackage.PACKAGE__PROFILE_APPLICATION : + return ((InternalEList<InternalEObject>) (InternalEList<?>) getProfileApplications()) + .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 UMLPackage.PACKAGE__EANNOTATIONS : + return ((InternalEList<?>) getEAnnotations()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_COMMENT : + return ((InternalEList<?>) getOwnedComments()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__NAME_EXPRESSION : + return basicSetNameExpression(null, msgs); + case UMLPackage.PACKAGE__OWNED_RULE : + return ((InternalEList<?>) getOwnedRules()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return ((InternalEList<?>) getElementImports()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return ((InternalEList<?>) getPackageImports()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return basicSetOwningTemplateParameter(null, msgs); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + return basicSetTemplateParameter(null, msgs); + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return ((InternalEList<?>) getTemplateBindings()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + return basicSetOwnedTemplateSignature(null, msgs); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return ((InternalEList<?>) getPackageMerges()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + return ((InternalEList<?>) getPackagedElements()) + .basicRemove(otherEnd, msgs); + case UMLPackage.PACKAGE__PROFILE_APPLICATION : + return ((InternalEList<?>) getProfileApplications()) + .basicRemove(otherEnd, msgs); + } + return eDynamicInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature( + NotificationChain msgs) { + switch (eContainerFeatureID()) { + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return eInternalContainer().eInverseRemove(this, + UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, + TemplateParameter.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 UMLPackage.PACKAGE__EANNOTATIONS : + return getEAnnotations(); + case UMLPackage.PACKAGE__OWNED_COMMENT : + return getOwnedComments(); + case UMLPackage.PACKAGE__OWNED_ELEMENT : + return getOwnedElements(); + case UMLPackage.PACKAGE__OWNER : + if (resolve) + return getOwner(); + return basicGetOwner(); + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + return getClientDependencies(); + case UMLPackage.PACKAGE__NAME : + return getName(); + case UMLPackage.PACKAGE__NAME_EXPRESSION : + if (resolve) + return getNameExpression(); + return basicGetNameExpression(); + case UMLPackage.PACKAGE__NAMESPACE : + if (resolve) + return getNamespace(); + return basicGetNamespace(); + case UMLPackage.PACKAGE__QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PACKAGE__VISIBILITY : + return getVisibility(); + case UMLPackage.PACKAGE__OWNED_RULE : + return getOwnedRules(); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return getElementImports(); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return getPackageImports(); + case UMLPackage.PACKAGE__OWNED_MEMBER : + return getOwnedMembers(); + case UMLPackage.PACKAGE__IMPORTED_MEMBER : + return getImportedMembers(); + case UMLPackage.PACKAGE__MEMBER : + return getMembers(); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + if (resolve) + return getOwningTemplateParameter(); + return basicGetOwningTemplateParameter(); + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + if (resolve) + return getTemplateParameter(); + return basicGetTemplateParameter(); + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return getTemplateBindings(); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + if (resolve) + return getOwnedTemplateSignature(); + return basicGetOwnedTemplateSignature(); + case UMLPackage.PACKAGE__URI : + return getURI(); + case UMLPackage.PACKAGE__NESTED_PACKAGE : + return getNestedPackages(); + case UMLPackage.PACKAGE__NESTING_PACKAGE : + if (resolve) + return getNestingPackage(); + return basicGetNestingPackage(); + case UMLPackage.PACKAGE__OWNED_STEREOTYPE : + return getOwnedStereotypes(); + case UMLPackage.PACKAGE__OWNED_TYPE : + return getOwnedTypes(); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return getPackageMerges(); + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + return getPackagedElements(); + case UMLPackage.PACKAGE__PROFILE_APPLICATION : + return getProfileApplications(); + } + 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 UMLPackage.PACKAGE__EANNOTATIONS : + getEAnnotations().clear(); + getEAnnotations() + .addAll((Collection<? extends EAnnotation>) newValue); + return; + case UMLPackage.PACKAGE__OWNED_COMMENT : + getOwnedComments().clear(); + getOwnedComments() + .addAll((Collection<? extends Comment>) newValue); + return; + case UMLPackage.PACKAGE__NAME : + setName((String) newValue); + return; + case UMLPackage.PACKAGE__NAME_EXPRESSION : + setNameExpression((StringExpression) newValue); + return; + case UMLPackage.PACKAGE__VISIBILITY : + setVisibility((VisibilityKind) newValue); + return; + case UMLPackage.PACKAGE__OWNED_RULE : + getOwnedRules().clear(); + getOwnedRules() + .addAll((Collection<? extends Constraint>) newValue); + return; + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + getElementImports().clear(); + getElementImports() + .addAll((Collection<? extends ElementImport>) newValue); + return; + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + getPackageImports().clear(); + getPackageImports() + .addAll((Collection<? extends PackageImport>) newValue); + return; + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) newValue); + return; + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + getTemplateBindings() + .addAll((Collection<? extends TemplateBinding>) newValue); + return; + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) newValue); + return; + case UMLPackage.PACKAGE__URI : + setURI((String) newValue); + return; + case UMLPackage.PACKAGE__NESTED_PACKAGE : + getNestedPackages().clear(); + getNestedPackages().addAll( + (Collection<? extends org.eclipse.uml2.uml.Package>) newValue); + return; + case UMLPackage.PACKAGE__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) newValue); + return; + case UMLPackage.PACKAGE__OWNED_TYPE : + getOwnedTypes().clear(); + getOwnedTypes().addAll((Collection<? extends Type>) newValue); + return; + case UMLPackage.PACKAGE__PACKAGE_MERGE : + getPackageMerges().clear(); + getPackageMerges() + .addAll((Collection<? extends PackageMerge>) newValue); + return; + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + getPackagedElements().clear(); + getPackagedElements().addAll( + (Collection<? extends PackageableElement>) newValue); + return; + case UMLPackage.PACKAGE__PROFILE_APPLICATION : + getProfileApplications().clear(); + getProfileApplications().addAll( + (Collection<? extends ProfileApplication>) newValue); + return; + } + eDynamicSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case UMLPackage.PACKAGE__EANNOTATIONS : + getEAnnotations().clear(); + return; + case UMLPackage.PACKAGE__OWNED_COMMENT : + getOwnedComments().clear(); + return; + case UMLPackage.PACKAGE__NAME : + unsetName(); + return; + case UMLPackage.PACKAGE__NAME_EXPRESSION : + setNameExpression((StringExpression) null); + return; + case UMLPackage.PACKAGE__VISIBILITY : + unsetVisibility(); + return; + case UMLPackage.PACKAGE__OWNED_RULE : + getOwnedRules().clear(); + return; + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + getElementImports().clear(); + return; + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + getPackageImports().clear(); + return; + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + setOwningTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + setTemplateParameter((TemplateParameter) null); + return; + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + getTemplateBindings().clear(); + return; + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + setOwnedTemplateSignature((TemplateSignature) null); + return; + case UMLPackage.PACKAGE__URI : + setURI(URI_EDEFAULT); + return; + case UMLPackage.PACKAGE__NESTED_PACKAGE : + getNestedPackages().clear(); + return; + case UMLPackage.PACKAGE__NESTING_PACKAGE : + setNestingPackage((org.eclipse.uml2.uml.Package) null); + return; + case UMLPackage.PACKAGE__OWNED_TYPE : + getOwnedTypes().clear(); + return; + case UMLPackage.PACKAGE__PACKAGE_MERGE : + getPackageMerges().clear(); + return; + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + getPackagedElements().clear(); + return; + case UMLPackage.PACKAGE__PROFILE_APPLICATION : + getProfileApplications().clear(); + return; + } + eDynamicUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case UMLPackage.PACKAGE__EANNOTATIONS : + return !getEAnnotations().isEmpty(); + case UMLPackage.PACKAGE__OWNED_COMMENT : + return !getOwnedComments().isEmpty(); + case UMLPackage.PACKAGE__OWNED_ELEMENT : + return isSetOwnedElements(); + case UMLPackage.PACKAGE__OWNER : + return isSetOwner(); + case UMLPackage.PACKAGE__CLIENT_DEPENDENCY : + return !getClientDependencies().isEmpty(); + case UMLPackage.PACKAGE__NAME : + return isSetName(); + case UMLPackage.PACKAGE__NAME_EXPRESSION : + return basicGetNameExpression() != null; + case UMLPackage.PACKAGE__NAMESPACE : + return isSetNamespace(); + case UMLPackage.PACKAGE__QUALIFIED_NAME : + return QUALIFIED_NAME_EDEFAULT == null + ? getQualifiedName() != null + : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); + case UMLPackage.PACKAGE__VISIBILITY : + return isSetVisibility(); + case UMLPackage.PACKAGE__OWNED_RULE : + return !getOwnedRules().isEmpty(); + case UMLPackage.PACKAGE__ELEMENT_IMPORT : + return !getElementImports().isEmpty(); + case UMLPackage.PACKAGE__PACKAGE_IMPORT : + return !getPackageImports().isEmpty(); + case UMLPackage.PACKAGE__OWNED_MEMBER : + return isSetOwnedMembers(); + case UMLPackage.PACKAGE__IMPORTED_MEMBER : + return !getImportedMembers().isEmpty(); + case UMLPackage.PACKAGE__MEMBER : + return isSetMembers(); + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return basicGetOwningTemplateParameter() != null; + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + return basicGetTemplateParameter() != null; + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return !getTemplateBindings().isEmpty(); + case UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE : + return basicGetOwnedTemplateSignature() != null; + case UMLPackage.PACKAGE__URI : + return URI_EDEFAULT == null + ? getURI() != null + : !URI_EDEFAULT.equals(getURI()); + case UMLPackage.PACKAGE__NESTED_PACKAGE : + return !getNestedPackages().isEmpty(); + case UMLPackage.PACKAGE__NESTING_PACKAGE : + return basicGetNestingPackage() != null; + case UMLPackage.PACKAGE__OWNED_STEREOTYPE : + return !getOwnedStereotypes().isEmpty(); + case UMLPackage.PACKAGE__OWNED_TYPE : + return !getOwnedTypes().isEmpty(); + case UMLPackage.PACKAGE__PACKAGE_MERGE : + return !getPackageMerges().isEmpty(); + case UMLPackage.PACKAGE__PACKAGED_ELEMENT : + return !getPackagedElements().isEmpty(); + case UMLPackage.PACKAGE__PROFILE_APPLICATION : + return !getProfileApplications().isEmpty(); + } + return eDynamicIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, + Class<?> baseClass) { + if (baseClass == ParameterableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; + case UMLPackage.PACKAGE__TEMPLATE_PARAMETER : + return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (derivedFeatureID) { + case UMLPackage.PACKAGE__TEMPLATE_BINDING : + return UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING; + case UMLPackage.PACKAGE__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 + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, + Class<?> baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseFeatureID) { + case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : + return UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER; + case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : + return UMLPackage.PACKAGE__TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseFeatureID) { + case UMLPackage.TEMPLATEABLE_ELEMENT__TEMPLATE_BINDING : + return UMLPackage.PACKAGE__TEMPLATE_BINDING; + case UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE : + return UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) { + if (baseClass == ParameterableElement.class) { + switch (baseOperationID) { + case UMLPackage.PARAMETERABLE_ELEMENT___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT : + return UMLPackage.PACKAGE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT; + case UMLPackage.PARAMETERABLE_ELEMENT___IS_TEMPLATE_PARAMETER : + return UMLPackage.PACKAGE___IS_TEMPLATE_PARAMETER; + default : + return -1; + } + } + if (baseClass == PackageableElement.class) { + switch (baseOperationID) { + case UMLPackage.PACKAGEABLE_ELEMENT___VALIDATE_NAMESPACE_NEEDS_VISIBILITY__DIAGNOSTICCHAIN_MAP : + return UMLPackage.PACKAGE___VALIDATE_NAMESPACE_NEEDS_VISIBILITY__DIAGNOSTICCHAIN_MAP; + default : + return -1; + } + } + if (baseClass == TemplateableElement.class) { + switch (baseOperationID) { + case UMLPackage.TEMPLATEABLE_ELEMENT___IS_TEMPLATE : + return UMLPackage.PACKAGE___IS_TEMPLATE; + case UMLPackage.TEMPLATEABLE_ELEMENT___PARAMETERABLE_ELEMENTS : + return UMLPackage.PACKAGE___PARAMETERABLE_ELEMENTS; + default : + return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList<?> arguments) + throws InvocationTargetException { + switch (operationID) { + case UMLPackage.PACKAGE___GET_EANNOTATION__STRING : + return getEAnnotation((String) arguments.get(0)); + case UMLPackage.PACKAGE___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP : + return validateHasOwner((DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP : + return validateNotOwnSelf((DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___ADD_KEYWORD__STRING : + return addKeyword((String) arguments.get(0)); + case UMLPackage.PACKAGE___APPLY_STEREOTYPE__STEREOTYPE : + return applyStereotype((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___CREATE_EANNOTATION__STRING : + return createEAnnotation((String) arguments.get(0)); + case UMLPackage.PACKAGE___DESTROY : + destroy(); + return null; + case UMLPackage.PACKAGE___GET_KEYWORDS : + return getKeywords(); + case UMLPackage.PACKAGE___GET_APPLICABLE_STEREOTYPE__STRING : + return getApplicableStereotype((String) arguments.get(0)); + case UMLPackage.PACKAGE___GET_APPLICABLE_STEREOTYPES : + return getApplicableStereotypes(); + case UMLPackage.PACKAGE___GET_APPLIED_STEREOTYPE__STRING : + return getAppliedStereotype((String) arguments.get(0)); + case UMLPackage.PACKAGE___GET_APPLIED_STEREOTYPES : + return getAppliedStereotypes(); + case UMLPackage.PACKAGE___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING : + return getAppliedSubstereotype((Stereotype) arguments.get(0), + (String) arguments.get(1)); + case UMLPackage.PACKAGE___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE : + return getAppliedSubstereotypes((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___GET_MODEL : + return getModel(); + case UMLPackage.PACKAGE___GET_NEAREST_PACKAGE : + return getNearestPackage(); + case UMLPackage.PACKAGE___GET_RELATIONSHIPS : + return getRelationships(); + case UMLPackage.PACKAGE___GET_RELATIONSHIPS__ECLASS : + return getRelationships((EClass) arguments.get(0)); + case UMLPackage.PACKAGE___GET_REQUIRED_STEREOTYPE__STRING : + return getRequiredStereotype((String) arguments.get(0)); + case UMLPackage.PACKAGE___GET_REQUIRED_STEREOTYPES : + return getRequiredStereotypes(); + case UMLPackage.PACKAGE___GET_SOURCE_DIRECTED_RELATIONSHIPS : + return getSourceDirectedRelationships(); + case UMLPackage.PACKAGE___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS : + return getSourceDirectedRelationships( + (EClass) arguments.get(0)); + case UMLPackage.PACKAGE___GET_STEREOTYPE_APPLICATION__STEREOTYPE : + return getStereotypeApplication((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___GET_STEREOTYPE_APPLICATIONS : + return getStereotypeApplications(); + case UMLPackage.PACKAGE___GET_TARGET_DIRECTED_RELATIONSHIPS : + return getTargetDirectedRelationships(); + case UMLPackage.PACKAGE___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS : + return getTargetDirectedRelationships( + (EClass) arguments.get(0)); + case UMLPackage.PACKAGE___GET_VALUE__STEREOTYPE_STRING : + return getValue((Stereotype) arguments.get(0), + (String) arguments.get(1)); + case UMLPackage.PACKAGE___HAS_KEYWORD__STRING : + return hasKeyword((String) arguments.get(0)); + case UMLPackage.PACKAGE___HAS_VALUE__STEREOTYPE_STRING : + return hasValue((Stereotype) arguments.get(0), + (String) arguments.get(1)); + case UMLPackage.PACKAGE___IS_STEREOTYPE_APPLICABLE__STEREOTYPE : + return isStereotypeApplicable((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___IS_STEREOTYPE_APPLIED__STEREOTYPE : + return isStereotypeApplied((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___IS_STEREOTYPE_REQUIRED__STEREOTYPE : + return isStereotypeRequired((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___REMOVE_KEYWORD__STRING : + return removeKeyword((String) arguments.get(0)); + case UMLPackage.PACKAGE___SET_VALUE__STEREOTYPE_STRING_OBJECT : + setValue((Stereotype) arguments.get(0), + (String) arguments.get(1), arguments.get(2)); + return null; + case UMLPackage.PACKAGE___UNAPPLY_STEREOTYPE__STEREOTYPE : + return unapplyStereotype((Stereotype) arguments.get(0)); + case UMLPackage.PACKAGE___ALL_OWNED_ELEMENTS : + return allOwnedElements(); + case UMLPackage.PACKAGE___MUST_BE_OWNED : + return mustBeOwned(); + case UMLPackage.PACKAGE___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP : + return validateVisibilityNeedsOwnership( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP : + return validateHasQualifiedName( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP : + return validateHasNoQualifiedName( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___CREATE_DEPENDENCY__NAMEDELEMENT : + return createDependency((NamedElement) arguments.get(0)); + case UMLPackage.PACKAGE___CREATE_USAGE__NAMEDELEMENT : + return createUsage((NamedElement) arguments.get(0)); + case UMLPackage.PACKAGE___GET_LABEL : + return getLabel(); + case UMLPackage.PACKAGE___GET_LABEL__BOOLEAN : + return getLabel((Boolean) arguments.get(0)); + case UMLPackage.PACKAGE___GET_NAMESPACE : + return getNamespace(); + case UMLPackage.PACKAGE___ALL_NAMESPACES : + return allNamespaces(); + case UMLPackage.PACKAGE___ALL_OWNING_PACKAGES : + return allOwningPackages(); + case UMLPackage.PACKAGE___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE : + return isDistinguishableFrom((NamedElement) arguments.get(0), + (Namespace) arguments.get(1)); + case UMLPackage.PACKAGE___GET_QUALIFIED_NAME : + return getQualifiedName(); + case UMLPackage.PACKAGE___SEPARATOR : + return separator(); + case UMLPackage.PACKAGE___GET_CLIENT_DEPENDENCIES : + return getClientDependencies(); + case UMLPackage.PACKAGE___VALIDATE_MEMBERS_DISTINGUISHABLE__DIAGNOSTICCHAIN_MAP : + return validateMembersDistinguishable( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___VALIDATE_CANNOT_IMPORT_SELF__DIAGNOSTICCHAIN_MAP : + return validateCannotImportSelf( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___VALIDATE_CANNOT_IMPORT_OWNED_MEMBERS__DIAGNOSTICCHAIN_MAP : + return validateCannotImportOwnedMembers( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___CREATE_ELEMENT_IMPORT__PACKAGEABLEELEMENT_VISIBILITYKIND : + return createElementImport( + (PackageableElement) arguments.get(0), + (VisibilityKind) arguments.get(1)); + case UMLPackage.PACKAGE___CREATE_PACKAGE_IMPORT__PACKAGE_VISIBILITYKIND : + return createPackageImport( + (org.eclipse.uml2.uml.Package) arguments.get(0), + (VisibilityKind) arguments.get(1)); + case UMLPackage.PACKAGE___GET_IMPORTED_ELEMENTS : + return getImportedElements(); + case UMLPackage.PACKAGE___GET_IMPORTED_PACKAGES : + return getImportedPackages(); + case UMLPackage.PACKAGE___GET_OWNED_MEMBERS : + return getOwnedMembers(); + case UMLPackage.PACKAGE___EXCLUDE_COLLISIONS__ELIST : + return excludeCollisions( + (EList<PackageableElement>) arguments.get(0)); + case UMLPackage.PACKAGE___GET_NAMES_OF_MEMBER__NAMEDELEMENT : + return getNamesOfMember((NamedElement) arguments.get(0)); + case UMLPackage.PACKAGE___IMPORT_MEMBERS__ELIST : + return importMembers( + (EList<PackageableElement>) arguments.get(0)); + case UMLPackage.PACKAGE___GET_IMPORTED_MEMBERS : + return getImportedMembers(); + case UMLPackage.PACKAGE___MEMBERS_ARE_DISTINGUISHABLE : + return membersAreDistinguishable(); + case UMLPackage.PACKAGE___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT : + return isCompatibleWith( + (ParameterableElement) arguments.get(0)); + case UMLPackage.PACKAGE___IS_TEMPLATE_PARAMETER : + return isTemplateParameter(); + case UMLPackage.PACKAGE___VALIDATE_NAMESPACE_NEEDS_VISIBILITY__DIAGNOSTICCHAIN_MAP : + return validateNamespaceNeedsVisibility( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___IS_TEMPLATE : + return isTemplate(); + case UMLPackage.PACKAGE___PARAMETERABLE_ELEMENTS : + return parameterableElements(); + case UMLPackage.PACKAGE___VALIDATE_ELEMENTS_PUBLIC_OR_PRIVATE__DIAGNOSTICCHAIN_MAP : + return validateElementsPublicOrPrivate( + (DiagnosticChain) arguments.get(0), + (Map<Object, Object>) arguments.get(1)); + case UMLPackage.PACKAGE___APPLY_PROFILE__PROFILE : + return applyProfile((Profile) arguments.get(0)); + case UMLPackage.PACKAGE___CREATE_OWNED_CLASS__STRING_BOOLEAN : + return createOwnedClass((String) arguments.get(0), + (Boolean) arguments.get(1)); + case UMLPackage.PACKAGE___CREATE_OWNED_ENUMERATION__STRING : + return createOwnedEnumeration((String) arguments.get(0)); + case UMLPackage.PACKAGE___CREATE_OWNED_INTERFACE__STRING : + return createOwnedInterface((String) arguments.get(0)); + case UMLPackage.PACKAGE___CREATE_OWNED_PRIMITIVE_TYPE__STRING : + return createOwnedPrimitiveType((String) arguments.get(0)); + case UMLPackage.PACKAGE___CREATE_OWNED_STEREOTYPE__STRING_BOOLEAN : + return createOwnedStereotype((String) arguments.get(0), + (Boolean) arguments.get(1)); + case UMLPackage.PACKAGE___GET_ALL_APPLIED_PROFILES : + return getAllAppliedProfiles(); + case UMLPackage.PACKAGE___GET_ALL_PROFILE_APPLICATIONS : + return getAllProfileApplications(); + case UMLPackage.PACKAGE___GET_APPLIED_PROFILE__STRING : + return getAppliedProfile((String) arguments.get(0)); + case UMLPackage.PACKAGE___GET_APPLIED_PROFILE__STRING_BOOLEAN : + return getAppliedProfile((String) arguments.get(0), + (Boolean) arguments.get(1)); + case UMLPackage.PACKAGE___GET_APPLIED_PROFILES : + return getAppliedProfiles(); + case UMLPackage.PACKAGE___GET_PROFILE_APPLICATION__PROFILE : + return getProfileApplication((Profile) arguments.get(0)); + case UMLPackage.PACKAGE___GET_PROFILE_APPLICATION__PROFILE_BOOLEAN : + return getProfileApplication((Profile) arguments.get(0), + (Boolean) arguments.get(1)); + case UMLPackage.PACKAGE___IS_MODEL_LIBRARY : + return isModelLibrary(); + case UMLPackage.PACKAGE___IS_PROFILE_APPLIED__PROFILE : + return isProfileApplied((Profile) arguments.get(0)); + case UMLPackage.PACKAGE___UNAPPLY_PROFILE__PROFILE : + return unapplyProfile((Profile) arguments.get(0)); + case UMLPackage.PACKAGE___APPLY_PROFILES__ELIST : + return applyProfiles((EList<Profile>) arguments.get(0)); + case UMLPackage.PACKAGE___ALL_APPLICABLE_STEREOTYPES : + return allApplicableStereotypes(); + case UMLPackage.PACKAGE___CONTAINING_PROFILE : + return containingProfile(); + case UMLPackage.PACKAGE___MAKES_VISIBLE__NAMEDELEMENT : + return makesVisible((NamedElement) arguments.get(0)); + case UMLPackage.PACKAGE___GET_NESTED_PACKAGES : + return getNestedPackages(); + case UMLPackage.PACKAGE___GET_OWNED_STEREOTYPES : + return getOwnedStereotypes(); + case UMLPackage.PACKAGE___GET_OWNED_TYPES : + return getOwnedTypes(); + case UMLPackage.PACKAGE___VISIBLE_MEMBERS : + return visibleMembers(); + } + return eDynamicInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Element basicGetOwner() { + TemplateParameter owningTemplateParameter = basicGetOwningTemplateParameter(); + if (owningTemplateParameter != null) { + return owningTemplateParameter; + } + return super.basicGetOwner(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetOwner() { + return super.isSetOwner() + || eIsSet(UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER); + } + + /** + * The array of subset feature identifiers for the '{@link #getOwnedElements() <em>Owned Element</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOwnedElements() + * @generated + * @ordered + */ + protected static final int[] OWNED_ELEMENT_ESUBSETS = new int[]{ + UMLPackage.PACKAGE__OWNED_COMMENT, UMLPackage.PACKAGE__NAME_EXPRESSION, + UMLPackage.PACKAGE__ELEMENT_IMPORT, UMLPackage.PACKAGE__PACKAGE_IMPORT, + UMLPackage.PACKAGE__OWNED_MEMBER, UMLPackage.PACKAGE__TEMPLATE_BINDING, + UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE, + UMLPackage.PACKAGE__PACKAGE_MERGE, + UMLPackage.PACKAGE__PROFILE_APPLICATION}; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetOwnedElements() { + return super.isSetOwnedElements() + || eIsSet(UMLPackage.PACKAGE__TEMPLATE_BINDING) + || eIsSet(UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE) + || eIsSet(UMLPackage.PACKAGE__PACKAGE_MERGE) + || eIsSet(UMLPackage.PACKAGE__PROFILE_APPLICATION); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetNamespace() { + return super.isSetNamespace() + || eIsSet(UMLPackage.PACKAGE__NESTING_PACKAGE); + } + + /** + * The array of subset feature identifiers for the '{@link #getOwnedMembers() <em>Owned Member</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOwnedMembers() + * @generated + * @ordered + */ + protected static final int[] OWNED_MEMBER_ESUBSETS = new int[]{ + UMLPackage.PACKAGE__OWNED_RULE, UMLPackage.PACKAGE__PACKAGED_ELEMENT}; + + /** + * The array of superset feature identifiers for the '{@link #getNestedPackages() <em>Nested Package</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getNestedPackages() + * @generated + * @ordered + */ + protected static final int[] NESTED_PACKAGE_ESUPERSETS = new int[]{ + UMLPackage.PACKAGE__PACKAGED_ELEMENT}; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Package createNestedPackage(String name, + EClass eClass) { + org.eclipse.uml2.uml.Package newNestedPackage = (org.eclipse.uml2.uml.Package) create( + eClass); + getNestedPackages().add(newNestedPackage); + if (name != null) + newNestedPackage.setName(name); + return newNestedPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Package createNestedPackage(String name) { + return createNestedPackage(name, UMLPackage.Literals.PACKAGE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Package getNestedPackage(String name) { + return getNestedPackage(name, false, null, false); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.uml2.uml.Package getNestedPackage(String name, + boolean ignoreCase, EClass eClass, boolean createOnDemand) { + nestedPackageLoop : for (org.eclipse.uml2.uml.Package nestedPackage : getNestedPackages()) { + if (eClass != null && !eClass.isInstance(nestedPackage)) + continue nestedPackageLoop; + if (name != null && !(ignoreCase + ? name.equalsIgnoreCase(nestedPackage.getName()) + : name.equals(nestedPackage.getName()))) + continue nestedPackageLoop; + return nestedPackage; + } + return createOnDemand && eClass != null + ? createNestedPackage(name, eClass) + : null; + } + + /** + * The array of superset feature identifiers for the '{@link #getOwnedStereotypes() <em>Owned Stereotype</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOwnedStereotypes() + * @generated + * @ordered + */ + protected static final int[] OWNED_STEREOTYPE_ESUPERSETS = new int[]{ + UMLPackage.PACKAGE__PACKAGED_ELEMENT}; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Stereotype getOwnedStereotype(String name) { + return getOwnedStereotype(name, false); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Stereotype getOwnedStereotype(String name, boolean ignoreCase) { + ownedStereotypeLoop : for (Stereotype ownedStereotype : getOwnedStereotypes()) { + if (name != null && !(ignoreCase + ? name.equalsIgnoreCase(ownedStereotype.getName()) + : name.equals(ownedStereotype.getName()))) + continue ownedStereotypeLoop; + return ownedStereotype; + } + return null; + } + + /** + * The array of superset feature identifiers for the '{@link #getOwnedTypes() <em>Owned Type</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOwnedTypes() + * @generated + * @ordered + */ + protected static final int[] OWNED_TYPE_ESUPERSETS = new int[]{ + UMLPackage.PACKAGE__PACKAGED_ELEMENT}; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Type createOwnedType(String name, EClass eClass) { + return (Type) createPackagedElement(name, eClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Type getOwnedType(String name) { + return getOwnedType(name, false, null, false); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Type getOwnedType(String name, boolean ignoreCase, EClass eClass, + boolean createOnDemand) { + ownedTypeLoop : for (Type ownedType : getOwnedTypes()) { + if (eClass != null && !eClass.isInstance(ownedType)) + continue ownedTypeLoop; + if (name != null && !(ignoreCase + ? name.equalsIgnoreCase(ownedType.getName()) + : name.equals(ownedType.getName()))) + continue ownedTypeLoop; + return ownedType; + } + return createOnDemand && eClass != null + ? createOwnedType(name, eClass) + : null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetOwnedMembers() { + return super.isSetOwnedMembers() + || eIsSet(UMLPackage.PACKAGE__PACKAGED_ELEMENT); + } + +} //PackageImpl |