From e872cfb458ad9d45e72228b14d8d6af52807e05d Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Tue, 13 Mar 2018 13:26:40 +0000
Subject: [PATCH] YELLOW

Resolve TODO in AnnotationInstSpec.
refs 2964
---
 .../base/ui/annotation/view/generic/.ratings     |  4 ++--
 .../ui/annotation/view/generic/ColumnHandle.java |  5 ++---
 .../view/generic/GenericAnnotationView.java      |  3 +--
 .../base/annotation/valueprovider/.ratings       |  2 +-
 .../valueprovider/AnnotationInstSpec.java        | 16 ++++------------
 5 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings
index 7e234f83e..ceb647d2c 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings
@@ -1,3 +1,3 @@
-ColumnHandle.java 66d0399a03dec18a67df08f19746a6a7c08a5c98 GREEN
-GenericAnnotationView.java 68a0c93c3863c172da3dfbee32de53349c510f5f GREEN
+ColumnHandle.java 133a43480037921ac4501b9f43feab56aed46941 YELLOW
+GenericAnnotationView.java 3780e3791589ed81abcbd5b5c809007560b3bce1 YELLOW
 HierarchicalNameViewerComparator.java edf1d012a3d18860d2ef7f9e07baf46cdfeec381 GREEN
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/ColumnHandle.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/ColumnHandle.java
index 465ff82a8..8fc5f04cb 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/ColumnHandle.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/ColumnHandle.java
@@ -30,9 +30,8 @@ public class ColumnHandle<T extends IAnnotatedSpecification> extends AnnotationI
 		implements Comparable<ColumnHandle<T>> {
 
 	/** Constructs a new {@link ColumnHandle}. */
-	@SuppressWarnings("unchecked")
 	public ColumnHandle(AnnotationEntry entry, T annotatedSpecification) {
-		super(entry, (Class<T>)annotatedSpecification.getClass(), annotatedSpecification);
+		super(entry, annotatedSpecification);
 	}
 
 	/**
@@ -42,7 +41,7 @@ public class ColumnHandle<T extends IAnnotatedSpecification> extends AnnotationI
 	public String getColumnName() {
 		// Determine column name
 		String specName =
-				getEntry().getSpecificationAnnotationName(getAnnotatedSpecification().getClass());
+				getEntry().getSpecificationAnnotationName(getAnnotatedSpecificationType());
 
 		if(specName == null || specName.isEmpty()) {
 			specName = "<Unnamed Annotation>";
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java
index a601b634e..2e3bacfb0 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java
@@ -400,8 +400,7 @@ public class GenericAnnotationView extends AnnotationViewPartBase {
 								(Class<T>)((AnnotationLabelProvider)labelProv).getAnnotationType();
 						T spec = selEntry.getSpecification(annotationType);
 
-						AnnotationInstSpec<T> instSpec =
-								new AnnotationInstSpec<T>(selEntry, annotationType, spec);
+						AnnotationInstSpec<T> instSpec = new AnnotationInstSpec<T>(selEntry, spec);
 						// By Construction of the map, we can ensure that this cast will always be
 						// valid.
 						@SuppressWarnings("unchecked") IAnnotationValueProvider<T> valProvider =
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings b/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings
index 23509fedc..af9b84da3 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings
+++ b/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings
@@ -1,4 +1,4 @@
-AnnotationInstSpec.java 3b4dc57e844b75a549ef68acd327613a259dad80 RED
+AnnotationInstSpec.java 34db1b7a39ea92e5ad39dfc8d59fc4be9df46182 YELLOW
 DerivedAnnotationValueProviderBase.java ae12ab7e386cc53a6a66dfc331ba43549b864b93 GREEN
 EStructuralFeatureDescriptor.java b4093c8997472d0ab63a69c1d025d9aeb9b4f294 GREEN
 EStructuralFeatureValueProviderBase.java eb50feb4f0d1dd4b1dea9c489b84d1e9d240460f GREEN
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/AnnotationInstSpec.java b/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/AnnotationInstSpec.java
index 80f042ce2..b4f2ed47a 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/AnnotationInstSpec.java
+++ b/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/annotation/valueprovider/AnnotationInstSpec.java
@@ -31,13 +31,6 @@ public class AnnotationInstSpec<T extends IAnnotatedSpecification> {
 	 */
 	private AnnotationEntry entry;
 
-	// TODO: Check if this can be removed in favor of annotatedSpecification.getClass()
-	/**
-	 * {@link IAnnotatedSpecification} from {@code entry} to be displayed in the column
-	 * represented by this {@link AnnotationInstSpec}.
-	 */
-	private Class<T> annotatedSpecificationClass;
-
 	/**
 	 * {@link IAnnotatedSpecification} from {@code entry} to be displayed in the column
 	 * represented by this {@link AnnotationInstSpec}.
@@ -45,10 +38,8 @@ public class AnnotationInstSpec<T extends IAnnotatedSpecification> {
 	private IAnnotatedSpecification annotatedSpecification;
 
 	/** Constructor. */
-	public AnnotationInstSpec(AnnotationEntry entry, Class<T> annotatedSpecificationClass,
-			T annotatedSpecification) {
+	public AnnotationInstSpec(AnnotationEntry entry, T annotatedSpecification) {
 		this.entry = entry;
-		this.annotatedSpecificationClass = annotatedSpecificationClass;
 		this.annotatedSpecification = annotatedSpecification;
 	}
 
@@ -64,8 +55,9 @@ public class AnnotationInstSpec<T extends IAnnotatedSpecification> {
 	 * Returns the {@link IAnnotatedSpecification} from {@code entry} to be displayed in the
 	 * column represented by this {@link AnnotationInstSpec}.
 	 */
+	@SuppressWarnings("unchecked")
 	public Class<T> getAnnotatedSpecificationType() {
-		return annotatedSpecificationClass;
+		return (Class<T>)annotatedSpecification.getClass();
 	}
 
 	/**
@@ -88,7 +80,7 @@ public class AnnotationInstSpec<T extends IAnnotatedSpecification> {
 	 */
 	@Override
 	public int hashCode() {
-		return annotatedSpecificationClass.hashCode();
+		return getAnnotatedSpecificationType().hashCode();
 	}
 
 	/** {@inheritDoc} */
-- 
GitLab