*** empty log message ***
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ClassifierImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ClassifierImpl.java
index 101c6e8..b0f471a 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ClassifierImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ClassifierImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ClassifierImpl.java,v 1.13 2004/06/02 05:02:26 khussey Exp $
+ * $Id: ClassifierImpl.java,v 1.14 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -277,8 +277,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.CLASSIFIER__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ConnectableElementImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ConnectableElementImpl.java
index bd30e68..a89c99d 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ConnectableElementImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ConnectableElementImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ConnectableElementImpl.java,v 1.3 2004/05/20 03:20:02 khussey Exp $
+ * $Id: ConnectableElementImpl.java,v 1.4 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -102,8 +102,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ImplementationImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ImplementationImpl.java
index 9ffd026..4583210 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ImplementationImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ImplementationImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ImplementationImpl.java,v 1.5 2004/06/02 05:02:25 khussey Exp $
+ * $Id: ImplementationImpl.java,v 1.6 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -98,8 +98,15 @@
 	 * @generated
 	 */
 	public Interface getContract() {
-		Interface contract = basicGetContract();
-		return contract == null ? null : (Interface)eResolveProxy((InternalEObject)contract);
+		if (contract != null && contract.eIsProxy()) {
+			Interface oldContract = contract;
+			contract = (Interface)eResolveProxy((InternalEObject)contract);
+			if (contract != oldContract) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.IMPLEMENTATION__CONTRACT, oldContract, contract));
+			}
+		}
+		return contract;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ManifestationImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ManifestationImpl.java
index 1ea428d..3bd18ae 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ManifestationImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ManifestationImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ManifestationImpl.java,v 1.5 2004/06/02 05:02:26 khussey Exp $
+ * $Id: ManifestationImpl.java,v 1.6 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -92,8 +92,15 @@
 	 * @generated
 	 */
 	public PackageableElement getUtilizedElement() {
-		PackageableElement utilizedElement = basicGetUtilizedElement();
-		return utilizedElement == null ? null : (PackageableElement)eResolveProxy((InternalEObject)utilizedElement);
+		if (utilizedElement != null && utilizedElement.eIsProxy()) {
+			PackageableElement oldUtilizedElement = utilizedElement;
+			utilizedElement = (PackageableElement)eResolveProxy((InternalEObject)utilizedElement);
+			if (utilizedElement != oldUtilizedElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.MANIFESTATION__UTILIZED_ELEMENT, oldUtilizedElement, utilizedElement));
+			}
+		}
+		return utilizedElement;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ObjectNodeImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ObjectNodeImpl.java
index 71cb3ba..9f6b83d 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ObjectNodeImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ObjectNodeImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ObjectNodeImpl.java,v 1.5 2004/06/02 05:02:26 khussey Exp $
+ * $Id: ObjectNodeImpl.java,v 1.6 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -150,8 +150,15 @@
 	 * @generated
 	 */
 	public Type getType() {
-		Type type = basicGetType();
-		return type == null ? null : (Type)eResolveProxy((InternalEObject)type);
+		if (type != null && type.eIsProxy()) {
+			Type oldType = type;
+			type = (Type)eResolveProxy((InternalEObject)type);
+			if (type != oldType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.OBJECT_NODE__TYPE, oldType, type));
+			}
+		}
+		return type;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/OperationImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/OperationImpl.java
index b0132a4..3640379 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/OperationImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/OperationImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: OperationImpl.java,v 1.8 2004/06/02 05:02:25 khussey Exp $
+ * $Id: OperationImpl.java,v 1.9 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -332,8 +332,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.OPERATION__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImpl.java
index 6e8cc9e..7756eb0 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: PackageImpl.java,v 1.12 2004/06/02 05:02:25 khussey Exp $
+ * $Id: PackageImpl.java,v 1.13 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -177,8 +177,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PACKAGE__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImportImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImportImpl.java
index 152fc6c..516043d 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImportImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageImportImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: PackageImportImpl.java,v 1.6 2004/06/02 05:02:26 khussey Exp $
+ * $Id: PackageImportImpl.java,v 1.7 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -132,8 +132,15 @@
 	 * @generated
 	 */
 	public org.eclipse.uml2.Package getImportedPackage() {
-		org.eclipse.uml2.Package importedPackage = basicGetImportedPackage();
-		return importedPackage == null ? null : (org.eclipse.uml2.Package)eResolveProxy((InternalEObject)importedPackage);
+		if (importedPackage != null && importedPackage.eIsProxy()) {
+			org.eclipse.uml2.Package oldImportedPackage = importedPackage;
+			importedPackage = (org.eclipse.uml2.Package)eResolveProxy((InternalEObject)importedPackage);
+			if (importedPackage != oldImportedPackage) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PACKAGE_IMPORT__IMPORTED_PACKAGE, oldImportedPackage, importedPackage));
+			}
+		}
+		return importedPackage;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageableElementImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageableElementImpl.java
index 2c5c872..567bf5c 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageableElementImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PackageableElementImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: PackageableElementImpl.java,v 1.3 2004/05/20 03:20:03 khussey Exp $
+ * $Id: PackageableElementImpl.java,v 1.4 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -109,8 +109,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterImpl.java
index 9f440b2..efdac77 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ParameterImpl.java,v 1.7 2004/06/02 05:02:25 khussey Exp $
+ * $Id: ParameterImpl.java,v 1.8 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -278,8 +278,15 @@
 	 * @generated
 	 */
 	public Type getType() {
-		Type type = basicGetType();
-		return type == null ? null : (Type)eResolveProxy((InternalEObject)type);
+		if (type != null && type.eIsProxy()) {
+			Type oldType = type;
+			type = (Type)eResolveProxy((InternalEObject)type);
+			if (type != oldType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PARAMETER__TYPE, oldType, type));
+			}
+		}
+		return type;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterableElementImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterableElementImpl.java
index 9d993cc..d3336c1 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterableElementImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ParameterableElementImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ParameterableElementImpl.java,v 1.3 2004/05/20 03:20:02 khussey Exp $
+ * $Id: ParameterableElementImpl.java,v 1.4 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -84,8 +84,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ProfileApplicationImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ProfileApplicationImpl.java
index 7ca81da..1d2da09 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ProfileApplicationImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ProfileApplicationImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ProfileApplicationImpl.java,v 1.3 2004/05/20 03:20:02 khussey Exp $
+ * $Id: ProfileApplicationImpl.java,v 1.4 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -82,8 +82,15 @@
 	 * @generated
 	 */
 	public Profile getImportedProfile() {
-		Profile importedProfile = basicGetImportedProfile();
-		return importedProfile == null ? null : (Profile)eResolveProxy((InternalEObject)importedProfile);
+		if (importedProfile != null && importedProfile.eIsProxy()) {
+			Profile oldImportedProfile = importedProfile;
+			importedProfile = (Profile)eResolveProxy((InternalEObject)importedProfile);
+			if (importedProfile != oldImportedProfile) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PROFILE_APPLICATION__IMPORTED_PROFILE, oldImportedProfile, importedProfile));
+			}
+		}
+		return importedProfile;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PropertyImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PropertyImpl.java
index d666db5..263f0fd 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PropertyImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/PropertyImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: PropertyImpl.java,v 1.10 2004/06/02 05:02:25 khussey Exp $
+ * $Id: PropertyImpl.java,v 1.11 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -267,8 +267,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PROPERTY__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
@@ -741,8 +748,15 @@
 	 * @generated
 	 */
 	public Association getAssociation() {
-		Association association = basicGetAssociation();
-		return association == null ? null : (Association)eResolveProxy((InternalEObject)association);
+		if (association != null && association.eIsProxy()) {
+			Association oldAssociation = association;
+			association = (Association)eResolveProxy((InternalEObject)association);
+			if (association != oldAssociation) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.PROPERTY__ASSOCIATION, oldAssociation, association));
+			}
+		}
+		return association;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/RealizationImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/RealizationImpl.java
index a38d9a1..4c03b05 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/RealizationImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/RealizationImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: RealizationImpl.java,v 1.5 2004/06/02 05:02:26 khussey Exp $
+ * $Id: RealizationImpl.java,v 1.6 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -140,8 +140,15 @@
 	 * @generated
 	 */
 	public Classifier getRealizingClassifier() {
-		Classifier realizingClassifier = basicGetRealizingClassifier();
-		return realizingClassifier == null ? null : (Classifier)eResolveProxy((InternalEObject)realizingClassifier);
+		if (realizingClassifier != null && realizingClassifier.eIsProxy()) {
+			Classifier oldRealizingClassifier = realizingClassifier;
+			realizingClassifier = (Classifier)eResolveProxy((InternalEObject)realizingClassifier);
+			if (realizingClassifier != oldRealizingClassifier) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.REALIZATION__REALIZING_CLASSIFIER, oldRealizingClassifier, realizingClassifier));
+			}
+		}
+		return realizingClassifier;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/StructuralFeatureImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/StructuralFeatureImpl.java
index 5002ac6..f6cb4f1 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/StructuralFeatureImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/StructuralFeatureImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: StructuralFeatureImpl.java,v 1.7 2004/06/02 05:02:26 khussey Exp $
+ * $Id: StructuralFeatureImpl.java,v 1.8 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -180,8 +180,15 @@
 	 * @generated
 	 */
 	public Type getType() {
-		Type type = basicGetType();
-		return type == null ? null : (Type)eResolveProxy((InternalEObject)type);
+		if (type != null && type.eIsProxy()) {
+			Type oldType = type;
+			type = (Type)eResolveProxy((InternalEObject)type);
+			if (type != oldType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.STRUCTURAL_FEATURE__TYPE, oldType, type));
+			}
+		}
+		return type;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/SubstitutionImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/SubstitutionImpl.java
index 27aeb5c..218b2ef 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/SubstitutionImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/SubstitutionImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: SubstitutionImpl.java,v 1.5 2004/06/02 05:02:26 khussey Exp $
+ * $Id: SubstitutionImpl.java,v 1.6 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -96,8 +96,15 @@
 	 * @generated
 	 */
 	public Classifier getContract() {
-		Classifier contract = basicGetContract();
-		return contract == null ? null : (Classifier)eResolveProxy((InternalEObject)contract);
+		if (contract != null && contract.eIsProxy()) {
+			Classifier oldContract = contract;
+			contract = (Classifier)eResolveProxy((InternalEObject)contract);
+			if (contract != oldContract) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.SUBSTITUTION__CONTRACT, oldContract, contract));
+			}
+		}
+		return contract;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TemplateParameterImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TemplateParameterImpl.java
index 4c98938..c824cb2 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TemplateParameterImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TemplateParameterImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: TemplateParameterImpl.java,v 1.6 2004/06/02 05:02:25 khussey Exp $
+ * $Id: TemplateParameterImpl.java,v 1.7 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -159,8 +159,15 @@
 	 * @generated
 	 */
 	public ParameterableElement getParameteredElement() {
-		ParameterableElement parameteredElement = basicGetParameteredElement();
-		return parameteredElement == null ? null : (ParameterableElement)eResolveProxy((InternalEObject)parameteredElement);
+		if (parameteredElement != null && parameteredElement.eIsProxy()) {
+			ParameterableElement oldParameteredElement = parameteredElement;
+			parameteredElement = (ParameterableElement)eResolveProxy((InternalEObject)parameteredElement);
+			if (parameteredElement != oldParameteredElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT, oldParameteredElement, parameteredElement));
+			}
+		}
+		return parameteredElement;
 	}
 
 	/**
@@ -287,8 +294,15 @@
 	 * @generated
 	 */
 	public ParameterableElement getDefault() {
-		ParameterableElement default_ = basicGetDefault();
-		return default_ == null ? null : (ParameterableElement)eResolveProxy((InternalEObject)default_);
+		if (default_ != null && default_.eIsProxy()) {
+			ParameterableElement oldDefault = default_;
+			default_ = (ParameterableElement)eResolveProxy((InternalEObject)default_);
+			if (default_ != oldDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.TEMPLATE_PARAMETER__DEFAULT, oldDefault, default_));
+			}
+		}
+		return default_;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TypedElementImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TypedElementImpl.java
index 6fc3365..cf2f5cc 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TypedElementImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/TypedElementImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: TypedElementImpl.java,v 1.3 2004/05/20 03:20:02 khussey Exp $
+ * $Id: TypedElementImpl.java,v 1.4 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -83,8 +83,15 @@
 	 * @generated
 	 */
 	public Type getType() {
-		Type type = basicGetType();
-		return type == null ? null : (Type)eResolveProxy((InternalEObject)type);
+		if (type != null && type.eIsProxy()) {
+			Type oldType = type;
+			type = (Type)eResolveProxy((InternalEObject)type);
+			if (type != oldType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.TYPED_ELEMENT__TYPE, oldType, type));
+			}
+		}
+		return type;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ValueSpecificationImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ValueSpecificationImpl.java
index 2b7da2d..1c0a4c0 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ValueSpecificationImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/ValueSpecificationImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: ValueSpecificationImpl.java,v 1.3 2004/05/20 03:20:03 khussey Exp $
+ * $Id: ValueSpecificationImpl.java,v 1.4 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -89,8 +89,15 @@
 	 * @generated
 	 */
 	public TemplateParameter getTemplateParameter() {
-		TemplateParameter templateParameter = basicGetTemplateParameter();
-		return templateParameter == null ? null : (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+		if (templateParameter != null && templateParameter.eIsProxy()) {
+			TemplateParameter oldTemplateParameter = templateParameter;
+			templateParameter = (TemplateParameter)eResolveProxy((InternalEObject)templateParameter);
+			if (templateParameter != oldTemplateParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.VALUE_SPECIFICATION__TEMPLATE_PARAMETER, oldTemplateParameter, templateParameter));
+			}
+		}
+		return templateParameter;
 	}
 
 	/**
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/VariableImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/VariableImpl.java
index 61974d6..05c6d38 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/VariableImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/VariableImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: VariableImpl.java,v 1.4 2004/06/02 05:02:25 khussey Exp $
+ * $Id: VariableImpl.java,v 1.5 2004/06/02 16:01:35 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -166,8 +166,15 @@
 	 * @generated
 	 */
 	public Type getType() {
-		Type type = basicGetType();
-		return type == null ? null : (Type)eResolveProxy((InternalEObject)type);
+		if (type != null && type.eIsProxy()) {
+			Type oldType = type;
+			type = (Type)eResolveProxy((InternalEObject)type);
+			if (type != oldType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, UML2Package.VARIABLE__TYPE, oldType, type));
+			}
+		}
+		return type;
 	}
 
 	/**