diff --git a/org.eclipse.gmf.runtime.notation/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.gmf.runtime.notation/.settings/org.eclipse.jdt.core.prefs
index ad9ea58..acc7e83 100644
--- a/org.eclipse.gmf.runtime.notation/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.gmf.runtime.notation/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,12 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.4
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
\ No newline at end of file
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.4
diff --git a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/BasicDecorationNodeImpl.java b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/BasicDecorationNodeImpl.java
index 1920554..c92ce42 100644
--- a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/BasicDecorationNodeImpl.java
+++ b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/BasicDecorationNodeImpl.java
@@ -128,15 +128,15 @@
 	}
 
     public EList getSourceEdges() {
-        return new EcoreEList.UnmodifiableEList<Edge>(this, NotationPackage.eINSTANCE.getView_SourceEdges(), 0, null);
+        return new EcoreEList.UnmodifiableEList(this, NotationPackage.eINSTANCE.getView_SourceEdges(), 0, null);
 	}
 
     public EList getTargetEdges() {
-        return new EcoreEList.UnmodifiableEList<Edge>(this, NotationPackage.eINSTANCE.getView_TargetEdges(), 0, null);
+        return new EcoreEList.UnmodifiableEList(this, NotationPackage.eINSTANCE.getView_TargetEdges(), 0, null);
 	}
 
     public EList getPersistedChildren() {
-        return new EcoreEList.UnmodifiableEList<Node>(this, NotationPackage.eINSTANCE.getView_PersistedChildren(), 0, null);
+        return new EcoreEList.UnmodifiableEList(this, NotationPackage.eINSTANCE.getView_PersistedChildren(), 0, null);
 	}
 
     public EList getChildren() {
@@ -144,7 +144,7 @@
     }
 
     public EList getStyles() {
-        return new EcoreEList.UnmodifiableEList<Style>(this, NotationPackage.eINSTANCE.getView_TransientChildren(), 0, null);
+        return new EcoreEList.UnmodifiableEList(this, NotationPackage.eINSTANCE.getView_TransientChildren(), 0, null);
 	}
 
     public EObject getElement() {
@@ -209,7 +209,7 @@
     }
 
     public EList getTransientChildren() {
-        return new EcoreEList.UnmodifiableEList<Node>(this, NotationPackage.eINSTANCE.getView_TransientChildren(), 0, null);
+        return new EcoreEList.UnmodifiableEList(this, NotationPackage.eINSTANCE.getView_TransientChildren(), 0, null);
 	}
 
     public Style getStyle(EClass eClass) {
@@ -463,20 +463,22 @@
             return ECollections.EMPTY_ELIST;
         }
 
-        List<Node> _children = new ArrayList<Node>();
+        List _children = new ArrayList();
         
         if (hasPersistedChildren) {
-            for (Node node : (List<Node>) getPersistedChildren()) {
-                if (node.isVisible())
+        	for (Iterator it = getPersistedChildren().iterator(); it.hasNext();) {
+				Node node = (Node) it.next();
+				if (node.isVisible())
                     _children.add(node);
-            }
+			}
         }
 
         if (hasTransientChildren) {
-            for (Node node : (List<Node>) getTransientChildren()) {
-                if (node.isVisible())
+        	for (Iterator it = getTransientChildren().iterator(); it.hasNext();) {
+				Node node = (Node) it.next();
+				if (node.isVisible())
                     _children.add(node);
-            }
+			}
         }       
         
         return new BasicEList.UnmodifiableEList(_children.size(), _children
diff --git a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationEObjectImpl.java b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationEObjectImpl.java
index 36a6df9..bc51d18 100644
--- a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationEObjectImpl.java
+++ b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationEObjectImpl.java
@@ -45,7 +45,6 @@
     super();
   }
 
-  @Override
   protected EPropertiesHolder eProperties()
   {
     if (eProperties == null)
@@ -55,32 +54,27 @@
     return eProperties;
   }
 
-  @Override
   public boolean eIsProxy()
   {
     return eProxyURI != null;
   }
   
-  @Override
   public URI eProxyURI()
   {
     return eProxyURI;
   }
 
-  @Override
   public void eSetProxyURI(URI uri)
   {
     eProxyURI = uri;
   }
 
-  @Override
-  public EList<EObject> eContents()
+  public EList eContents()
   {
     return EContentsEList.createEContentsEList(this);
   }
 
-  @Override
-  public EList<EObject> eCrossReferences()
+  public EList eCrossReferences()
   {
     return ECrossReferenceEList.createECrossReferenceEList(this);
   }
diff --git a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationPackageImpl.java b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationPackageImpl.java
index 4c13b1e..62d81fe 100644
--- a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationPackageImpl.java
+++ b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/NotationPackageImpl.java
@@ -11,6 +11,7 @@
 
 package org.eclipse.gmf.runtime.notation.impl;
 
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -3307,8 +3308,8 @@
 	
 	void createAnnotations()
 	{
-	  for (EClassifier eClassifier : getEClassifiers())
-	  {
+		for (Iterator it = getEClassifiers().iterator(); it.hasNext();) {
+			EClassifier eClassifier = (EClassifier) it.next();
 	    String name = eClassifier.getName();
         if (name.equals("Node") || name.indexOf("Style") != -1 || name.equals("Location") || name.equals("Size") ||  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$  //$NON-NLS-4$
              name.indexOf("Anchor") != -1 || name.indexOf("point") != -1 || name.equals("Bounds") || name.indexOf("Edge") != -1 || name.indexOf("Constraint") != -1) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
diff --git a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/RoutingStyleImpl.java b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/RoutingStyleImpl.java
index 8f8cd4f..befce7d 100644
--- a/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/RoutingStyleImpl.java
+++ b/org.eclipse.gmf.runtime.notation/src/org/eclipse/gmf/runtime/notation/impl/RoutingStyleImpl.java
@@ -473,7 +473,6 @@
      * <!-- end-user-doc -->
 	 * @generated
 	 */
-    @SuppressWarnings("deprecation")
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case NotationPackage.ROUTING_STYLE__ROUNDED_BENDPOINTS_RADIUS:
@@ -501,7 +500,6 @@
      * <!-- end-user-doc -->
 	 * @generated
 	 */
-    @SuppressWarnings("deprecation")
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case NotationPackage.ROUTING_STYLE__ROUNDED_BENDPOINTS_RADIUS:
@@ -537,7 +535,6 @@
      * <!-- end-user-doc -->
 	 * @generated
 	 */
-    @SuppressWarnings("deprecation")
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case NotationPackage.ROUTING_STYLE__ROUNDED_BENDPOINTS_RADIUS:
@@ -573,7 +570,6 @@
      * <!-- end-user-doc -->
 	 * @generated
 	 */
-    @SuppressWarnings("deprecation")
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case NotationPackage.ROUTING_STYLE__ROUNDED_BENDPOINTS_RADIUS:
