From 5f8f90a7f71ace2fa7b56990996a56dacc913f3b Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Wed, 14 Aug 2019 14:44:02 +0200
Subject: [PATCH] Annotations: Allow recursive instantiation for EObjects.

Issue-Ref: 3746
Issue-Url: https://af3-developer.fortiss.org/issues/3746
Signed-off-by: Alexander Diewald <diewald@fortiss.org>
---
 .../src/org/fortiss/tooling/base/utils/.ratings          | 2 +-
 .../org/fortiss/tooling/base/utils/AnnotationUtils.java  | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings
index 97d7c278d..8ab4c2f8b 100644
--- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings
+++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings
@@ -1,5 +1,5 @@
 AngleUtils.java 462551eae71738ff51f92c9906bff9a21a375d2b GREEN
-AnnotationUtils.java 1da750d19d92658b0bdf6bc18ceb18aa667e557b GREEN
+AnnotationUtils.java b136478429b947e265e6c57015ae659fdfb3eac8 YELLOW
 BaseMathUtils.java 65f6c39b641cba3c984a38f42b1bbf7dbf3287a3 GREEN
 BaseModelElementUtils.java b8775b7a462efc168cf79a017aa3377a782d10f6 GREEN
 ConstraintsBaseUtils.java bba938b43756ce6f35c338f6cef21c3ab5d49a9d GREEN
diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java
index 1da750d19..b13647842 100644
--- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java
+++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java
@@ -32,6 +32,7 @@ import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.fortiss.tooling.base.ToolingBaseActivator;
 import org.fortiss.tooling.base.annotation.AnnotationEntry;
@@ -295,11 +296,13 @@ public class AnnotationUtils {
 	 * convenient).
 	 * 
 	 * @param element
-	 *            {@link IModelElement} for which annotations should be instantiated recursively.
+	 *            {@link EObject} for which annotations should be instantiated recursively.
 	 */
-	public static void instantiateAnnotationsRecursive(IModelElement element) {
+	public static void instantiateAnnotationsRecursive(EObject element) {
 		IAnnotationValueService as = IAnnotationValueService.getInstance();
-		as.instantiateAnnotations(element);
+		if(element instanceof IModelElement) {
+			as.instantiateAnnotations((IModelElement)element);
+		}
 		for(IModelElement child : getChildrenWithType(element, IModelElement.class)) {
 			as.instantiateAnnotations(child);
 		}
-- 
GitLab