[Fix] Trace detection no longer dependent on object ref

The GenericTraceMetaModelAdapter for the standard trace meta model
that Eclipse Capra ships with detected the presence of a link between
two artifacts by using contains() which falls back on the objects'
equals() implementation. This could cause problems if the underlying
models were reloaded in a different ResourceSet. This commit now
changes this behaviour and compares the elements using
EMFHelper.isElementInList() which uses the identifiers of the
artifacts instead.

Change-Id: Ia83dd71d0329cc8bf4ffd2e09574d61620f37bae
diff --git a/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java b/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java
index 7b34a0b..56ea5d7 100644
--- a/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java
+++ b/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java
@@ -22,6 +22,7 @@
 import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ArtifactHelper;
+import org.eclipse.capra.core.helpers.EMFHelper;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
@@ -39,7 +40,6 @@
 
 	private static final int DEFAULT_INITIAL_TRANSITIVITY_DEPTH = 1;
 
-
 	public GenericMetaModelAdapter() {
 		// TODO Auto-generated constructor stub
 	}
@@ -91,7 +91,8 @@
 
 		for (RelatedTo trace : allTraces) {
 			if (!firstElement.equals(secondElement)) {
-				if (trace.getItem().contains(firstElement) && trace.getItem().contains(secondElement)) {
+				if (EMFHelper.isElementInList(trace.getItem(), firstElement)
+						&& EMFHelper.isElementInList(trace.getItem(), secondElement)) {
 					relevantLinks.add(trace);
 				}
 			}
@@ -203,9 +204,10 @@
 			for (Object trace : toRemove) {
 				tModel.getTraces().remove(trace);
 			}
-			
+
 			TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
-			persistenceAdapter.saveTracesAndArtifacts(tModel, persistenceAdapter.getArtifactWrappers(new ResourceSetImpl()));
+			persistenceAdapter.saveTracesAndArtifacts(tModel,
+					persistenceAdapter.getArtifactWrappers(new ResourceSetImpl()));
 		}
 	}