All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2005, 2014 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
 *   Kenn Hussey (CEA) - 327039, 351774, 418466
 *
 */
package org.eclipse.uml2.uml.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.InternalEObject;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

import org.eclipse.emf.ecore.resource.Resource;

import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.InternalEList;

import org.eclipse.uml2.common.util.CacheAdapter;
import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;

import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Comment;
import org.eclipse.uml2.uml.DeployedArtifact;
import org.eclipse.uml2.uml.Deployment;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.PackageableElement;
import org.eclipse.uml2.uml.ParameterableElement;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.Stereotype;
import org.eclipse.uml2.uml.StringExpression;
import org.eclipse.uml2.uml.TemplateParameter;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.ValueSpecification;
import org.eclipse.uml2.uml.VisibilityKind;

import org.eclipse.uml2.uml.internal.operations.InstanceSpecificationOperations;
import org.eclipse.uml2.uml.internal.operations.PackageableElementOperations;
import org.eclipse.uml2.uml.internal.operations.ParameterableElementOperations;

/**
 * 
 * An implementation of the model object 'Instance Specification'.
 * 
 * 

* The following features are implemented: *

    *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwner Owner}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getTemplateParameter Template Parameter}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwningTemplateParameter Owning Template Parameter}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getVisibility Visibility}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwnedElements Owned Element}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getClassifiers Classifier}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getSlots Slot}
  • *
  • {@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getSpecification Specification}
  • *
*

* * @generated */ public class InstanceSpecificationImpl extends DeploymentTargetImpl implements InstanceSpecification { /** * The cached value of the '{@link #getTemplateParameter() Template Parameter}' reference. * * * @see #getTemplateParameter() * @generated * @ordered */ protected TemplateParameter templateParameter; /** * The cached value of the '{@link #getClassifiers() Classifier}' reference list. * * * @see #getClassifiers() * @generated * @ordered */ protected EList classifiers; /** * The cached value of the '{@link #getSlots() Slot}' containment reference list. * * * @see #getSlots() * @generated * @ordered */ protected EList slots; /** * The cached value of the '{@link #getSpecification() Specification}' containment reference. * * * @see #getSpecification() * @generated * @ordered */ protected ValueSpecification specification; /** * * * @generated */ protected InstanceSpecificationImpl() { super(); } /** * * * @generated */ @Override protected EClass eStaticClass() { return UMLPackage.Literals.INSTANCE_SPECIFICATION; } /** * * * @generated */ @Override public Element getOwner() { Element owner = basicGetOwner(); return owner != null && owner.eIsProxy() ? (Element) eResolveProxy((InternalEObject) owner) : owner; } /** * * * @generated */ public TemplateParameter getTemplateParameter() { if (templateParameter != null && templateParameter.eIsProxy()) { InternalEObject oldTemplateParameter = (InternalEObject) templateParameter; templateParameter = (TemplateParameter) eResolveProxy(oldTemplateParameter); if (templateParameter != oldTemplateParameter) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter)); } } return templateParameter; } /** * * * @generated */ public TemplateParameter basicGetTemplateParameter() { return templateParameter; } /** * * * @generated */ public NotificationChain basicSetTemplateParameter( TemplateParameter newTemplateParameter, NotificationChain msgs) { TemplateParameter oldTemplateParameter = templateParameter; templateParameter = newTemplateParameter; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, oldTemplateParameter, newTemplateParameter); if (msgs == null) msgs = notification; else msgs.add(notification); } Resource.Internal eInternalResource = eInternalResource(); if (eInternalResource == null || !eInternalResource.isLoading()) { TemplateParameter owningTemplateParameter = basicGetOwningTemplateParameter(); if (owningTemplateParameter != null && owningTemplateParameter != newTemplateParameter) { setOwningTemplateParameter(null); } } return msgs; } /** * * * @generated */ public void setTemplateParameter(TemplateParameter newTemplateParameter) { if (newTemplateParameter != templateParameter) { NotificationChain msgs = null; if (templateParameter != null) msgs = ((InternalEObject) templateParameter).eInverseRemove( this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, TemplateParameter.class, msgs); if (newTemplateParameter != null) msgs = ((InternalEObject) newTemplateParameter).eInverseAdd( this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, TemplateParameter.class, msgs); msgs = basicSetTemplateParameter(newTemplateParameter, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER, newTemplateParameter, newTemplateParameter)); } /** * * * @generated */ public TemplateParameter getOwningTemplateParameter() { if (eContainerFeatureID() != UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER) return null; return (TemplateParameter) eContainer(); } /** * * * @generated */ public TemplateParameter basicGetOwningTemplateParameter() { if (eContainerFeatureID() != UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER) return null; return (TemplateParameter) eInternalContainer(); } /** * * * @generated */ public NotificationChain basicSetOwningTemplateParameter( TemplateParameter newOwningTemplateParameter, NotificationChain msgs) { msgs = eBasicSetContainer((InternalEObject) newOwningTemplateParameter, UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, msgs); Resource.Internal eInternalResource = eInternalResource(); if (eInternalResource == null || !eInternalResource.isLoading()) { if (newOwningTemplateParameter != null) { if (newOwningTemplateParameter != templateParameter) { setTemplateParameter(newOwningTemplateParameter); } } } return msgs; } /** * * * @generated */ public void setOwningTemplateParameter( TemplateParameter newOwningTemplateParameter) { if (newOwningTemplateParameter != eInternalContainer() || (eContainerFeatureID() != UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER && newOwningTemplateParameter != null)) { if (EcoreUtil.isAncestor(this, newOwningTemplateParameter)) throw new IllegalArgumentException( "Recursive containment not allowed for " + toString()); //$NON-NLS-1$ NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); if (newOwningTemplateParameter != null) msgs = ((InternalEObject) newOwningTemplateParameter) .eInverseAdd( this, UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, TemplateParameter.class, msgs); msgs = basicSetOwningTemplateParameter(newOwningTemplateParameter, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER, newOwningTemplateParameter, newOwningTemplateParameter)); } /** * * * @generated */ @Override public VisibilityKind getVisibility() { return VISIBILITY_EFLAG_VALUES[(eFlags & VISIBILITY_EFLAG) >>> VISIBILITY_EFLAG_OFFSET]; } /** * * * @generated */ @Override public void setVisibility(VisibilityKind newVisibility) { VisibilityKind oldVisibility = VISIBILITY_EFLAG_VALUES[(eFlags & VISIBILITY_EFLAG) >>> VISIBILITY_EFLAG_OFFSET]; if (newVisibility == null) newVisibility = VISIBILITY_EDEFAULT; eFlags = eFlags & ~VISIBILITY_EFLAG | newVisibility.ordinal() << VISIBILITY_EFLAG_OFFSET; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY, oldVisibility, newVisibility)); } /** * * * @generated */ public boolean isSetVisibility() { return (eFlags & VISIBILITY_EFLAG) != VISIBILITY_EFLAG_DEFAULT; } /** * * * @generated */ @Override public EList getOwnedElements() { CacheAdapter cache = getCacheAdapter(); if (cache != null) { Resource eResource = eResource(); @SuppressWarnings("unchecked") EList ownedElements = (EList) 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.class, this, UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT, OWNED_ELEMENT_ESUBSETS)); } return ownedElements; } return new DerivedUnionEObjectEList(Element.class, this, UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT, OWNED_ELEMENT_ESUBSETS); } /** * * * @generated */ public EList getClassifiers() { if (classifiers == null) { classifiers = new EObjectResolvingEList( Classifier.class, this, UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER); } return classifiers; } /** * * * @generated */ public Classifier getClassifier(String name) { return getClassifier(name, false, null); } /** * * * @generated */ public Classifier getClassifier(String name, boolean ignoreCase, EClass eClass) { classifierLoop : for (Classifier classifier : getClassifiers()) { if (eClass != null && !eClass.isInstance(classifier)) continue classifierLoop; if (name != null && !(ignoreCase ? name.equalsIgnoreCase(classifier.getName()) : name.equals(classifier.getName()))) continue classifierLoop; return classifier; } return null; } /** * * * @generated */ public ValueSpecification getSpecification() { if (specification != null && specification.eIsProxy()) { InternalEObject oldSpecification = (InternalEObject) specification; specification = (ValueSpecification) eResolveProxy(oldSpecification); if (specification != oldSpecification) { InternalEObject newSpecification = (InternalEObject) specification; NotificationChain msgs = oldSpecification.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, null, null); if (newSpecification.eInternalContainer() == null) { msgs = newSpecification.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, null, msgs); } if (msgs != null) msgs.dispatch(); if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, oldSpecification, specification)); } } return specification; } /** * * * @generated */ public ValueSpecification basicGetSpecification() { return specification; } /** * * * @generated */ public NotificationChain basicSetSpecification( ValueSpecification newSpecification, NotificationChain msgs) { ValueSpecification oldSpecification = specification; specification = newSpecification; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, oldSpecification, newSpecification); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * * * @generated */ public void setSpecification(ValueSpecification newSpecification) { if (newSpecification != specification) { NotificationChain msgs = null; if (specification != null) msgs = ((InternalEObject) specification).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, null, msgs); if (newSpecification != null) msgs = ((InternalEObject) newSpecification).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, null, msgs); msgs = basicSetSpecification(newSpecification, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION, newSpecification, newSpecification)); } /** * * * @generated */ public ValueSpecification createSpecification(String name, Type type, EClass eClass) { ValueSpecification newSpecification = (ValueSpecification) create(eClass); setSpecification(newSpecification); if (name != null) newSpecification.setName(name); if (type != null) newSpecification.setType(type); return newSpecification; } /** * * * @generated */ public EList getSlots() { if (slots == null) { slots = new EObjectContainmentWithInverseEList.Resolving( Slot.class, this, UMLPackage.INSTANCE_SPECIFICATION__SLOT, UMLPackage.SLOT__OWNING_INSTANCE); } return slots; } /** * * * @generated */ public Slot createSlot() { Slot newSlot = (Slot) create(UMLPackage.Literals.SLOT); getSlots().add(newSlot); return newSlot; } /** * * * @generated */ public boolean isCompatibleWith(ParameterableElement p) { return ParameterableElementOperations.isCompatibleWith(this, p); } /** * * * @generated */ public boolean isTemplateParameter() { return ParameterableElementOperations.isTemplateParameter(this); } /** * * * @generated */ public boolean validateNamespaceNeedsVisibility( DiagnosticChain diagnostics, Map context) { return PackageableElementOperations.validateNamespaceNeedsVisibility( this, diagnostics, context); } /** * * * @generated */ public boolean validateDefiningFeature(DiagnosticChain diagnostics, Map context) { return InstanceSpecificationOperations.validateDefiningFeature(this, diagnostics, context); } /** * * * @generated */ public boolean validateStructuralFeature(DiagnosticChain diagnostics, Map context) { return InstanceSpecificationOperations.validateStructuralFeature(this, diagnostics, context); } /** * * * @generated */ public boolean validateDeploymentTarget(DiagnosticChain diagnostics, Map context) { return InstanceSpecificationOperations.validateDeploymentTarget(this, diagnostics, context); } /** * * * @generated */ public boolean validateDeploymentArtifact(DiagnosticChain diagnostics, Map context) { return InstanceSpecificationOperations.validateDeploymentArtifact(this, diagnostics, context); } /** * * * @generated */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : return ((InternalEList) (InternalEList) getEAnnotations()) .basicAdd(otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : return ((InternalEList) (InternalEList) getDeployments()) .basicAdd(otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return basicSetOwningTemplateParameter( (TemplateParameter) otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : if (templateParameter != null) msgs = ((InternalEObject) templateParameter) .eInverseRemove(this, UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, TemplateParameter.class, msgs); return basicSetTemplateParameter((TemplateParameter) otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__SLOT : return ((InternalEList) (InternalEList) getSlots()) .basicAdd(otherEnd, msgs); } return eDynamicInverseAdd(otherEnd, featureID, msgs); } /** * * * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : return ((InternalEList) getEAnnotations()).basicRemove( otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : return ((InternalEList) getOwnedComments()).basicRemove( otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : return basicSetNameExpression(null, msgs); case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : return ((InternalEList) getDeployments()).basicRemove( otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : return basicSetOwningTemplateParameter(null, msgs); case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : return basicSetTemplateParameter(null, msgs); case UMLPackage.INSTANCE_SPECIFICATION__SLOT : return ((InternalEList) getSlots()).basicRemove(otherEnd, msgs); case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : return basicSetSpecification(null, msgs); } return eDynamicInverseRemove(otherEnd, featureID, msgs); } /** * * * @generated */ @Override public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs) { switch (eContainerFeatureID()) { case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : return eInternalContainer().eInverseRemove(this, UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT, TemplateParameter.class, msgs); } return eDynamicBasicRemoveFromContainer(msgs); } /** * * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : return getEAnnotations(); case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : return getOwnedComments(); case UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT : return getOwnedElements(); case UMLPackage.INSTANCE_SPECIFICATION__OWNER : if (resolve) return getOwner(); return basicGetOwner(); case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : return getClientDependencies(); case UMLPackage.INSTANCE_SPECIFICATION__NAME : return getName(); case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : if (resolve) return getNameExpression(); return basicGetNameExpression(); case UMLPackage.INSTANCE_SPECIFICATION__NAMESPACE : if (resolve) return getNamespace(); return basicGetNamespace(); case UMLPackage.INSTANCE_SPECIFICATION__QUALIFIED_NAME : return getQualifiedName(); case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : return getVisibility(); case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYED_ELEMENT : return getDeployedElements(); case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : return getDeployments(); case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : if (resolve) return getOwningTemplateParameter(); return basicGetOwningTemplateParameter(); case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : if (resolve) return getTemplateParameter(); return basicGetTemplateParameter(); case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : return getClassifiers(); case UMLPackage.INSTANCE_SPECIFICATION__SLOT : return getSlots(); case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : if (resolve) return getSpecification(); return basicGetSpecification(); } return eDynamicGet(featureID, resolve, coreType); } /** * * * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : getEAnnotations().clear(); getEAnnotations().addAll( (Collection) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : getOwnedComments().clear(); getOwnedComments().addAll( (Collection) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__NAME : setName((String) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : setNameExpression((StringExpression) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : setVisibility((VisibilityKind) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : getDeployments().clear(); getDeployments().addAll( (Collection) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : setOwningTemplateParameter((TemplateParameter) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : setTemplateParameter((TemplateParameter) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : getClassifiers().clear(); getClassifiers().addAll( (Collection) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__SLOT : getSlots().clear(); getSlots().addAll((Collection) newValue); return; case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : setSpecification((ValueSpecification) newValue); return; } eDynamicSet(featureID, newValue); } /** * * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : getEAnnotations().clear(); return; case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : getOwnedComments().clear(); return; case UMLPackage.INSTANCE_SPECIFICATION__NAME : unsetName(); return; case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : setNameExpression((StringExpression) null); return; case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : unsetVisibility(); return; case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : getDeployments().clear(); return; case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : setOwningTemplateParameter((TemplateParameter) null); return; case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : setTemplateParameter((TemplateParameter) null); return; case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : getClassifiers().clear(); return; case UMLPackage.INSTANCE_SPECIFICATION__SLOT : getSlots().clear(); return; case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : setSpecification((ValueSpecification) null); return; } eDynamicUnset(featureID); } /** * * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case UMLPackage.INSTANCE_SPECIFICATION__EANNOTATIONS : return eAnnotations != null && !eAnnotations.isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT : return ownedComments != null && !ownedComments.isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__OWNED_ELEMENT : return isSetOwnedElements(); case UMLPackage.INSTANCE_SPECIFICATION__OWNER : return isSetOwner(); case UMLPackage.INSTANCE_SPECIFICATION__CLIENT_DEPENDENCY : return !getClientDependencies().isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__NAME : return isSetName(); case UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION : return nameExpression != null; case UMLPackage.INSTANCE_SPECIFICATION__NAMESPACE : return isSetNamespace(); case UMLPackage.INSTANCE_SPECIFICATION__QUALIFIED_NAME : return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName()); case UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY : return isSetVisibility(); case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYED_ELEMENT : return !getDeployedElements().isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT : return deployments != null && !deployments.isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : return basicGetOwningTemplateParameter() != null; case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : return templateParameter != null; case UMLPackage.INSTANCE_SPECIFICATION__CLASSIFIER : return classifiers != null && !classifiers.isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__SLOT : return slots != null && !slots.isEmpty(); case UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION : return specification != null; } return eDynamicIsSet(featureID); } /** * * * @generated */ @Override public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { if (baseClass == ParameterableElement.class) { switch (derivedFeatureID) { case UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER : return UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER; case UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER : return UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER; default : return -1; } } if (baseClass == PackageableElement.class) { switch (derivedFeatureID) { default : return -1; } } if (baseClass == DeployedArtifact.class) { switch (derivedFeatureID) { default : return -1; } } return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); } /** * * * @generated */ @Override public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { if (baseClass == ParameterableElement.class) { switch (baseFeatureID) { case UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER : return UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER; case UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER : return UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER; default : return -1; } } if (baseClass == PackageableElement.class) { switch (baseFeatureID) { default : return -1; } } if (baseClass == DeployedArtifact.class) { switch (baseFeatureID) { default : return -1; } } return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); } /** * * * @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.INSTANCE_SPECIFICATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT; case UMLPackage.PARAMETERABLE_ELEMENT___IS_TEMPLATE_PARAMETER : return UMLPackage.INSTANCE_SPECIFICATION___IS_TEMPLATE_PARAMETER; default : return -1; } } if (baseClass == PackageableElement.class) { switch (baseOperationID) { case UMLPackage.PACKAGEABLE_ELEMENT___VALIDATE_NAMESPACE_NEEDS_VISIBILITY__DIAGNOSTICCHAIN_MAP : return UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_NAMESPACE_NEEDS_VISIBILITY__DIAGNOSTICCHAIN_MAP; default : return -1; } } if (baseClass == DeployedArtifact.class) { switch (baseOperationID) { default : return -1; } } return super.eDerivedOperationID(baseOperationID, baseClass); } /** * * * @generated */ @Override @SuppressWarnings("unchecked") public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { switch (operationID) { case UMLPackage.INSTANCE_SPECIFICATION___GET_EANNOTATION__STRING : return getEAnnotation((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_HAS_OWNER__DIAGNOSTICCHAIN_MAP : return validateHasOwner((DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_NOT_OWN_SELF__DIAGNOSTICCHAIN_MAP : return validateNotOwnSelf((DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___ADD_KEYWORD__STRING : return addKeyword((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___APPLY_STEREOTYPE__STEREOTYPE : return applyStereotype((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___CREATE_EANNOTATION__STRING : return createEAnnotation((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___DESTROY : destroy(); return null; case UMLPackage.INSTANCE_SPECIFICATION___GET_KEYWORDS : return getKeywords(); case UMLPackage.INSTANCE_SPECIFICATION___GET_APPLICABLE_STEREOTYPE__STRING : return getApplicableStereotype((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_APPLICABLE_STEREOTYPES : return getApplicableStereotypes(); case UMLPackage.INSTANCE_SPECIFICATION___GET_APPLIED_STEREOTYPE__STRING : return getAppliedStereotype((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_APPLIED_STEREOTYPES : return getAppliedStereotypes(); case UMLPackage.INSTANCE_SPECIFICATION___GET_APPLIED_SUBSTEREOTYPE__STEREOTYPE_STRING : return getAppliedSubstereotype((Stereotype) arguments.get(0), (String) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___GET_APPLIED_SUBSTEREOTYPES__STEREOTYPE : return getAppliedSubstereotypes((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_MODEL : return getModel(); case UMLPackage.INSTANCE_SPECIFICATION___GET_NEAREST_PACKAGE : return getNearestPackage(); case UMLPackage.INSTANCE_SPECIFICATION___GET_RELATIONSHIPS : return getRelationships(); case UMLPackage.INSTANCE_SPECIFICATION___GET_RELATIONSHIPS__ECLASS : return getRelationships((EClass) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_REQUIRED_STEREOTYPE__STRING : return getRequiredStereotype((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_REQUIRED_STEREOTYPES : return getRequiredStereotypes(); case UMLPackage.INSTANCE_SPECIFICATION___GET_SOURCE_DIRECTED_RELATIONSHIPS : return getSourceDirectedRelationships(); case UMLPackage.INSTANCE_SPECIFICATION___GET_SOURCE_DIRECTED_RELATIONSHIPS__ECLASS : return getSourceDirectedRelationships((EClass) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_STEREOTYPE_APPLICATION__STEREOTYPE : return getStereotypeApplication((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_STEREOTYPE_APPLICATIONS : return getStereotypeApplications(); case UMLPackage.INSTANCE_SPECIFICATION___GET_TARGET_DIRECTED_RELATIONSHIPS : return getTargetDirectedRelationships(); case UMLPackage.INSTANCE_SPECIFICATION___GET_TARGET_DIRECTED_RELATIONSHIPS__ECLASS : return getTargetDirectedRelationships((EClass) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_VALUE__STEREOTYPE_STRING : return getValue((Stereotype) arguments.get(0), (String) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___HAS_KEYWORD__STRING : return hasKeyword((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___HAS_VALUE__STEREOTYPE_STRING : return hasValue((Stereotype) arguments.get(0), (String) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___IS_STEREOTYPE_APPLICABLE__STEREOTYPE : return isStereotypeApplicable((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___IS_STEREOTYPE_APPLIED__STEREOTYPE : return isStereotypeApplied((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___IS_STEREOTYPE_REQUIRED__STEREOTYPE : return isStereotypeRequired((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___REMOVE_KEYWORD__STRING : return removeKeyword((String) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___SET_VALUE__STEREOTYPE_STRING_OBJECT : setValue((Stereotype) arguments.get(0), (String) arguments.get(1), arguments.get(2)); return null; case UMLPackage.INSTANCE_SPECIFICATION___UNAPPLY_STEREOTYPE__STEREOTYPE : return unapplyStereotype((Stereotype) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___ALL_OWNED_ELEMENTS : return allOwnedElements(); case UMLPackage.INSTANCE_SPECIFICATION___MUST_BE_OWNED : return mustBeOwned(); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_VISIBILITY_NEEDS_OWNERSHIP__DIAGNOSTICCHAIN_MAP : return validateVisibilityNeedsOwnership( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_HAS_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP : return validateHasQualifiedName( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_HAS_NO_QUALIFIED_NAME__DIAGNOSTICCHAIN_MAP : return validateHasNoQualifiedName( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___CREATE_DEPENDENCY__NAMEDELEMENT : return createDependency((NamedElement) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___CREATE_USAGE__NAMEDELEMENT : return createUsage((NamedElement) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_LABEL : return getLabel(); case UMLPackage.INSTANCE_SPECIFICATION___GET_LABEL__BOOLEAN : return getLabel((Boolean) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___GET_NAMESPACE : return getNamespace(); case UMLPackage.INSTANCE_SPECIFICATION___ALL_NAMESPACES : return allNamespaces(); case UMLPackage.INSTANCE_SPECIFICATION___ALL_OWNING_PACKAGES : return allOwningPackages(); case UMLPackage.INSTANCE_SPECIFICATION___IS_DISTINGUISHABLE_FROM__NAMEDELEMENT_NAMESPACE : return isDistinguishableFrom((NamedElement) arguments.get(0), (Namespace) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___GET_QUALIFIED_NAME : return getQualifiedName(); case UMLPackage.INSTANCE_SPECIFICATION___SEPARATOR : return separator(); case UMLPackage.INSTANCE_SPECIFICATION___GET_CLIENT_DEPENDENCIES : return getClientDependencies(); case UMLPackage.INSTANCE_SPECIFICATION___GET_DEPLOYED_ELEMENTS : return getDeployedElements(); case UMLPackage.INSTANCE_SPECIFICATION___IS_COMPATIBLE_WITH__PARAMETERABLEELEMENT : return isCompatibleWith((ParameterableElement) arguments.get(0)); case UMLPackage.INSTANCE_SPECIFICATION___IS_TEMPLATE_PARAMETER : return isTemplateParameter(); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_NAMESPACE_NEEDS_VISIBILITY__DIAGNOSTICCHAIN_MAP : return validateNamespaceNeedsVisibility( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_ARTIFACT__DIAGNOSTICCHAIN_MAP : return validateDeploymentArtifact( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_STRUCTURAL_FEATURE__DIAGNOSTICCHAIN_MAP : return validateStructuralFeature( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_DEFINING_FEATURE__DIAGNOSTICCHAIN_MAP : return validateDefiningFeature( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); case UMLPackage.INSTANCE_SPECIFICATION___VALIDATE_DEPLOYMENT_TARGET__DIAGNOSTICCHAIN_MAP : return validateDeploymentTarget( (DiagnosticChain) arguments.get(0), (Map) arguments.get(1)); } return eDynamicInvoke(operationID, arguments); } /** * * * @generated */ @Override public Element basicGetOwner() { TemplateParameter owningTemplateParameter = basicGetOwningTemplateParameter(); if (owningTemplateParameter != null) { return owningTemplateParameter; } return super.basicGetOwner(); } /** * * * @generated */ @Override public boolean isSetOwner() { return super.isSetOwner() || eIsSet(UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER); } /** * The array of subset feature identifiers for the '{@link #getOwnedElements() Owned Element}' reference list. * * * @see #getOwnedElements() * @generated * @ordered */ protected static final int[] OWNED_ELEMENT_ESUBSETS = new int[]{ UMLPackage.INSTANCE_SPECIFICATION__OWNED_COMMENT, UMLPackage.INSTANCE_SPECIFICATION__NAME_EXPRESSION, UMLPackage.INSTANCE_SPECIFICATION__DEPLOYMENT, UMLPackage.INSTANCE_SPECIFICATION__SLOT, UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION}; /** * * * @generated */ @Override public boolean isSetOwnedElements() { return super.isSetOwnedElements() || eIsSet(UMLPackage.INSTANCE_SPECIFICATION__SLOT) || eIsSet(UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION); } } //InstanceSpecificationImpl




© 2015 - 2024 Weber Informatics LLC | Privacy Policy