[Fix] PlantUML no longer shows "null" as origin

PlantUML showed "null" as the origin for links for n:m links.
This change changes the behaviour and the selected object is
again correctly shown as the origin.

Change-Id: I8c7ec803cad51b55a11f60d7d9f6f4814de29867
diff --git a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java
index 9ea030b..21d6306 100644
--- a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java
+++ b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java
@@ -44,7 +44,7 @@
 	private EObject origin;
 
 	private Set<EObject> allObjects;
-	private Map<EObject, String> object2Id;
+	private Map<String, String> object2Id;
 	private Map<String, String> id2Label;
 	private Map<String, String> id2Location;
 
@@ -66,36 +66,36 @@
 		object2Id = new LinkedHashMap<>();
 		int i = 0;
 		for (EObject o : allObjects) {
-			object2Id.put(o, "o" + i++);
+			object2Id.put(EMFHelper.getIdentifier(o), "o" + i++);
 		}
 
 		id2Label = new LinkedHashMap<>();
 		allObjects.forEach(o -> {
-			String id = object2Id.get(o);
+			String id = object2Id.get(EMFHelper.getIdentifier(o));
 			id2Label.put(id, artifactHelper.getArtifactLabel(o));
 		});
 
 		id2Location = new LinkedHashMap<>();
 		allObjects.forEach(o -> {
-			String id = object2Id.get(o);
+			String id = object2Id.get(EMFHelper.getIdentifier(o));
 			id2Location.put(id, artifactHelper.getArtifactLocation(o));
 		});
 	}
 
 	public String originLabel() {
-		return sanitize(id2Label.get(object2Id.get(origin)));
+		return sanitize(id2Label.get(object2Id.get(EMFHelper.getIdentifier(origin))));
 	}
 
 	public String originLocation() {
-		return id2Location.get(object2Id.get(origin));
+		return id2Location.get(object2Id.get(EMFHelper.getIdentifier(origin)));
 	}
 
 	public boolean originHasLocation() {
-		return !Strings.isNullOrEmpty(id2Location.get(object2Id.get(origin)));
+		return !Strings.isNullOrEmpty(id2Location.get(object2Id.get(EMFHelper.getIdentifier(origin))));
 	}
 
 	public String originId() {
-		return object2Id.get(origin);
+		return object2Id.get(EMFHelper.getIdentifier(origin));
 	}
 
 	public Collection<String> objectIdsWithoutOrigin() {
@@ -123,7 +123,8 @@
 		connections.forEach(c -> {
 			c.getOrigins().forEach(org -> {
 				c.getTargets().forEach(trg -> {
-					arrows.add(object2Id.get(org) + "--" + object2Id.get(trg) + ": "
+					arrows.add(object2Id.get(EMFHelper.getIdentifier(org)) + "--"
+							+ object2Id.get(EMFHelper.getIdentifier(trg)) + ": "
 							+ EMFHelper.getIdentifier(c.getTlink()));
 				});
 			});