Fixed Bugzilla Bug 109235: interest should be maintained across a refactoring
diff --git a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/AbstractRelationProvider.java b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/AbstractRelationProvider.java
index 016f7ab..1a9ff54 100644
--- a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/AbstractRelationProvider.java
+++ b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/AbstractRelationProvider.java
@@ -90,7 +90,7 @@
      * Public for testing
      */
 	public void createEdge(IMylarElement toNode, String elementKind, String targetHandle) {
-		CompositeContextElement targetNode = (CompositeContextElement)MylarPlugin.getContextManager().getNode(targetHandle);
+		CompositeContextElement targetNode = (CompositeContextElement)MylarPlugin.getContextManager().getElement(targetHandle);
         if (targetNode == null) return;
 		MylarContextElement concreteTargetNode = null;
         if (targetNode.getNodes().size() != 1) {
diff --git a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/CompositeContext.java b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/CompositeContext.java
index f0d2bab..89dc4d1 100644
--- a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/CompositeContext.java
+++ b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/CompositeContext.java
@@ -133,8 +133,9 @@
     }
 
 	public void changeElementHandle(IMylarElement element, String newHandle) {
-       for (MylarContext context : contexts.values()) {
-            context.changeElementHandle(element, newHandle);
-       }
+	    for (MylarContext context : contexts.values()) {
+	         context.changeElementHandle(element, newHandle);
+	    }
+		element.setHandleIdentifier(newHandle);
 	}
 }
diff --git a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContext.java b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContext.java
index 8b77419..2830cec 100644
--- a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContext.java
+++ b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContext.java
@@ -135,9 +135,10 @@
         return Collections.unmodifiableList(new ArrayList<IMylarElement>(landmarks.values()));
     }
 
-
 	public void changeElementHandle(IMylarElement element, String newHandle) {
-		
+		MylarContextElement currElement = nodes.remove(element.getHandleIdentifier());
+		currElement.setHandleIdentifier(newHandle);
+		nodes.put(newHandle, currElement);
 	}
     
     public IMylarElement getActiveNode() {
diff --git a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContextManager.java b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContextManager.java
index f944c68..764519d 100644
--- a/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContextManager.java
+++ b/org.eclipse.mylyn.context.core/src/org/eclipse/mylyn/core/internal/MylarContextManager.java
@@ -190,7 +190,7 @@
         }
     } 
 
-	public IMylarElement getNode(String elementHandle) {
+	public IMylarElement getElement(String elementHandle) {
         if (activeContext != null) {
             return activeContext.get(elementHandle);
         } else {
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecorator.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecorator.java
index 427470c..55682c2 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecorator.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecorator.java
@@ -39,7 +39,7 @@
             node = (IMylarElement)element;
         } else {
             IMylarStructureBridge adapter = MylarPlugin.getDefault().getStructureBridge(element);
-            node = MylarPlugin.getContextManager().getNode(adapter.getHandleIdentifier(element));
+            node = MylarPlugin.getContextManager().getElement(adapter.getHandleIdentifier(element));
         }
         return node;
     } 
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecoratorLightweight.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecoratorLightweight.java
index a3d4af3..072853d 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecoratorLightweight.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestDecoratorLightweight.java
@@ -49,7 +49,7 @@
                 node = (IMylarElement)element;
             } else {
                 if (adapter != null && adapter.getContentType() != null) {
-                    node = MylarPlugin.getContextManager().getNode(adapter.getHandleIdentifier(element));
+                    node = MylarPlugin.getContextManager().getElement(adapter.getHandleIdentifier(element));
                 }
             }
             if (node != null) {
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestFilter.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestFilter.java
index 5565e92..d3a39ef 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestFilter.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/InterestFilter.java
@@ -60,7 +60,7 @@
                 if (matchesExclusion(element, bridge)) return true;
                 
                 String handle = bridge.getHandleIdentifier(element);
-                node = MylarPlugin.getContextManager().getNode(handle);
+                node = MylarPlugin.getContextManager().getElement(handle);
             }
             if (node != null) {
             	if (node.getDegreeOfInterest().isPredicted()) {
@@ -90,7 +90,7 @@
                 if (matchesExclusion(element, bridge)) return true;
                 
                 String handle = bridge.getHandleIdentifier(element);
-                node = MylarPlugin.getContextManager().getNode(handle);
+                node = MylarPlugin.getContextManager().getElement(handle);
             }
             if (node != null) {
             	if (node.getDegreeOfInterest().isPredicted()) {
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/MylarViewerManager.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/MylarViewerManager.java
index 8393076..6057d4e 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/MylarViewerManager.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/MylarViewerManager.java
@@ -242,7 +242,7 @@
 
 	public void nodeDeleted(IMylarElement node) {
     	IMylarStructureBridge structureBridge = MylarPlugin.getDefault().getStructureBridge(node.getContentType());
-		IMylarElement parent = MylarPlugin.getContextManager().getNode(structureBridge.getParentHandle(node.getHandleIdentifier()));
+		IMylarElement parent = MylarPlugin.getContextManager().getElement(structureBridge.getParentHandle(node.getHandleIdentifier()));
     	ArrayList<IMylarElement> toRefresh = new ArrayList<IMylarElement>();
     	
     	toRefresh.add(parent);
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/actions/AbstractInterestManipulationAction.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/actions/AbstractInterestManipulationAction.java
index 1c1e918..fbf62f4 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/actions/AbstractInterestManipulationAction.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/actions/AbstractInterestManipulationAction.java
@@ -55,7 +55,7 @@
     				} else {
 	    				IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(object);              
 	                    String handle = bridge.getHandleIdentifier(object);
-	                    node = MylarPlugin.getContextManager().getNode(handle);
+	                    node = MylarPlugin.getContextManager().getElement(handle);
     				}
     				if (node != null) MylarPlugin.getContextManager().manipulateInterestForNode(node, increment, false, SOURCE_ID);
     			}
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/MylarContextContentProvider.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/MylarContextContentProvider.java
index 243bbe1..a6d4f16 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/MylarContextContentProvider.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/MylarContextContentProvider.java
@@ -104,7 +104,7 @@
     	if (parent == null) return new Object[0];
         if (parent instanceof MylarContextRelation) {
         	IMylarRelation edge = (IMylarRelation)parent;
-        	IMylarElement source = MylarPlugin.getContextManager().getNode(
+        	IMylarElement source = MylarPlugin.getContextManager().getElement(
         			((IMylarRelation)parent).getSource().getHandleIdentifier());
         	
         	return getAllTagetsForSource(source, edge.getRelationshipHandle());
@@ -114,7 +114,7 @@
         		node = (IMylarElement)parent;
         	} else {
 	        	IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(parent);
-	        	node = MylarPlugin.getContextManager().getNode(bridge.getHandleIdentifier(parent));
+	        	node = MylarPlugin.getContextManager().getElement(bridge.getHandleIdentifier(parent));
         	}
 //            if (rootItems.contains(parent)) { // to avoid infinite recursion
 //            	rootItems.remove(parent);
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/TaskscapeNodeClickListener.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/TaskscapeNodeClickListener.java
index e1c0ac9..1bf9e23 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/TaskscapeNodeClickListener.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/views/TaskscapeNodeClickListener.java
@@ -40,7 +40,7 @@
         } else if (!(object instanceof IMylarRelation)) {
         	IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(object);
         	String handle = bridge.getHandleIdentifier(object);
-        	node = MylarPlugin.getContextManager().getNode(handle);
+        	node = MylarPlugin.getContextManager().getElement(handle);
         }
         if (node != null) MylarUiPlugin.getDefault().getUiBridge(node.getContentType()).open(node);
     }
diff --git a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListDoiSorter.java b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListDoiSorter.java
index 626606a..2403bb1 100644
--- a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListDoiSorter.java
+++ b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListDoiSorter.java
@@ -73,8 +73,8 @@
 	        } else {
 	       	 	if (MylarPlugin.getContextManager().hasActiveContext()) {
 	       	 		IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(marker1.getResource().getFileExtension());
-		            IMylarElement node1 =  MylarPlugin.getContextManager().getNode(bridge.getHandleForOffsetInObject(marker1, 0));
-		            IMylarElement node2 =  MylarPlugin.getContextManager().getNode(bridge.getHandleForOffsetInObject(marker2, 0));
+		            IMylarElement node1 =  MylarPlugin.getContextManager().getElement(bridge.getHandleForOffsetInObject(marker1, 0));
+		            IMylarElement node2 =  MylarPlugin.getContextManager().getElement(bridge.getHandleForOffsetInObject(marker2, 0));
 		            return interestComparator.compare(node1, node2);
 	       	 	}
 	        }
diff --git a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListInterestFilter.java b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListInterestFilter.java
index 5eacacb..36f90a7 100644
--- a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListInterestFilter.java
+++ b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListInterestFilter.java
@@ -38,7 +38,7 @@
              if (handle == null) {
                  return false;
              } else {
-                 return super.select(viewer, parent, MylarPlugin.getContextManager().getNode(handle));
+                 return super.select(viewer, parent, MylarPlugin.getContextManager().getElement(handle));
              }
          }
     }
diff --git a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListLabelProvider.java b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListLabelProvider.java
index 9dd05e0..d25b190 100644
--- a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListLabelProvider.java
+++ b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/ProblemsListLabelProvider.java
@@ -36,7 +36,7 @@
     public Font getFont(Object element) {
         if (element instanceof ProblemMarker) {
             String handle = MylarPlugin.getDefault().getStructureBridge(((ProblemMarker)element).getResource().getFileExtension()).getHandleForOffsetInObject(((ProblemMarker)element), 0);
-            IMylarElement node = MylarPlugin.getContextManager().getNode(handle);
+            IMylarElement node = MylarPlugin.getContextManager().getElement(handle);
             if (node != null) {    
                 if (node.getDegreeOfInterest().isLandmark() && !node.getDegreeOfInterest().isPropagated()) {
                     return MylarUiPlugin.BOLD;
@@ -57,7 +57,7 @@
     public Color getForeground(Object element) {
         if (element instanceof ProblemMarker) {
             String handle = MylarPlugin.getDefault().getStructureBridge(((ProblemMarker)element).getResource().getFileExtension()).getHandleForOffsetInObject(((ProblemMarker)element), 0);
-            return UiUtil.getForegroundForElement(MylarPlugin.getContextManager().getNode(handle));
+            return UiUtil.getForegroundForElement(MylarPlugin.getContextManager().getElement(handle));
         } else {
             return null;
         }  
@@ -66,7 +66,7 @@
     public Color getBackground(Object element) {
         if (element instanceof ProblemMarker) {
             String handle = MylarPlugin.getDefault().getStructureBridge(((ProblemMarker)element).getResource().getFileExtension()).getHandleForOffsetInObject(((ProblemMarker)element), 0);
-            return UiUtil.getBackgroundForElement(MylarPlugin.getContextManager().getNode(handle));
+            return UiUtil.getBackgroundForElement(MylarPlugin.getContextManager().getElement(handle));
         } else {
             return null;
         }
diff --git a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/views/ActiveViewDropAdapter.java b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/views/ActiveViewDropAdapter.java
index f3aaf13..7d07395 100644
--- a/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/views/ActiveViewDropAdapter.java
+++ b/org.eclipse.mylyn.ide.ui/src/org/eclipse/mylyn/ide/ui/views/ActiveViewDropAdapter.java
@@ -38,7 +38,7 @@
 			Object firstElement = ((StructuredSelection)data).getFirstElement();
 			IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(firstElement);
 			String handle = bridge.getHandleIdentifier(firstElement);
-	        IMylarElement node = MylarPlugin.getContextManager().getNode(handle);
+	        IMylarElement node = MylarPlugin.getContextManager().getElement(handle);
 			if (node != null) MylarPlugin.getContextManager().manipulateInterestForNode(node, true, true, ID_MANIPULATION);
 		}
 		return false; // to ensure that the sender doesn't treat this as a move
diff --git a/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/ContextManagerTest.java b/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/ContextManagerTest.java
index 391155b..a4d3cb9 100644
--- a/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/ContextManagerTest.java
+++ b/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/ContextManagerTest.java
@@ -98,6 +98,16 @@
     	assertEquals(2, manager.getActivityHistory().getInteractionHistory().size());
     }
     
+    public void testChangeHandle() {
+    	MylarPlugin.getContextManager().handleInteractionEvent(mockInterestContribution("old", 3));
+    	IMylarElement old = MylarPlugin.getContextManager().getElement("old");
+    	assertTrue(old.getDegreeOfInterest().isInteresting());
+    	
+    	MylarPlugin.getContextManager().getActiveContext().changeElementHandle(old, "new");
+    	IMylarElement changed = MylarPlugin.getContextManager().getElement("new");
+    	assertTrue(changed.getDegreeOfInterest().isInteresting());
+    }
+    
     public void testHasContext() {
     	manager.getFileForContext("c").delete();
     	assertFalse(manager.getFileForContext("c").exists());
@@ -127,10 +137,10 @@
         assertEquals(1, type1.getMethods().length);
         
         monitor.selectionChanged(part, new StructuredSelection(m1));
-        IMylarElement m1Node = MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier());
+        IMylarElement m1Node = MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier());
         assertTrue(m1Node.getDegreeOfInterest().isInteresting()); 
         monitor.selectionChanged(part, new StructuredSelection(m2));
-        IMylarElement m2Node = MylarPlugin.getContextManager().getNode(m2.getHandleIdentifier());
+        IMylarElement m2Node = MylarPlugin.getContextManager().getElement(m2.getHandleIdentifier());
         manager.handleInteractionEvent(mockInterestContribution(
                 m2.getHandleIdentifier(), scaling.getLandmark()));
         assertTrue(m2Node.getDegreeOfInterest().isLandmark()); 
@@ -147,7 +157,7 @@
 	}
     
     public void testPredictedInterest() {
-    	IMylarElement node = MylarPlugin.getContextManager().getNode("doesn't exist");
+    	IMylarElement node = MylarPlugin.getContextManager().getElement("doesn't exist");
     	assertFalse(node.getDegreeOfInterest().isInteresting());
     	assertFalse(node.getDegreeOfInterest().isPropagated());
     }
@@ -169,7 +179,7 @@
         assertEquals(1, type1.getMethods().length);
         
         monitor.selectionChanged(part, new StructuredSelection(m1));
-        IMylarElement m1Node = MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier());
+        IMylarElement m1Node = MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier());
         assertTrue(m1Node.getDegreeOfInterest().isInteresting()); 
         
         // delete method to cause error
@@ -183,12 +193,12 @@
         assertEquals(1, markers.length);
         
         String resourceHandle = new JavaStructureBridge().getHandleIdentifier(m2.getCompilationUnit());
-        assertTrue(MylarPlugin.getContextManager().getNode(resourceHandle).getDegreeOfInterest().isInteresting());
+        assertTrue(MylarPlugin.getContextManager().getElement(resourceHandle).getDegreeOfInterest().isInteresting());
 
         // put it back
         type1.createMethod("public void m1() { }", null, true, null); 
         project.build();
-        assertFalse(MylarPlugin.getContextManager().getNode(resourceHandle).getDegreeOfInterest().isInteresting());
+        assertFalse(MylarPlugin.getContextManager().getElement(resourceHandle).getDegreeOfInterest().isInteresting());
     }
     
     public void testParentInterestAfterDecay() throws JavaModelException {
@@ -197,10 +207,10 @@
         StructuredSelection sm1 = new StructuredSelection(m1);
         monitor.selectionChanged(part, sm1);
         
-        IMylarElement node = MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier());
+        IMylarElement node = MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier());
         assertTrue(node.getDegreeOfInterest().isInteresting()); 
         IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(node.getContentType());
-        IMylarElement parent = MylarPlugin.getContextManager().getNode(bridge.getParentHandle(node.getHandleIdentifier()));
+        IMylarElement parent = MylarPlugin.getContextManager().getElement(bridge.getParentHandle(node.getHandleIdentifier()));
         assertTrue(parent.getDegreeOfInterest().isInteresting());
         assertTrue(parent.getDegreeOfInterest().isPropagated()); 
         
@@ -208,9 +218,9 @@
             MylarPlugin.getContextManager().handleInteractionEvent(mockSelection());            
         }
         
-        assertFalse(MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier()).getDegreeOfInterest().isInteresting());
+        assertFalse(MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier()).getDegreeOfInterest().isInteresting());
         MylarPlugin.getContextManager().handleInteractionEvent(mockSelection(m1.getHandleIdentifier()));
-        assertTrue(MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier()).getDegreeOfInterest().isInteresting());
+        assertTrue(MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier()).getDegreeOfInterest().isInteresting());
     }
     
     public void testIncremenOfParentDoi() throws JavaModelException {
@@ -219,7 +229,7 @@
         StructuredSelection sm1 = new StructuredSelection(m1);
         monitor.selectionChanged(part, sm1);
         
-        IMylarElement node = MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier());
+        IMylarElement node = MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier());
         
         assertTrue(node.getDegreeOfInterest().isInteresting());
 
@@ -227,7 +237,7 @@
         int level = 1;
         do {
             level++; 
-            IMylarElement parentNode = MylarPlugin.getContextManager().getNode(parent.getHandleIdentifier());    
+            IMylarElement parentNode = MylarPlugin.getContextManager().getElement(parent.getHandleIdentifier());    
 //            assertEquals(scaling.getParentPropagationIncrement(level), parentNode.getDegreeOfInterest().getValue());
             assertEquals(node.getDegreeOfInterest().getValue(), parentNode.getDegreeOfInterest().getValue());
             parent = parent.getParent();
@@ -275,7 +285,7 @@
         IMethod m1 = type1.createMethod("void m1() { }", null, true, null);     
         StructuredSelection sm1 = new StructuredSelection(m1);
         monitor.selectionChanged(part, sm1);
-        IMylarElement node = MylarPlugin.getContextManager().getNode(m1.getHandleIdentifier());
+        IMylarElement node = MylarPlugin.getContextManager().getElement(m1.getHandleIdentifier());
         assertFalse(node.getDegreeOfInterest().isLandmark());
         assertNotNull(MylarPlugin.getContextManager().getActiveNode());
         action.changeInterestForSelected(true);
diff --git a/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/JavaStructureTest.java b/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/JavaStructureTest.java
index 10087c5..6a060a1 100644
--- a/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/JavaStructureTest.java
+++ b/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/JavaStructureTest.java
@@ -88,8 +88,8 @@
         editorPart.setHighlightRange(callerSelection.getOffset(),callerSelection.getLength(), true);
         monitor.selectionChanged(editorPart, calleeSelection);
         
-        IMylarElement callerNode = manager.getNode(caller.getHandleIdentifier());
-        IMylarElement calleeNode = manager.getNode(callee.getHandleIdentifier());
+        IMylarElement callerNode = manager.getElement(caller.getHandleIdentifier());
+        IMylarElement calleeNode = manager.getElement(callee.getHandleIdentifier());
         assertTrue(callerNode.getDegreeOfInterest().isInteresting());
         assertTrue(calleeNode.getDegreeOfInterest().isInteresting());
         assertEquals(1, callerNode.getRelations().size());
diff --git a/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/RefactoringTest.java b/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/RefactoringTest.java
index ec3fc42..7e2e473 100644
--- a/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/RefactoringTest.java
+++ b/org.eclipse.mylyn.java.tests/src/org/eclipse/mylyn/java/tests/RefactoringTest.java
@@ -39,7 +39,6 @@
 	}
 
 	public void testMethodRename() throws CoreException, InterruptedException, InvocationTargetException {
- 
     	IViewPart problemsPart = JavaPlugin.getActivePage().showView("org.eclipse.ui.views.ProblemView");
     	assertNotNull(problemsPart);
     	
@@ -50,22 +49,19 @@
         assertEquals(1, type1.getMethods().length);
         
         monitor.selectionChanged(part, new StructuredSelection(method));
-        IMylarElement node = MylarPlugin.getContextManager().getNode(method.getHandleIdentifier());
+        IMylarElement node = MylarPlugin.getContextManager().getElement(method.getHandleIdentifier());
         assertTrue(node.getDegreeOfInterest().isInteresting()); 
         
         project.build();
-        System.err.println("**** " + MylarPlugin.getContextManager().getActiveContext().getInteresting());
         TestProgressMonitor monitor = new TestProgressMonitor();
         method.rename("refactored", true, monitor);
         if (!monitor.isDone()) Thread.sleep(100);
         IMethod newMethod = type1.getMethods()[0];
         assertTrue(newMethod.getElementName().equals("refactored"));
-        System.err.println("**** " + MylarPlugin.getContextManager().getActiveContext().getInteresting());
-        IMylarElement newNode = MylarPlugin.getContextManager().getNode(newMethod.getHandleIdentifier());
-        System.err.println(">>>> " + newNode.getHandleIdentifier());
+        IMylarElement newNode = MylarPlugin.getContextManager().getElement(newMethod.getHandleIdentifier());
         assertTrue(newNode.getDegreeOfInterest().isInteresting()); 
         
-        IMylarElement goneNode = MylarPlugin.getContextManager().getNode(node.getHandleIdentifier());
+        IMylarElement goneNode = MylarPlugin.getContextManager().getElement(node.getHandleIdentifier());
         assertFalse(goneNode.getDegreeOfInterest().isInteresting()); 
 	}
 }
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaElementChangeListener.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaElementChangeListener.java
index ff0095f..ea04ed6 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaElementChangeListener.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaElementChangeListener.java
@@ -45,12 +45,10 @@
 			
 			handleDelta(child.getAffectedChildren());
 		}
-		if (added != null && removed != null) {
-			System.err.println(">> " + removed.getHandleIdentifier() + " to " + added.getHandleIdentifier());
-			IMylarElement element = MylarPlugin.getContextManager().getNode(removed.getHandleIdentifier());
-			element.setHandleIdentifier(added.getHandleIdentifier()); 
-		}
-		
+		if (added != null && removed != null) { 
+			IMylarElement element = MylarPlugin.getContextManager().getElement(removed.getHandleIdentifier());
+			MylarPlugin.getContextManager().getActiveContext().changeElementHandle(element, added.getHandleIdentifier());
+		} 
 	}
 	
 }
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaStructureBridge.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaStructureBridge.java
index c4bbd40..da135f4 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaStructureBridge.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/JavaStructureBridge.java
@@ -153,7 +153,7 @@
             for (int i = 0; i < children.length; i++) {
                 if (children[i] instanceof JarPackageFragmentRoot) {
                     JarPackageFragmentRoot element = (JarPackageFragmentRoot)children[i];
-                    IMylarElement node = MylarPlugin.getContextManager().getNode(element.getHandleIdentifier());
+                    IMylarElement node = MylarPlugin.getContextManager().getElement(element.getHandleIdentifier());
                     if (node != null && node.getDegreeOfInterest().isInteresting()) {
                     	return false;
                     } 
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/JavaUiUtil.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/JavaUiUtil.java
index 17d98f3..90e7e16 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/JavaUiUtil.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/JavaUiUtil.java
@@ -48,7 +48,7 @@
 //      if (activeElement == null) return null;
 //    
       if (element == null) return null;
-      IMylarElement info = MylarPlugin.getContextManager().getNode(element.getHandleIdentifier());
+      IMylarElement info = MylarPlugin.getContextManager().getElement(element.getHandleIdentifier());
       if (info.getDegreeOfInterest().isLandmark() && !info.getDegreeOfInterest().isPropagated()) {
           return MylarUiPlugin.BOLD;
       }
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/AutoFoldingStructureProvider.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/AutoFoldingStructureProvider.java
index 4c9dd88..202f7ec 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/AutoFoldingStructureProvider.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/AutoFoldingStructureProvider.java
@@ -85,7 +85,7 @@
                 break;
             case IJavaElement.TYPE:
                 if (isInnerType((IType)element)) {
-                    IMylarElement node = MylarPlugin.getContextManager().getNode(element.getHandleIdentifier());
+                    IMylarElement node = MylarPlugin.getContextManager().getElement(element.getHandleIdentifier());
                     if (!MylarUiPlugin.getDefault().isGlobalFoldingEnabled()) {
                         collapse = false;
                     } else if (node == null || node.getDegreeOfInterest().isInteresting()) {
@@ -100,7 +100,7 @@
                 createProjection= true;
                 break;
             case IJavaElement.METHOD:
-                IMylarElement node = MylarPlugin.getContextManager().getNode(element.getHandleIdentifier());
+                IMylarElement node = MylarPlugin.getContextManager().getElement(element.getHandleIdentifier());
                 if (!MylarUiPlugin.getDefault().isGlobalFoldingEnabled()) {
                     collapse = false;
                 } else if (node == null || node.getDegreeOfInterest().isInteresting()) {
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/MylarJavaCompletionProcessor.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/MylarJavaCompletionProcessor.java
index 93bcd35..b336a56 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/MylarJavaCompletionProcessor.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/java/ui/editor/MylarJavaCompletionProcessor.java
@@ -72,7 +72,7 @@
                             // nothing for now
                         	rest.add(proposal);
                         } else {
-                        	IMylarElement node = MylarPlugin.getContextManager().getNode(member.getHandleIdentifier()); 
+                        	IMylarElement node = MylarPlugin.getContextManager().getElement(member.getHandleIdentifier()); 
                             if (node != null) {
                             	float interest = node.getDegreeOfInterest().getValue();
 	                            if (interest > MylarContextManager.getScalingFactors().getInteresting()) {